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.
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. –
Siehe meine Bearbeitung, möglicherweise aufgrund der Geschwindigkeit, mit der Sie durch die Webseiten crawlen. – Thomas