症状:爬虫对于每个Response
都产生了多个Item
,系统的吞吐量比期望的要低,并且可能会出现和前一个案例相同的下载器开/关现象。
示例:这里我们假设有1000个请求,每个返回的页面有100个Item
,响应时间为0.25s,Item
在pipeline中的处理时间为3s。分别把CONCURRENT_ITEMS
设置成从10到150的值来运行爬虫:
for concurrent_items in 10 20 50 100 150; do
time scrapy crawl speed -s SPEED_TOTAL_ITEMS=100000 -s \
SPEED_T_RESPONSE=0.25 -s SPEED_ITEMS_PER_DETAIL=100 -s \
SPEED_PIPELINE_ASYNC_DELAY=