跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 多个 scrapy 爬虫启动问题
未分類
13 1 月 2021

多个 scrapy 爬虫启动问题

多个 scrapy 爬虫启动问题

資深大佬 : Luzaiv7 1

有挺多 scarpy 的爬虫,受限于代理数量,没法一次性全部启动。于是想找到一个类似队列,取哪个爬哪个的方法。 目前试过 进程池、scrapy 接口 都不是很理性 进程池的问题:

每个进程消费完第一个爬虫,进程就会关闭

scrapy 接口的问题:

必须按顺序爬,假如其他进程跑完,剩下未跑完的爬虫还是得一个个按顺序跑,浪费时间

以下是进程池的代码

from scrapy.crawler import CrawlerProcess from multiprocessing import Pool  def _crawl_main_program(spider, settings):  # spider: 爬虫     process = CrawlerProcess(settings)     process.crawl(spider)     process.start()   def _crawl_running(crawl_map: dict, settings: dict, max_processes=5):  # crawl_map: scrapy 爬虫映射表     if not crawl_map:         raise CrawlError()     executor = Pool(processes=max_processes)     for domain, spider in crawl_map.items():         executor.apply_async(_crawl_main_program, (spider, settings))     executor.close()     executor.join()          def core_website_crawl():     _crawl_running(crawl_map=core_spider_domain_map,      settings=core_website_crawl_settings)           if __name__ == '__main__':     core_website_crawl() 

想找到一个比较好用的方法

大佬有話說 (4)

  • 資深大佬 : QuinceyWu

    github 上有个分布式爬虫管理叫 Crawlab,我现在就在用,能满足你所有爬虫需求

  • 資深大佬 : tuoov

    subprocess.Popen([‘python’,’runSpider.py’])
    process.start()放到 runSpider 里,命令行传参决定启动的爬虫
    也许能解决你的问题

  • 主 資深大佬 : Luzaiv7

    @QuinceyWu 感觉这个挺适合我的,谢谢

  • 主 資深大佬 : Luzaiv7

    @tuoov 已经解决了,谢谢

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具