我需要在爬网完成后测试所有抓取的数据(某些字段可用性的百分比等)。数据包含在 csv 文件中,因此为了进行测试,我决定使用 Pandas。在 Scrapy 告诉我爬行已完成后,有什么方法可以启动测试 scrapy 蜘蛛内的 .csv 文件的代码吗?我尝试过使用扩展,但无法让它工作。谢谢
class Spider(scrapy.Spider):
name = 'scrapyspider'
allowed_domains = ['www.example.com']
start_urls = ['https://www.example.com/1/', 'https://www.example.com/2/']
def parse(self, response):
for product_link in response.xpath(
'//a[@class="product-link"]/@href').extract():
absolute_url = response.urljoin(product_link)
yield scrapy.Request(absolute_url, self.parse_product)
for category_link in response.xpath(
'//a[@class="navigation-item-link"]/@href').extract():
absolute_url = response.urljoin(category_link)
yield scrapy.Request(absolute_url, self.parse)
def parse_product(self, response):
...
yield item
最佳答案
Scrapy为您提供了控制Pipelines
中项目的流程
在Pipelines
中,您可以验证或可以对项目应用任何检查,如果它不符合您的条件或者您想要根据某些属性值更新数据,您可以在那里进行。
有关管道
的更多信息,您可以阅读here
关于python - 爬行完成后运行自定义代码(scrapy),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54224645/