Si tienen la versión de Scrapy 2.2.0 al momento de correr el spider, no guardara los datos con el código que hay actualmente en el proyecto. Haciendo los siguientes cambios en el código logre que funcionara satisfactoriamente:
Primero: Cambiar todo los get() y getall() por extract()
links_declassified = response.xpath('//a[starts-with(@href, "collection") and (parent::h3|parent::h2)]/@href').extract()
title = response.xpath('//h1[@class="documentFirstHeading"]/text()').extract()
paragraph = response.xpath('//div[@class="field-item even"]//p[not(@class)]/text()').extract()
Segundo: Cambiar cb_kwargs en response.follow por meta
yield response.follow(link, callback=self.parse_link, meta={'url':response.urljoin(link)})
Tercero: En la funcion def parse_link borrar el argumento **kwargs y en la variable link cambiar kwargs[‘url’] por response.meta[‘url’].
def parse_link(self, response):
link = response.meta[‘url’]
De esta manera me funciono con la version 2.2.0 de Scrapy.
Espero que sea de ayuda, saludos!
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.