johnsonshu
V2EX  ›  问与答

scrapy 怎么管理大量的 spider 啊?

  •  
  •   johnsonshu · Nov 1, 2021 · 1783 views
    This topic created in 1660 days ago, the information mentioned may be changed or developed.

    假设我写了 1000 个 spider, 我总不能都放在 spiders 目录下吧。 我肯定要进行目录分割:

       spiders/AAA 目录下放置 :spiderA01  spiderA02  ...
       spiders/BBB 目录下放置 :spiderB01  spiderB02  ...
       ...
    

    但是,当我用 scrapyd-deploy 配置到 scrapyd 服务器时, 这些工具只看 spiders 目录下的 spider(子目录被忽略),这样,我的分割完的 spider 就被忽视了。

    我该怎么解决这个问题 ?

    Supplement 1  ·  Nov 3, 2021

    谢谢 @Kobayashi

    在 settins 里的这个设置里,加上spider 的各个子目录的模块名搞定了。

    另外,scrapyd-deploy 生成egg文件时用到了 setuptools 的 find_packages() 函数。 只有子目录里有 __init__.py 的目录才会被打包。 所以一股脑儿在各个目录下创建了 __init__.py

    (base) c:\_work\projs\python\scrapy01>scrapyd-deploy --debug -p scrapy01
    Packing version 1635911154
    Deploying to project "scrapy01" in http://ubuntu20-lts:6800/addversion.json
    Server response (200):
    {"node_name": "ubuntu20-lts", "status": "ok", "project": "scrapy01", "version": "1635911154", "spiders": 4}
    
    (base) c:\_work\projs\python\scrapy01>scrapyd-client spiders -p scrapy01
    scrapy01:
      ccpi
      quotes
      womenadvancenc
      yifymovies
    
    1 replies    2021-11-02 05:26:37 +08:00
    Kobayashi
        1
    Kobayashi  
       Nov 2, 2021 via Android   ❤️ 1
    SPIDER_MODULES
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1023 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 22:30 · PVG 06:30 · LAX 15:30 · JFK 18:30
    ♥ Do have faith in what you're doing.