php seite aufrufen mit python

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
bcit6k
User
Beiträge: 77
Registriert: Mittwoch 23. Juli 2008, 08:50

Donnerstag 18. Dezember 2008, 16:23

Hallo,

ich habe folgendes problem, ich möchte eine php seite mit python aufrufen.

das ganze versuch ich einstweilen so

Code: Alles auswählen

page = urllib.urlopen(url)
    pagedata = page.read()
    return pagedata 
das gibt mir aber den html inhalt der generierten seite zurück. das will ich aber nicht. kann python nicht warten bis die seite vollständig geladen ist?

die seite ruft nach 5 sekunden ein javascript auf und leitet auf eine zweite seite weiter.

danke für die hilfe!
lunar

Donnerstag 18. Dezember 2008, 16:34

Die Seite ist vollständig geladen. Python hat – wie befohlen – einen HTTP Request an den Server gestellt und den HTTP Response abgerufen. Für nichts anderes ist urllib da.

Was du willst, ist, dass der Javascript-Inhalt im Response interpretiert wird und entsprechend dessen Befehlen ein zweiter HTTP Request an eine weitere Seite gestellt wird. Das ist mit Bordmitteln nicht möglich, und zwar aus dem einfachen Grund, dass die Aufnahme eines vollwertigen Javascript-Interpreters in die Standardbibliothek jeden Rahmen sprengen würde.

Wenn du weißt, was das Javascript tut, kannst du dessen Aktionen ja nachvollziehen und die zweite Seite manuell mit urllib aufrufen.

Ansonsten musst du eben einen Javascript Interpreter nutzen. Das ist dann aber keineswegs trivial.
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Donnerstag 18. Dezember 2008, 21:01

Oder aber dir den Source anschauen, das `document.href="blahblubb.de"` rausfiltern (Regular expressions!) und einen zweiten manuellen Request starten.
bcit6k
User
Beiträge: 77
Registriert: Mittwoch 23. Juli 2008, 08:50

Freitag 19. Dezember 2008, 08:04

hallo,

danke für den tipp, das javascript stratet eine function für das flash das in das file eingebettet ist. da bringt mir der aufruf der zweiten seite nix. so wies auschaut werd ich doch wieder einen browser öffnen müssen und da drinne auf die passende seite navigieren!

danke!
Antworten