2016-07-31 8 views
2

Ich kann keine Lösung für das folgende Problem finden. Ich benutze Scrapy (neueste Version) und versuche eine Spinne zu debuggen. Mit scrapy shell https://jigsaw.w3.org/HTTP/300/301.html -> es folgt nicht die Umleitung (es verwendet eine Standardspinne, um die Daten zu erhalten). Wenn ich meine Spinne laufen lasse, folgt die 301 - aber ich kann nicht debuggen.Scrapy - 301 Redirect in der Shell

Wie können Sie die Shell dazu bringen, der 301 zu folgen, damit Sie die letzte Seite debuggen können?

Antwort

8

Scrapy verwendet Redirect Middleware für Redirects, ist jedoch in der Shell nicht aktiviert. Schnelle Lösung dafür:

scrapy shell "https://jigsaw.w3.org/HTTP/300/301.html" 
fetch(response.headers['Location']) 

Auch Ihre Spinne debuggen Sie wollen wahrscheinlich die Antwort Ihre Spinnen inspizieren empfangen:

from scrapy.shell import inspect_response 
def parse(self, response) 
    inspect_response(response, self) 
    # the spider will stop here and open up an interactive shell during the run 
+0

Dank! Dies scheint eine schnelle Lösung zu sein, die es mir erlaubt weiterzumachen! – Pixelartist

+0

@Pixelartist kein Problem, siehe meine Bearbeitung für weitere Informationen in Bezug auf das Debuggen von Spidern. – Granitosaurus

+0

Ich denke, die zusätzliche Bearbeitung ist eine Art der vollständigen Lösung. Ich hatte gehofft, dass Sie das Shell-Verhalten konfigurieren können, aber damit - es löst es. – Pixelartist