python - example - Scrapy: cómo depurar las solicitudes perdidas de scrapy
scrapy python documentation (1)
Encendido, la misma nota que Rho, puede agregar la configuración
DUPEFILTER_CLASS = ''scrapy.dupefilter.BaseDupeFilter''
a su "settings.py" que eliminará el almacenamiento en memoria caché url. Este es un problema complicado ya que no hay una cadena de depuración en los registros de scrapy que le indique cuándo utiliza un resultado en caché.
Tengo una araña scrapy, pero a veces no devuelve las solicitudes.
Lo he encontrado agregando mensajes de registro antes de generar una solicitud y después de obtener una respuesta.
Spider ha iterado sobre las páginas y el enlace de análisis para descartar elementos en cada página.
Aquí hay una parte del código
SampleSpider(BaseSpider):
....
def parse_page(self, response):
...
request = Request(target_link, callback=self.parse_item_general)
request.meta[''date_updated''] = date_updated
self.log(''parse_item_general_send {url}''.format(url=request.url), level=log.INFO)
yield request
def parse_item_general(self, response):
self.log(''parse_item_general_recv {url}''.format(url=response.url), level=log.INFO)
sel = Selector(response)
...
He comparado el número de cada mensaje de registro y "parse_item_general_send" es más que "parse_item_general_recv"
No hay 400 o 500 errores en las estadísticas finales, todos los códigos de estado de las respuestas son solo 200. Parece que las solicitudes simplemente desaparecen.
También agregué estos parámetros para minimizar posibles errores:
CONCURRENT_REQUESTS_PER_DOMAIN = 1
DOWNLOAD_DELAY = 0.8
Debido a la naturaleza asíncrona de Twisted, no sé cómo depurar este error. He encontrado una pregunta similar: Python Scrapy no siempre descarga datos del sitio web , pero no tiene ninguna respuesta