BaseHTTPServer, httplib, urllib2, SocketServer,...

30/10/2007 - 02:55 von Andreas Bruhn | Report spam
[HTML-Links umbiegen Teil2]

Hi allerseits,

kann mich mal jemand zurück in die richtige Richtung bringen?

Vielleicht hat es der eine oder andere in einem meiner letzten
Postings gelesen. Folgender Anwendungsfall:

Das zu erstellende Python-Skript [Proxy] sitzt auf einem der
(Datenbank-)Client-Rechner, bekommt von der dort laufenden
Clientanwendung ein paar Daten übergeben.

Anhand der Daten wàhlt der Proxy das passende Webportal aus, logt sich
bei dem Portal ein (die Usernamen und Passwörter für die verscheidene
Portale sind bekannt und stehen fest), tràgt in die Such-Webseite die
Daten (die von der Clientanwendung) ein und schickt diese Nachricht
ab. Die Detail-Seite mit den gesuchten Detailinformationen die dann
zurückkommt soll dann in einem Browser angezeigt werden.

Wie mache ich das am geschicktesten und am einfachsten?

Eines der Portal funktioniert auch mit abgeschalteten Cookies. Da
könnte es möglicherweise reichen wenn ich einfach erst zum Schluss den
Browser starte und ihm die URL der Detailseite übergebe.

Aber die anderen Portale arbeiteten mit Frames und ohne Cookies geht
dort überhaupt nichts. Jedenfalls keine Anmeldung.

Da muss ich ja dann irgendwie auch die Cookies an den Browser
weiterreichen, damit der auch im Webportal angemeldt ist/bleibt. So
bin ich dann auf den Gedanken mit dem Proxy gekommen. Wobei ich die
Browser eigentlich nicht fest auf Proxy-Betrieb umstellen möchte,
sondern die Anfragen im Browser z.B. nach
http://localhost:8888/Daten_die_abgefragt/werden_ sollen senden
möchte. Dort lauscht und antwortet dann das Proxy-Skript.

Irgendwie bin ich heute bei diesem Problem auf keinen grünen Zweig
gekommen. Gestartet bin ich mit dem "HTTP Debuging Proxy" von Xavier
Defrang [http://defrang.com] (basiert auf TinyHTTPProxy von UZIKI
Hisao).

Kennt jemand bessere Beispiele oder hat Tipps und Hinweise?

Ich bin noch beim testen von abrufen und weiterleiten (an den Browser)
der Webseiten. Dazu habe ich u.a. zum testen ohne Anmeldung die
Heise-Webseite (www.heise.de) benutzt. Wenn ich die Seite einfach im
Proxy-Skript hole und an den Browser weiterreiche, dann wird sie zwar
fast komplett angezeigt, aber der Browser nimmt als Basis für die
relativen Links http://localhost:8888/. :-(

Aber wenn ich versuche die Response-Daten vom Heise-Server anzupassen
um die rel. Links absolut zu machen, dann zeigt der Browser nur noch
Bruchstücke der Webseite an. Speichere ich die angepassten Daten,
bevor ich sie zum Browser schicke in einer Datei, dann sehe ich
hinterher dass eigentlich die komplette Webseite (mit Header-Daten und
angepassten Links) gespeichert wurde. Es kommen nur nie alle Daten im
Browser an. :-(

Das die Seite (nur der reine HTLM-Text) von Heise in mehreren kleinen
Stücken übertragen wurde (kleinere Stücke als die max. Blockgröße von
8192 Bytes die bei Receive im Code angegeben ist) war nur kurz ein
Problem. Statt jedes Bruchstück gleich weiter zu reichen, sammel ich
derzeit erstmal alle Response-Bodies und wenn ich die aneinander
hànge, dann habe ich eben die komplette Webseite in der ich die rel.
Links àndern kann, worauf dann aber beim senden an den Browser wenig
bis garnichts mehr ankommt.

Irgendwie stehe ich ratlos auf dem Schlauch...

Hat jemand Beispielcode, Hinweise, Webseiten, ...? Womit baue ich mir
am besten einen Proxy für Webseiten? BaseHTTPServer, SocketServer,
urllib2 oder wie, was...? Wie àndere ich diesen Debugging Proxy?


Ein ratloses Tschüs,

Andreas

P.S.: Einen direkten Link auf den Quellcode vom "HTTP Debuging Proxy"
von Xavier Defrang habe ich jetzt nicht. Aber sollte per Suchmaschine
zu finden sein.
 

Lesen sie die antworten

#1 Andreas Bruhn
30/10/2007 - 09:32 | Warnen spam
Am Tue, 30 Oct 2007 02:55:05 +0100 schrieb Andreas Bruhn:

Irgendwie stehe ich ratlos auf dem Schlauch...

Hat jemand Beispielcode, Hinweise, Webseiten, ...? Womit baue ich mir
am besten einen Proxy für Webseiten? BaseHTTPServer, SocketServer,
urllib2 oder wie, was...? Wie àndere ich diesen Debugging Proxy?

Ein ratloses Tschüs,

Andreas

P.S.: Einen direkten Link auf den Quellcode vom "HTTP Debuging Proxy"
von Xavier Defrang habe ich jetzt nicht. Aber sollte per Suchmaschine
zu finden sein.



Hi, noch einen Nachtrag: Ich entwickel derzeit unter Windows2000 und
mit dem 2.4er ActiveState-Python. Falls irgendjemand da irgendwelche
Probleme bekannt sind z.B. mit den Sockets oder so... Bitte melden.

Dank und Tschüs,

Andreas

Ähnliche fragen