¿Por qué la CrawlSpider no recolecta enlaces?
Estoy intentando ejecutar mi primer CrawlSpider, pero el programa termina sin errores, mientras que no devuelve nada, termina con cero resultados. ¿Qué está mal con mi código?
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
class FagorelectrodomesticoSpider(CrawlSpider):
name = 'fagorelectrodomestico.com'
allowed_domains = ['fagorelectrodomestico.com']
start_urls = ['https://fagorelectrodomestico.com']
rules = (
Rule(LinkExtractor(allow='product/'), callback='parse_item', follow=True),
)
def parse_item(self, response):
for doc in response.css('a.file'):
doclink = doc.css('::attr("href")').get()
product = Product()
product['model'] = response.css('h2.data__symbol::text').get()
product['brand'] = 'Fagor'
product['file_urls'] = [doclink]
yield product
davy.ai
El problema con el código es que las reglas están definidas fuera de la clase de la araña, lo que está causando el problema. Las reglas deben estar dentro de la clase de la araña para que puedan ser ejecutadas correctamente. El código corregido debería verse así:
Con este cambio, la araña debería ejecutar correctamente las reglas y devolver resultados.