Scrapy 爬虫进程设置

我已经构建了多个爬虫并希望使用CrawlerProcess. 但是,在构建蜘蛛时,我对其进行了设置,因此它们的运行速度会稍慢一些,并且有下载延迟。单独运行蜘蛛时,设置工作正常,但是当我运行所有四个蜘蛛时,它的爬行速度非常快,一些站点将我踢出网络。我想知道的是为什么不CrawlerProcess遵循设置,如果有办法实现这一点,我该如何实现。


这是我如何设置它:


TMP_FILE = os.path.join(os.path.dirname(sys.modules['items'].__file__), 'tmp/items.csv')


process = CrawlerProcess({

'FEED_FORMAT': 'csv',

'FEED_URI': TMP_FILE,

})

process.crawl(Spider1)

process.crawl(Spider2)

process.crawl(Spider3)

process.crawl(Spider4)

process.start()


Helenr
浏览 255回答 2
2回答

墨色风雨

发生这种情况是因为每个蜘蛛都单独运行,而它们彼此不知道。当然,所有蜘蛛都使用相同的设置,但这是唯一的连接。该站点必须抱怨正在执行多个请求,可能是通过相同的代理/IP,所以我建议可能使用代理迭代器服务或进一步减慢蜘蛛的速度。您可以使用以下设置进行游戏:CONCURRENT_REQUESTSCONCURRENT_REQUESTS_PER_DOMAINDOWNLOAD_DELAY
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python