Gemäß these Anweisungen kann ich sehen, dass HTTP 500 Fehler, Verbindung verlorene Fehler etc. immer neu geplant werden, aber ich konnte nirgendwo finden, wenn 403 Fehler auch neu geplant werden oder wenn sie einfach als eine gültige Antwort behandelt werden oder nach dem Erreichen ignoriert werden WiederholungslimitsWie planen Sie 403 HTTP-Statuscodes, die später in scrapy gecrawlt werden sollen?
Auch aus dem gleichen Befehl:
Fehlgeschlagen Seiten auf dem Schaben Prozess gesammelt und bei das Ende nachgeholt, sobald die Spinne alle regulären Crawling beendet hat (nicht nicht) Seiten. Sobald keine weiteren fehlerhaften Seiten mehr zu versuchen sind, sendet diese Middleware ein Signal (retry_complete), so dass andere Erweiterungen mit diesem Signal verbinden können.
Worauf beziehen sich diese Failed Pages
? Enthalten sie 403 Fehler?
Außerdem kann ich diese Ausnahme sehen wird ausgelöst, wenn scrapy trifft auf einen HTTP 400 Status:
2015-12-07 12:33:42 [scrapy] DEBUG: Ignoring response <400 http://example.com/q?x=12>: HTTP status code is not handled or not allowed
Von dieser Ausnahme Ich denke, es ist klar, dass HTTP 400-Antworten werden ignoriert und nicht nachgeholt.
Ich bin mir nicht sicher, ob der HTTP-Status 403 ignoriert oder neu geplant wird, um am Ende gecrawlt zu werden. Also habe ich versucht, alle Antworten, die HTTP-Status 403 haben gemäß these Dokumente neu zu planen. Hier ist, was ich bisher versucht:
In einer middlewares.py Datei:
def process_response(self, request, response, spider):
if response.status == 403:
return request
else:
return response
Im settings.py:
RETRY_TIMES = 5
RETRY_HTTP_CODES = [500, 502, 503, 504, 400, 403, 404, 408]
Meine Fragen sind:
- Was beziehen sich diese
Failed Pages
auf? Enthalten sie 403 Fehler? - Muss ich
process_response
schreiben, um 403 Fehlerseiten neu zu planen, oder werden sie automatisch von scrapy neu geplant? - Welche Art von Ausnahmen und (HTTP-Codes) werden von scrapy umgeplant?
- Wenn ich eine 404-Fehlerseite neu einplane, trete ich dann in eine Endlosschleife ein oder gibt es eine Zeitüberschreitung, nach der die Neuterminierung nicht weiter ausgeführt wird?
Hey, Danke für die Antwort. Ich weiß ziemlich viel über Wiederholung. Meine Hauptfrage betrifft die Umplanung. Werden die Codes, die wiederholt werden, auch neu geplant? – Rahul
Ich verstehe nicht wirklich, was du meinst, aber der erneute Versuch startet die "Anfrage" erneut. – eLRuLL
'Fehlgeschlagene Seiten werden im Scraping-Prozess gesammelt und am Ende neu geplant, sobald die Spinne alle normalen (nicht fehlerhaften) Seiten durchsucht hat." Ich spreche über diese Umplanung. – Rahul