Seite 1 von 1

Formular auf einer Webseite mit Python bedienen

Verfasst: Freitag 9. Mai 2008, 08:26
von cowboy
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

Verfasst: Freitag 9. Mai 2008, 09:15
von jens
Du findest um Forum einige beispiele dafür. Stichwörter: urllib, urllib2, POST usw.

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

Verfasst: Freitag 9. Mai 2008, 09:18
von cowboy
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

Verfasst: Freitag 9. Mai 2008, 10:02
von Leonidas
jens hat geschrieben:Du findest um Forum einige beispiele dafür. Stichwörter: urllib, urllib2, POST usw.
mechanize ist sogar noch besser.

Verfasst: Freitag 9. Mai 2008, 20:23
von birkenfeld
Und twill setzt dem Ganzen eine (mehr oder weniger schöne) DSL auf.

Verfasst: Freitag 16. Mai 2008, 07:52
von cowboy
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

Verfasst: Freitag 16. Mai 2008, 11:02
von lunar
ClientForm?

Verfasst: Freitag 8. August 2008, 08:02
von cowboy
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