刮痧:可以';在scrapy 2.1.0中不再定义bot名称

刮痧:可以';在scrapy 2.1.0中不再定义bot名称,scrapy,Scrapy,我有一个scrapy 2.1项目正在运行,在根目录下有两个文件夹。我的意图是有两个项目,分别机器人和设置除了一个全球性的设置 现在我试图定义项目名称,所以我使用了export命令。不幸的是,这以某种方式将bot名称更改为“scrapybot”,无法再次重命名: merlin@192-143-0-9 spider1 % export SCRAPY_PROJECT=bid merlin@192-143-0-9 spider1 % scrapy settings --get BOT_NAM

我有一个scrapy 2.1项目正在运行,在根目录下有两个文件夹。我的意图是有两个项目,分别机器人和设置除了一个全球性的设置

现在我试图定义项目名称,所以我使用了export命令。不幸的是,这以某种方式将bot名称更改为“scrapybot”,无法再次重命名:

merlin@192-143-0-9 spider1 % export SCRAPY_PROJECT=bid      
merlin@192-143-0-9 spider1 % scrapy settings --get BOT_NAME 
scrapybot
该项目位于git回购协议中,并且处于git状态,它没有显示任何更改。由于重命名了项目,爬行器列表现在为空

这对我来说像个bug,所以我的主要问题是:

  • 如何将我的机器人重新命名为它的原始名称“bid”,所有爬行器都位于该名称下
  • 一旦我让它重新运行,导致我出现当前问题的第二个问题是:

  • 如何在一个根目录下指定两个不同的项目,并使用它们自己的spider和设置
    • 这是正常的
      git状态
      没有显示任何差异。您只是设置了一个环境变量
      scrapy settings
      将从settings.py文件中读取值,因此根据您所在的项目文件夹,它将为您提供“bid”或“scrapybot”
    • 以下结构允许您在一个根目录下有多个scrapy项目,每个项目都有自己的设置和爬行器:

    我在重新启动后得到了它,因为唯一的选择是它被保存在RAM中。然而,最初的问题仍然很有趣。我创建了一个文件夹,只需通过文件系统添加它。我猜这还不够,因为第二个项目中缺少init.py文件。如何在同一个根目录下创建第二个项目?只需遵循所述的目录结构,并确保scrapy.cfg得到更新(如此处文档中所述:)就足够了。我知道每个项目都需要中间件、管道、项目和蜘蛛。但这两个项目如何共享中间件?这就是他们同根的全部原因。根据我现在的理解,这是不可能的,因为如果我想部署一个项目,没有另一个项目,它将是不完整的。我说的对吗?是的,如果你想在蜘蛛之间共享中间件等,我认为你需要把这些蜘蛛放在同一个项目下。好的,谢谢你提供的信息。我现在将爬行器分离到不同根目录下的不同项目中。
    root/
        scrapy.cfg
        bid/
            __init__.py
            items.py
            middlewares.py
            pipelines.py
            settings.py
            spiders/
                bidspider.py
        scrapybot/
            __init__.py
            items.py
            middlewares.py
            pipelines.py
            settings.py
            spiders/
                scrapybotspider.py