2017-07-27 5 views
2

Ich habe eine Frage zum Crawlen von Daten von Webseiten. Einige Websites haben Einschränkungen für Anfragen. Wie kann ich in solchen Situationen crawlen?Crawlen von Webseiten mit Einschränkungen

+0

Wenn das, was Sie fragen, ist „Ich habe die robots.txt-Datei umgehen will, wie kann ich das tun?“ Die Antwort lautet: "Diese Beschränkung gibt es aus einem bestimmten Grund: Es soll Web-Crawler aus Gebieten fernhalten, in die sie nicht gehören." Wenn das nicht Ihre Frage ist, dann müssen Sie (und sollten) viel klarer darüber sein, was Sie tun möchten und warum. Fügen Sie hinzu, welche Forschung Sie getan haben und was Sie versucht haben, das Problem zu lösen. – JBH

Antwort

3

für einfache Web-Verschrottung Sie populären Python-Framework verwenden können "lückenhaft" genannt:

https://scrapy.org/

Es nutzt CSS-Selektoren für die in HTML-Dateien Auswahl-Tag.

Für Webseiten mit Sicherheitslösungen können Sie Tor verwenden, um Ihre IP-Adresse mit neuen Sitzungen zu ändern.

https://www.torproject.org/

aber wenn Sie meinen, Websites haben einige Zeichen, dass Sie sie nicht erzeugen können, können Sie „Selen“ simulieren Browsers.

http://www.seleniumhq.org/

+0

Ich verehre dich !!! Du hast mein Leben gerettet, es war so fantastisch .... <3 –

2

Beim Crawlen von Websites stellen Sie möglicherweise fest, dass die Rate begrenzt ist, weil Sie zu viele Anfragen an eine Site gestellt haben. Zum Beispiel blockiert meine Website Sie möglicherweise für einige Sekunden, bevor ich Ihnen erlaube, eine weitere Anfrage zu stellen. Diese Limits können sich je nach Site ändern und wie oft und wie oft Sie Anfragen stellen.

Eine Möglichkeit, um diese Grenzen zu umgehen, besteht darin, ein wenig zwischen den Abfragen zu warten, die die Schlafmethoden Ihrer Sprache verwenden. In Python ist dies time.sleep(10).

Wenn Sie weiterhin blockiert werden, können Sie versuchen, die Sperrzeit mit zunehmenden Wiederholungszeiträumen zu berücksichtigen. Zum Beispiel wirst du bei einer Anfrage geblockt, warte also 5 Sekunden, versuche es erneut (und werde geblockt), warte 10 Sekunden, versuche es erneut (und werde blockiert), warte 20 Sekunden und versuche es erneut (und werde blockiert), warte 40 Sekunden und so weiter, bis Sie entweder ein Limit erreichen, auf das Sie verzichten möchten, oder der Server Ihnen erlaubt, die Anfrage erfolgreich zu stellen.