externe formularbearbeitung

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Florian
User
Beiträge: 27
Registriert: Mittwoch 9. Juni 2004, 10:46
Wohnort: Merzig|Saarland

hoi! :D

ich suche nach einer möglichkeit wie ich auf einer beliebigen seite mit python ein formular ausfülle und dies abschicken kann, eventuell auch mehrmals hintereinander also in ner schleife.

hab da mal was von urllib gehört...
vieleicht hat ja jemand nen codeschnipsel oder so

mfg florian
Linux Love:
unzip;strip;touch;finger;mount;fsck;more;yes;unmount;sleep
fs111
User
Beiträge: 170
Registriert: Samstag 15. November 2003, 11:42
Kontaktdaten:

In der Doku sind sowohl für httplib als auch für urllib Beispiele:

http://python.org/doc/current/modindex.html


fs111
Pydoc-Integration in vim - Feedback willkommen: http://www.vim.org/scripts/script.php?script_id=910
Florian
User
Beiträge: 27
Registriert: Mittwoch 9. Juni 2004, 10:46
Wohnort: Merzig|Saarland

hoi!

habs jetzt mal so weit gebracht...

Code: Alles auswählen


import urllib

username = 'peter'
message = 'hallo blabla'
parameter = urllib.urlencode({'username': username, 'message': message, 'send': "submit"})

for i in range(5):
    urllib.urlopen ("http://www.domain.de/test", parameter)


es wird eine seite aufgerufen welche ich mal zu testzwecken angelegt habe die ein einfaches formular enthält

ein input feld name="username"
ne textarea name="message"
un ein submitbutton name="send"

habe mal keine method angegeben und es funktioniert so weit, die email wird mit den daten vom script generiert und kommt an so als hätte ich sie vom formular aus geschickt...

nun hab ich das ganze mit meinem gästebuch getestet ( das benutzt method="post") wo die daten in nem eigenen objekt übertragen werden und nicht als querystrings und es geht nicht
wie könnte ich das generell eleganter machen mit dem script und hat dieser "fehler" was mit der übertragungsart zu tun die das formular nutzt?

mfg und danke schon mal
florian
Linux Love:
unzip;strip;touch;finger;mount;fsck;more;yes;unmount;sleep
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Hi Florian,

da wirst wohl mit der httplib weiterkommen, da gibts bei der Klasse HTTPConnection die Methode putrequest, bei der du die Requestmethode "GET" oder "POST" angeben kannst.


Gruß

Dookie
[code]#!/usr/bin/env python
import this[/code]
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

So wie er es gerade macht, ist es aber schon POST...
Antworten