ubuntuusers.de

Python: Button auf einer Website drücken

Status: Gelöst | Ubuntu-Version: Ubuntu 10.10 (Maverick Meerkat)
Antworten |

Developer92 Team-Icon

Avatar von Developer92

Anmeldungsdatum:
31. Dezember 2008

Beiträge: 4101

Hallo, ich würde gerne auf einer Website mit Python einen 'Weiter'-Button drücken.

In HTML sieht der Button übrigens so aus:

<input id="weiterbutton" type="submit" name="user_choice" value="Weiter" />

Das Problem ist, dass ich den Button einfach nicht per Python anklicken lassen kann. Python soll die Website öffnen, den Button drücken und die darauffolgende Website dann weiterverarbeiten. Bis auf das Klicken funktioniert alles ☺

Würde das ganze gerne mit urllib lösen, also bitte keine andere Software nennen. "mechanize" und ähnliche Bibliotheken für Python kenne ich bereits.

mfg

snafu1

Avatar von snafu1

Anmeldungsdatum:
5. September 2007

Beiträge: 2133

Wohnort: Gelsenkirchen

Code von mechanize angucken und abschreiben. ☺

Mal im Ernst: Kannst du keine weiteren Pakete auf dem System installieren, willst du keine Abhängigkeit haben, oder woran liegt es? Mit mechanize ist dies eine triviale Aufgabe und ergo ruckzuck gelöst. Was spricht nun dagegen?

Also, du kannst das Cookie-Handling und das Eintragen der Werte sowie die Übermittlung (POST) natürlich auch mit der urllib2 umsetzen, wenn es denn unbedingt sein muss. Falls du dich wirklich dazu entscheiden solltest, dann würde ich dir aber trotzdem empfehlen, dass du mal nen Blick in den Code von mechanize wirfst. Du würdest dann halt die für dich relevanten Teile nachbauen.

Developer92 Team-Icon

(Themenstarter)
Avatar von Developer92

Anmeldungsdatum:
31. Dezember 2008

Beiträge: 4101

snafu1 schrieb:

Mal im Ernst: Kannst du keine weiteren Pakete auf dem System installieren, willst du keine Abhängigkeit haben, oder woran liegt es? Mit mechanize ist dies eine triviale Aufgabe und ergo ruckzuck gelöst. Was spricht nun dagegen?

Naja, ich muss genau 1x einen Button drücken. Der Rest funktioniert wunderbar mit urllib2. Da lohnt es sich nicht mechanize zu importieren. Es ist wie gesagt nur einmal ein Button, der gedrückt werden muss.

Also, du kannst das Cookie-Handling und das Eintragen der Werte sowie die Übermittlung (POST) natürlich auch mit der urllib2 umsetzen, wenn es denn unbedingt sein muss. Falls du dich wirklich dazu entscheiden solltest, dann würde ich dir aber trotzdem empfehlen, dass du mal nen Blick in den Code von mechanize wirfst. Du würdest dann halt die für dich relevanten Teile nachbauen.

Wie gesagt, es funktioniert ja bereits alles. Ich brauch wirklich nur den Button zu drücken und fertig.

Ich guck mir dann mal den Code an...

mfg

adun Team-Icon

Avatar von adun

Anmeldungsdatum:
29. März 2005

Beiträge: 8606

Kannst du auch ohne machen. Was ist das für ein "Button" in html-Verben? Ein Post-Request. Wenn du nach urlib und post request suchst, findest du einen Haufen Beispiele.

Developer92 Team-Icon

(Themenstarter)
Avatar von Developer92

Anmeldungsdatum:
31. Dezember 2008

Beiträge: 4101

adun schrieb:

Kannst du auch ohne machen. Was ist das für ein "Button" in html-Verben? Ein Post-Request. Wenn du nach urlib und post request suchst, findest du einen Haufen Beispiele.

Genial, DANKE! Musste zwar ein wenig suchen wie ich die Daten genau übergeben muss, aber jetzt gehts.

Falls es jemanden interessiert:

1
2
3
4
    parameters = {'user_choice':'Weiter'}
    data = urllib.urlencode(parameters)
    request = urllib2.Request(url, data)
    response = urllib2.urlopen(request).read()

mfg

Antworten |