我有一个url列表,例如[‘http://example.com/page1 ',http://example.com/page2',...]。
这些urls在一个域名中,我用Scrapy编写了一个爬虫程序,我需要使用相同的爬虫程序一起运行这些urls。如果我有10个urls,我想创建10个相同的进程来运行爬虫程序,以提高效率。有解决方案吗?
我尝试使用CrawlerProcess来运行爬虫,但是如果urls太多,它会提醒我有太多TCP连接的错误。虽然crawler始终处于运行状态,但这种方法不利于维护。
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
process = CrawlerProcess(get_project_settings())
page_urls = ['http://example.com/page1', 'http://example.com/page2',]
for page_url in page_urls:
process.crawl('vimeo', start_urls=[page_url])
process.start()发布于 2019-01-11 20:57:17
如果目标是提高单个爬行器的并发请求数量,而不是特别地并行产生多个爬行器,我建议您简单地尝试像DOWNLOAD_DELAY、CONCURRENT_REQUEST或CONCURRENT_REQUESTS_PER_DOMAIN这样的设置。
https://stackoverflow.com/questions/54063061
复制相似问题