【问题标题】:Running multiple instances of a Scrapy Spider运行多个 Scrapy Spider 实例
【发布时间】:2016-03-17 13:51:55
【问题描述】:

我有来自同一个域(存储在 MongoDB 中)的数千个 URL,我需要使用 scrapy 抓取这些 URL。问题是,蜘蛛爬取第一个 URL,完成然后拿起第二个。我怎样才能让它一次获取多个 URL,所有这些都被并行抓取 - 独立?

我总是可以多次运行命令scrapy crawl <spidername>,但我正在寻找比这更复杂的解决方案。

欢迎实验想法!

【问题讨论】:

  • 小心 - 这听起来像是让自己被禁止进入正在抓取的域的好方法!
  • 我了解风险。请假设域所有者已将我的 IP 地址永久列入白名单
  • @PraveshJain,你调整过CONCURRENT_REQUESTSCONCURRENT_REQUESTS_PER_DOMAIN 吗?将这些设置为足够高的值,scrapy 应该并行下载大量页面。
  • @paultrmbrth:谢谢你的建议。我不知道那个设置。我看到 CONCURRENT_REQUESTS_PER_DOMAIN 的默认值为 8。但是,我仍然看到同步抓取的页面。
  • scrapy 进程中没有真正的并行化:stackoverflow.com/a/21755434/858913

标签: scrapy


【解决方案1】:

你可以在 Spider 的 start_urls 参数中加载 Mongo 中的所有 url。然后 Scrapy 将从这个列表中选择 url 并开始同时处理它们。

【讨论】:

    猜你喜欢
    • 2020-09-26
    • 2015-07-09
    • 1970-01-01
    • 2022-10-24
    • 1970-01-01
    • 2014-10-06
    • 1970-01-01
    • 2014-03-18
    • 2021-10-29
    相关资源
    最近更新 更多