Seite 1 von 1

http requests abfangen

Verfasst: Sonntag 23. März 2008, 16:09
von pot
Hallo

Erstmals muss ich vielleicht klarstellen, dass ich das HTTP Protokoll so gut wie gar nicht kenne ;-)

Zu meinem Problem: Wenn ich eine Website im Browser ansteuere, erzeugt mein Browser einige requests (GET, POST) und sendet diese dem Server. Wie kann ich nun in Python eine Website aufrufen und die requests abfangen?

Soweit ich das verstanden habe, ist httplib dafür, requests selber zu senden.

Grüsse
Pot

Verfasst: Sonntag 23. März 2008, 16:34
von Y0Gi
Ja, z.B. mit dem `httplib`-Modul kannst du selbst diese Requests senden und die Responses (Antworten) auswerten, also etwa das zurückgelieferte HTML-Dokument als String einholen.

Verfasst: Sonntag 23. März 2008, 16:43
von pot
Nun, ich möchte aber alle requests haben, die ein Browser an den Server senden würde und nicht selbst requests schreiben.

Grüsse
Pot

Verfasst: Sonntag 23. März 2008, 17:39
von keppla
pot hat geschrieben:Nun, ich möchte aber alle requests haben, die ein Browser an den Server senden würde und nicht selbst requests schreiben.
Dazu müsstest du entweder den Traffic abhören, so wie Wireshark das tut, oder dem Browser einen Proxy angeben, und über den Proxy an diese Daten kommen.

Was genau möchtest du eigentlich bezwecken, vielleicht gibts da einen einfacheren Weg.

Verfasst: Sonntag 23. März 2008, 18:06
von pot
Die Video Portale (bspw. Youtube) nutzen Flash/SWF-Dateien die lediglich den Player darstellen. Diese Player holen sich dann FLV-Dateien und diese sollten in der request aufrufbar sein (LiveHTTPHeaders Add-On in Firefox zeigt das so an). Nun gilt es, diese FLV-URL herauszufinden, die das eigentliche Video beinhaltet.

Grüsse
Pot

Verfasst: Sonntag 23. März 2008, 18:19
von Trundle
Die Player konstruieren sich die URL aber auch nur anhand der übergebenen Daten. Und die muss man dann eben selber aufrufen. Zumindest für youtube sollten sich da genügend Informationen finden lassen, um das selber zu bauen.

Verfasst: Sonntag 23. März 2008, 18:36
von pot
Trundle hat geschrieben:Die Player konstruieren sich die URL aber auch nur anhand der übergebenen Daten. Und die muss man dann eben selber aufrufen. Zumindest für youtube sollten sich da genügend Informationen finden lassen, um das selber zu bauen.
Das stimmt, aber ich dachte, man kann es ein bisschen eleganter lösen ;-)

Danke für die Hilfe, in diesem Fall ist es also kein besserer Lösungsweg.

Grüsse
Pot

Verfasst: Sonntag 23. März 2008, 19:08
von Leonidas
Trundle hat geschrieben:Zumindest für youtube sollten sich da genügend Informationen finden lassen, um das selber zu bauen.
Wozu? Gibt's schon. ;)

Verfasst: Sonntag 23. März 2008, 19:18
von Trundle
Leonidas hat geschrieben:
Trundle hat geschrieben:Zumindest für youtube sollten sich da genügend Informationen finden lassen, um das selber zu bauen.
Wozu? Gibt's schon. ;)
Weil man das Rad neu erfinden will, nur in noch runder und zum zehnten Mal eine schicke textbasierende Forschrittsanzeige baut natürlich. Und eigene Sachen eh die tollsten sind wo gibt.
Oder halt einfach, weil einem gerade langweilig ist und man nur myfilm kennt, und das eben in Perl geschrieben ist :roll:

Verfasst: Montag 24. März 2008, 14:17
von pot
Leonidas hat geschrieben:
Trundle hat geschrieben:Zumindest für youtube sollten sich da genügend Informationen finden lassen, um das selber zu bauen.
Wozu? Gibt's schon. ;)
Youtube war nur ein Beispiel (weil es jedem ein Begriff sein sollte). youtube-dl kann aber nur von Youtube gehosteten Videos herunterladen und nicht von anderen Portalen.

Grüsse
Pot

Verfasst: Montag 24. März 2008, 14:21
von Leonidas
Sprich, du willst so etwas wie 2video nachbauen?

Verfasst: Montag 24. März 2008, 15:02
von pot
Abgesehen davon, dass 2video webbasiert ist, Videos nicht konvertieren kann, die Audiospur des Videos nicht extrahieren kann, nur ein Video aufs Mal verarbeiten kann, die Datei nicht nach dem Titel des Videos benennen kann und dass es nicht durch "Module" erweiterbar ist, ja.

Verfasst: Dienstag 25. März 2008, 13:28
von Trundle
Mit irgendeinem pcap-Binding für Python könnte man sich sowas bauen. Mal auf die Schnelle zusammengepfuscht: http://paste.pocoo.org/show/35433/

Ginge natürlich auch über einen HTTP-Proxy, dann bräuchte man auch keine privilegierten Rechte zum Ausführen.