我不想对已经使用httpcache中间件缓存的页面使用crawlera代理服务(因为我对每月的调用数量有限制)。
我正在使用crawlera中间件,并使用以下方法启用它:
observe
根据文档(https://scrapy-crawlera.readthedocs.io/en/latest/)中的建议。
但是,在爬行结束后,我得到:
DOWNLOADER_MIDDLEWARES = {
'scrapy_crawlera.CrawleraMiddleware': 610}
带
2017-04-23 00:14:24 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
{'crawlera/request': 11,
'crawlera/request/method/GET': 11,
'crawlera/response': 11,
'crawlera/response/status/200': 10,
'crawlera/response/status/301': 1,
'downloader/request_bytes': 3324,
'downloader/request_count': 11,
'downloader/request_method_count/GET': 11,
'downloader/response_bytes': 1352925,
'downloader/response_count': 11,
'downloader/response_status_count/200': 10,
'downloader/response_status_count/301': 1,
'dupefilter/filtered': 6,
'finish_reason': 'closespider_pagecount',
'finish_time': datetime.datetime(2017, 4, 22, 22, 14, 24, 839013),
'httpcache/hit': 11,
'log_count/DEBUG': 12,
'log_count/INFO': 9,
'request_depth_max': 1,
'response_received_count': 10,
'scheduler/dequeued': 10,
'scheduler/dequeued/memory': 10,
'scheduler/enqueued': 23,
'scheduler/enqueued/memory': 23,
'start_time': datetime.datetime(2017, 4, 22, 22, 14, 24, 317893)}
2017-04-23 00:14:24 [scrapy.core.engine] INFO: Spider closed (closespider_pagecount)
所以我不确定这些调用是否通过了crawlera代理服务。当我将crawlera中间件订单更改为901,749,751时,我得到相同的结果。
有谁知道引擎盖下的内容是什么?是否直接从http缓存返回页面而不调用crawlera服务器?
谢谢!
答案 0 :(得分:1)
将数字视为对其他中间件的引用。
'scrapy.downloadermiddlewares.httpcache.HttpCacheMiddleware': 600,
'rotating_proxies.middlewares.RotatingProxyMiddleware': 610,
'rotating_proxies.middlewares.BanDetectionMiddleware': 620
只需确保 httpcache.HttpCacheMiddleware 的数量少于代理中间件的数量。
这对我来说很好。