2016-04-09 13 views
2

FrageInstruct Scrapy den Inhalt Länge einer Website

ignorieren

Wie kann ich den Inhalt Länge einer Antwort in Scrapy ignorieren?

Erklärung

diese curl Befehl Betrachten“

curl -u <user:pass> http://data.icecat.biz/export/level4/NL/files.index.xml

Es fehlt zur Zeit, da der Content-Length-Header falsch von Icecat eingestellt wurde.

Wir können dieses Problem beheben, indem Ignorieren der Inhaltslänge unter Verwendung der Ignore-Inhaltslänge Parameter von curl:

curl --ignore-content-length -u <user:pass> http://data.icecat.biz/export/level4/NL/files.index.xml

Und alles funktioniert!

Allerdings habe ich keine Ahnung, wie dies in Scrapy zu tun. Google und die Dokumentation enthüllt mir nichts.

Bevor ich in den Scrapy-Code gehe, um das zu beheben, hat vielleicht schon jemand das getan.

Antwort

2

Sie können die maximale Antwortgröße festlegen, die Scrapy unter Verwendung von download_maxsize=0 an der Befehlszeile (unter Verwendung von scrapy crawl myspider -s download_maxsize=0) auf "unlimited" herunterladen soll. Der Standardwert ist 1024 Byte.

Sie können auch tun, um diese pro-Spinne in ihrem scrapy.spiders.Spider.custom_settings Attribute, pro-Projekt im myproject.settings Modul eines Scrapy Projektes oder global im scrapy.settings.default_settings Modul.

Siehe die offizielle Scrapy-Dokumentation für diese Option here oder weitere Anweisungen zu den integrierten Einstellungen here.

+1

Die Größe ist nicht das Problem. Diese Einstellung ignoriert die Größe wie von Ihnen vorgeschlagen: http://doc.scrapy.org/en/latest/topics/settings.html#download-maxsize Die Größe ist jedoch nicht das Problem. Es ist die Größe, die die gemeldete Größe überschreitet. Wie auch immer ich es versucht habe. Der Fehler bleibt derselbe wie folgt: 'Chunked decoder im 'CHUNK_LENGTH' Zustand, immer noch erwartet, dass mehr Daten zu 'FINISHED' gelangen. – Pullie

+1

Sieht so aus als wäre das ein Problem mit dem [Twisted Framework] (https://github.com/twisted/ twisted/blob/efab88424ddde53433fcc2422d36bf61046bb373/twisted/web/http.py # L1664). Ich habe keinen Zugang, um mit den Daten von IceCat zu spielen, um die chunked-codierte Antwort zu testen, aber [diese Ausgabe] (https://twistedmatrix.com/trac/ticket/6148) wurde Twisted vor ein paar Jahren gemeldet und es könnte sein relevant, wenn es nie geschlossen wurde. Ich werde ein bisschen herumstochern. – dnix

+0

irgendein Update zum Thema? – UriCS

Verwandte Themen