下面你可以看到我的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()
}
1条答案
按热度按时间hmae6n7t1#
问题出在您的
allowed_domains
上。Scrapy
正在过滤start_urls
之后的所有链接,因为它们与您的allowed_domains
列表中的任何域都不匹配。我已在下面的示例中进行了更正您可以在输出日志中看到它
第一个