Webscraper geblockt?

Django, Flask, Bottle, WSGI, CGI…
Antworten
naheliegend
User
Beiträge: 439
Registriert: Mittwoch 8. August 2018, 16:42

Hi,

ich habe einen Webscraper, mit dem ich mich ganz normal auf eine Seite einlogge via Python HTTP library requests und dann Informationen auslese.

Jetzt kann ich mich auf einmal nicht mehr automatisiert einloggen und verbleibe auf der Loginseite.

Kann man herausfinden, ob man geblockt wurde? Oder was könnte noch der Grund sein?
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

Webscraping ist von vielen Seiten explizit verboten, und entsprechend gibt es auch Maßnahmen dagegen. Wie zb das blocken, wenn ungewöhnliche Zugriffsmuster entdeckt wurden. Ob du das herausfinden kannst, hängt an der konkreten Seite. Vielleicht hat die einen Weg dafür, oder die Antwort des Servers gibt Hinweise.
naheliegend
User
Beiträge: 439
Registriert: Mittwoch 8. August 2018, 16:42

Aus Interesse: Wie wird denn ein Scraper entlarvt? Also was sind diese ungewöhnlichen Zugriffsmuster? Ich meine man imitiert ja einfach einen ganz normal Post/Get-Request und schickt alles mit, was sonst auch mitgeschickt wird? Oder steht da im Header irgendwie: "I am using Python" ?
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
Benutzeravatar
__blackjack__
User
Beiträge: 13103
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@naheliegend: Es geht da nicht um *eine* Anfrage sondern eben das Muster von Anfragen. Im simpelsten Fall einfach die Geschwindigkeit und den Umfang in dem Du Seiten abfragst, beziehungsweise abfragen lässt, wo klar ist, dass das kein menschlicher Benutzer ist.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
TorstenS
User
Beiträge: 1
Registriert: Montag 3. Juni 2019, 13:07

naheliegend hat geschrieben: Sonntag 15. November 2020, 12:43 Oder steht da im Header irgendwie: "I am using Python" ?
Jein. Das hängt von der Methode ab, wie die Seite aufgerufen wird. Wenn Du z. B. requests verwendest und keinen User-Agent setzt, identifiziert sich requests tatsächlich als "python-request/[Version]". Die von Dir genannte Methode der httplib bzw. http.client sendet, so weit ich mich erinnere, überhaupt keinen User-Agent, wenn keiner explizit gesetzt wird. Neben den hier genannten Möglichkeiten, dass eine Sperre deines Scrapers anhand des Verhaltens von diesem identifiziert werden kann, ist die Auswertung des User-Agents natürlich auch eine Möglichkeit, welche auch noch sehr viel einfacher umgesetzt werden kann, als eine Verhaltensüberwachung.
Benutzeravatar
__blackjack__
User
Beiträge: 13103
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@TorstenS: Da es vorher ja mal funktioniert hat, ist es aber unwahrscheinlich, dass es so einfach ist.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten