mechanize Referer

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
microkernel
User
Beiträge: 271
Registriert: Mittwoch 10. Juni 2009, 17:27
Wohnort: Frankfurt
Kontaktdaten:

Hallo,

wie kann ich bei dem drittanbieter-module "mechanize" einstellen das in dem HTTP Header automatisch der Referer eingetragen wird?

Lg
microkernel
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Google, "mechanize referer", erstes Ergebnis:

Code: Alles auswählen

br = mechanize.Browser()
br.set_handle_referer(True)
Benutzeravatar
microkernel
User
Beiträge: 271
Registriert: Mittwoch 10. Juni 2009, 17:27
Wohnort: Frankfurt
Kontaktdaten:

Ja genau darauf bin ich eigentlich auch schon gekommen aber wenn ich das mit folgenden Script Testen will, wird mir totzdem kein Referer angezeigt.

Code: Alles auswählen

import mechanize

browser = mechanize.Browser()
browser.set_handle_referer(True)
browser.set_handle_robots(False) # jetzt nur wegen facebook
browser.open("http://www.facebook.com/")
browser.open("http://www.ioerror.us/ip/headers")

with open("headers.html", "w") as writer:
    writer.write(browser.response().read())
# oder...
print browser.response().read()
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Der Refer(r)er wird doch nur geschickt wenn man einen Link auf der Seite angeklickt hat und nicht einfach ne neue annavigiert. Sonst wär das ja auch ein recht böses Privatsphären-Fail.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

@microkernel: Ein Referrer sagt aus, über welchen *Link* man auf eine Seite gekommen ist. Du "klickst" aber auf gar keinen Link sondern öffnest zwei "Browser". Mach das mal mit einem echten Browser und Du wirst sehen, dass da auch kein Referrer übertragen wird.
Benutzeravatar
microkernel
User
Beiträge: 271
Registriert: Mittwoch 10. Juni 2009, 17:27
Wohnort: Frankfurt
Kontaktdaten:

Achso. Das erklärt einiges :D Kann man diesen Eintrag auch fälschen?
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Ja, das mache ich standardmaessig per RefControl (Firefox-Plugin), erstaunlich wie viele Seiten dabei kaputt gehn, u.a. auch phpBB.

Ob mechanize da brauchbare Features hat darfst du selbst rausfinden ;)
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

microkernel hat geschrieben:Achso. Das erklärt einiges :D Kann man diesen Eintrag auch fälschen?
Stell dir das so vor: Der Server erwartet vom Client (dem Anfragenden) eine bestimmte Art von Antwort. Man kann dies auch Protokoll oder Sprache nennen. Stell dir vor, du musst jemandem immer auf Chinesisch antworten und hast dafür deinen (dir deinem Programmierer-Gehalt natürlich standesgemäß entsprechendem) Dolmetscher für diese Aufgabe eingestellt. Irgendwann hattest du aber die Muße, mittels VHS-Kurs die Sprache Chinesisch zu erlernen. Wenn du dem Client (dem Anfragen-Beantworter) nun etwas mitteilen kannst, das er versteht, dann ist es ihm egal, von wem das kommt. Der Anfragende kann also weiterhin dein Dolmetscher, dein Gärtener oder Zimmernmädchen oder eben du selbst sein. Daraus folgt (lange Rede, kurzer Sinn), dass ein Header selbstverständlich gefälscht werden kann, wenn man die Ebene des Browsers weglässt und den Krams selber übernimmt.
Antworten