为什么我的Scrapy Response.follow没有跟随链接并返回空值?

nzkunb0c  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(150)

下面你可以看到我的spider(在这个例子中只是一个测试)。当我测试时,我首先运行parse_remedios作为主解析,它返回结果。但是当我使用parse_remedios作为第二个函数时(如下面的代码所示),结果是空的。我知道它有一些关于响应的东西。follow运行得不好。有什么想法吗?

import scrapy

class RemediosSpider(scrapy.Spider):
name = 'remedios'
allowed_domains = ['www.drogariaspachecopacheco.com.br']
start_urls = ['https://www.drogariaspacheco.com.br/clorana%2025mg']

def parse(self, response):
    print(response.url)
    for link in response.css('.collection-link::attr(href)'):
        yield response.follow(link.get(), callback=self.parse_remedios)

def parse_remedios(self, response):
    resultado = response.css('.container-fluid')
    yield {
    'nome' : resultado.css('.productName::text').get(),
    'preco' : resultado.css('.skuBestPrice::text').get() ,
    'link' : response.url,
    'sku' : resultado.css('.skuReference::text').get()
    }
hmae6n7t

hmae6n7t1#

问题出在您的allowed_domains上。Scrapy正在过滤start_urls之后的所有链接,因为它们与您的allowed_domains列表中的任何域都不匹配。我已在下面的示例中进行了更正
您可以在输出日志中看到它
第一个

相关问题