Seite 1 von 1

Webseite auslesen,je nach Inhalt handeln

Verfasst: Montag 15. Juni 2009, 01:00
von qxw2c
Moin,

ich habe gerade (mein erstes) Python Skript geschrieben. Es loggt mich auf einer Seite ein und sendet ein Formular ab(mit mechanize). Soweit kein Problem. Nur möchte ich nun ein weiteres Feature einbauen, indem zuerst der Content der Seite auf den String "Momentane Aktion" getestet wird. Ist der String vorhanden, soll das script abbrechen, sonst normal weitermachen.
response3=mechanize.urlopen(request3)

Code: Alles auswählen

if re.search(
	"Momentane Aktion", response3()
die
print "Error"
else
...[der Rest funktioniert]
Kann mir wer sagen, wie ich das realisiert bekomme? Mit o.g. Beispiel funktioniert es nicht. ;-) Bin neu in Python und komme mit den if not noch nicht so zurecht..

So long,

ich freue mich auf Antworten

qxw2c

Verfasst: Montag 15. Juni 2009, 08:56
von Leonidas
Also der erste Schritt wäre mal, die ganzen Syntaxfehler rauszubekommen...

Python ist auch kein PHP und hat kein ``die()``.

Verfasst: Montag 15. Juni 2009, 09:15
von qxw2c
Hallo und danke für die schnelle Antwort.
Das Beispiel funktioniert so nicht, dass also Fehler drin sind ist mir klar ;-)
Verflixt, da kommt das PHP durch, gibt es sowas in Python auch? Eventuell per sys.exit()?
Der Teil soll den String Momentane Aktion in der Seite, die durch request3 angefordert wird, suchen und falls fündig, das Skript abbrechen.

Grüße

qxw2c

Verfasst: Montag 15. Juni 2009, 09:37
von Leonidas
Steck das einfach in eine ``main()``-Funktion (ist sowieso eine gute Idee) und ruf dort ``return`` auf.

Verfasst: Montag 15. Juni 2009, 11:34
von qxw2c
Dürfte ich drum bitten mir so ein Snippet zu schreiben?Wie gesagt, ich bin blutiger Anfänger...

Grüße

qxw2c

Verfasst: Montag 15. Juni 2009, 12:13
von Leonidas
Dann solltest du mal das Tutorial durchlesen.

Code: Alles auswählen

def main():
    # ...
    if bedingung:
        response3()
        return

    print "Error"

Verfasst: Montag 15. Juni 2009, 12:43
von qxw2c
Ich glaube, so geht das nicht.
Nochmals der Code:

Code: Alles auswählen

request3 = mechanize.Request(url)
response3 = mechanize.urlopen(request3)
response3.close()

#Hier soll die Überprüfung hin
...
Wobei response3 ja mehr als nur der gesuchte String ist. Es soll also das, was in response3 ankommt auf den String überprüft werden.
Hab ich mich so klar genug ausgedrückt, oder liegt der Denkfehler bei mir?

Verfasst: Montag 15. Juni 2009, 18:36
von Leonidas
Dann musst du eben den String mit dem HTML-Code rausbekommen, ist sicher irgendwo als Attribut verfügbar.

Verfasst: Montag 15. Juni 2009, 20:31
von cofi
Das Tutorial und die mechanize Doku (in den Docstrings) bleibt trotzdem noch empfehlenswert ....