2017-03-03 3 views
-1

Ich kratze Daten von einigen Amazon URL, aber natürlich bekomme ich manchmal Captcha. Ich frage mich, Aktivieren/Deaktivieren von Cookies Option hat damit zu tun. Ich rotiere beim Crawlen um 15 Proxies. Ich denke, die Frage ist, ob ich Cookies in der settings.py für saubere Seiten aktivieren oder deaktivieren soll oder es ist unwichtig?Scrapy - Sollte ich Cookies beim Crawlen aktivieren

Ich dachte, wenn ich es Website aktivieren würde wissen, die Geschichte, was die IP tut und nach einiger Zeit bemerken, das Muster und wird es nicht zulassen (das ist meine Vermutung), also sollte ich es deaktivieren ?? oder das gilt nicht einmal darüber, wie Cookies funktionieren und was sie sind

Antwort

1

Wie greifen Sie auf diese URLs, verwenden Sie die Urllib-Bibliothek? Wenn ja, haben Sie es vielleicht nicht bemerkt, aber urllib hat einen Standardbenutzeragenten. Der Benutzer-Agent ist Teil der HTTP-Anfrage (in der Kopfzeile gespeichert) und identifiziert den Typ der Software, mit der Sie auf eine Seite zugegriffen haben. Dadurch können Websites ihren Inhalt in verschiedenen Browsern korrekt anzeigen, aber auch, um festzustellen, ob Sie ein automatisiertes Programm verwenden (sie mögen keine Bots).

Jetzt teilt der Standard-Benutzer-Agent urllib der Website, die Sie verwenden, Python, um auf die Seite zuzugreifen (normalerweise ein großes Nein-Nein). Sie können Ihren User-Agent ziemlich leicht fälschen, um zu verhindern, dass böse Captcha-Codes erscheinen!

headers = { 'User-Agent' : 'Mozilla/5.0' } 
req = urllib2.Request('www.example.com', None, headers) 
html = urllib2.urlopen(req).read() 

Weil Sie scrapy verwenden Web-Seiten zu kriechen Sie Ihre settings.py Datei Änderungen vornehmen müssen, so dass Sie dort den User-Agent ändern können.

EDIT

Andere Gründe, warum Captchas alle über den Ort könnte erscheinen, weil Sie zu schnell über eine Website bewegen. Wenn du einen Schlafanruf zwischen URL-Anfragen hinzufügst, löst dies möglicherweise dein Captcha-Problem!

Andere Gründe für CAPTCHA mit:

  • Sie klicken auf Honeypot Links (Links, die im HTML-Code sind, aber nicht auf der Webseite angezeigt) entworfen Crawlern zu fangen.
  • Möglicherweise müssen Sie das Crawling-Muster ändern, da es möglicherweise als "nicht-menschlich" gekennzeichnet ist.
  • Überprüfen Sie die Website robots.txt, die anzeigt, was gecrawlt werden darf und darf.
+0

Ich benutze Scrapy und spoofing meine User-Agent. Ich bin mir nicht sicher, ob es hilft, Cookies zu aktivieren/deaktivieren, oder wie ich das in settings.py machen sollte. –

+0

Siehe meine Bearbeitung, möglicherweise aufgrund der Geschwindigkeit, mit der Sie durch die Webseiten crawlen. – Thomas

Verwandte Themen