Formular auf einer Webseite mit Python bedienen

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
cowboy
User
Beiträge: 7
Registriert: Freitag 14. März 2008, 20:38

Freitag 9. Mai 2008, 08:26

Guten Morgen zusammen,

ich würde gerne ein Formular im web mit einem Python Skript ausfüllen und die anschließend zurück gelieferte HTML Seite in einer Datei speichern (letzteres ist kein Problem). Ich bin in diesem Zusammenhang schon auf die folgende Funktion gestoßen:

Code: Alles auswählen

def post_multipart(host, selector, fields, files):
    """
    Post fields and files to an http host as multipart/form-data.
    fields is a sequence of (name, value) elements for regular form fields.
    files is a sequence of (name, filename, value) elements for data to be uploaded as files
    Return the server's response page.
    """
    content_type, body = encode_multipart_formdata(fields, files)
    h = httplib.HTTP(host)
    h.putrequest('POST', selector)
    h.putheader('content-type', content_type)
    h.putheader('content-length', str(len(body)))
    h.endheaders()
    h.send(body)
    errcode, errmsg, headers = h.getreply()
    return h.file.read()
Leider kann ich mir noch nicht richtig vorstellen, wie ich die Funktion benutzen soll und finde auch keine weitere Doku dazu. Also der erste Parameter ist noch klar, der zweite wird schon schwammig und danach bin ich mir gar nicht mehr so sicher. Hat hier bereits jemand damit gearbeitet und kann mir das erläutern oder hat einen anderen Vorschlag?

Bin für jede Hilfe dankbar,

cowboy
Benutzeravatar
jens
Moderator
Beiträge: 8481
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Freitag 9. Mai 2008, 09:15

Du findest um Forum einige beispiele dafür. Stichwörter: urllib, urllib2, POST usw.

btw ...Sollten wir mal in die FAQ mit aufnehmen!

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
cowboy
User
Beiträge: 7
Registriert: Freitag 14. März 2008, 20:38

Freitag 9. Mai 2008, 09:18

ah okay, danke! dann hab ich nur nichts gefunden, weil ich direkt nach der funktion gesucht hab. ich werde mich mal mit hilfe der genannten suchbegriffe umsehen.

gruß

cowboy
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Freitag 9. Mai 2008, 10:02

jens hat geschrieben:Du findest um Forum einige beispiele dafür. Stichwörter: urllib, urllib2, POST usw.
mechanize ist sogar noch besser.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Freitag 9. Mai 2008, 20:23

Und twill setzt dem Ganzen eine (mehr oder weniger schöne) DSL auf.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
cowboy
User
Beiträge: 7
Registriert: Freitag 14. März 2008, 20:38

Freitag 16. Mai 2008, 07:52

vielen dank für eure hilfe! das scheint alles super zu sein. jetzt habe ich aber das problem, dass ich über ein solches formular eine datei hochladen möchte. wie mache ich das? sehe auf den ersten blick keine möglichkeit mit den von euch vorgeschlagenen lösungen. bin aber auch recht neu in der python programmierung. geht das vielleicht, wenn ich vorher ein fileobject im binary mode erstelle und die ausgabe von file.read() mitgebe? oder ist das jetzt totaler schwachsinn....?

viele grüße
cowboy
User
Beiträge: 7
Registriert: Freitag 14. März 2008, 20:38

Freitag 8. August 2008, 08:02

habe es vor einigerzeit letztendlich mit "post_multipart" realisieren können. die anfänglichen schwierigkeiten waren, wie so oft, auf einen bedienungsfehler zurückzuführen.

merci
Antworten