python – 使用scrapy进行CPU密集型解析
作者:互联网
http://doc.scrapy.org/en/latest/topics/settings.html#concurrent-items的CONCURRENT_ITEMS部分将其定义为:
Maximum number of concurrent items (per response) to process in
parallel in the Item Processor (also known as the Item Pipeline).
这让我很困惑.这是否意味着发送到管道的项目是并行处理的,即.真的多处理?
假设我的解析涉及大量的lxml查询和xpath’ing.我应该在spider的parse方法本身中执行它们,还是应该发送一个包含整个响应的Item,让自定义管道类通过解析响应体来填充Item的字段?
解决方法:
请求系统也可以并行工作,参见http://doc.scrapy.org/en/latest/topics/settings.html#concurrent-requests.Scrapy用于处理蜘蛛本身的请求和解析,回调方法使其异步,默认情况下,多个请求确实并行工作.
并行处理的项目管道不打算进行大量解析:它的目的是检查和验证每个项目中的值. (http://doc.scrapy.org/en/latest/topics/item-pipeline.html)
因此,您应该在蜘蛛本身中进行查询,因为它们被设计为存在.来自蜘蛛的文档:
Spiders are classes which define how a certain site (or group of sites) will be scraped, including how to perform the crawl (ie. follow links) and how to extract structured data from their pages (ie. scraping items).
标签:python,web-scraping,scrapy,screen-scraping 来源: https://codeday.me/bug/20191008/1873789.html