Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scrapy 消除多个同名蜘蛛的刮擦警告_Scrapy - Fatal编程技术网

Scrapy 消除多个同名蜘蛛的刮擦警告

Scrapy 消除多个同名蜘蛛的刮擦警告,scrapy,Scrapy,我收到了Scrapy的警告,我有多个同名蜘蛛。正如下面的终端输出所解释的,我不知道为什么 (env) MacBook-Air:scrapy_project username$ find . -name "*.pyc" -exec rm -f {} \; (env) MacBook-Air:scrapy_project username$ grep -rl name_of_spider . ./bot/spiders/vendors/name_of_spider.py (env) MacBoo

我收到了Scrapy的警告,我有多个同名蜘蛛。正如下面的终端输出所解释的,我不知道为什么

(env) MacBook-Air:scrapy_project username$ find . -name "*.pyc" -exec rm -f {} \;

(env) MacBook-Air:scrapy_project username$ grep -rl name_of_spider .
./bot/spiders/vendors/name_of_spider.py

(env) MacBook-Air:scrapy_project username$ scrapy crawl name_of_spider
/Users/username/scrapy_project/env/lib/python3.7/site-packages/scrapy/spiderloader.py:36: UserWarning: There are several spiders with the same name:

  NameOfSpiderSpider named 'name_of_spider' (in bot.spiders.vendors.name_of_spider)
  NameOfSpiderSpider named 'name_of_spider' (in bot.spiders.vendors.name_of_spider)

  This can cause unexpected behavior.
  warnings.warn(msg, UserWarning)

不确定这是否是你的情况,但可能会帮助其他人,因为我在谷歌上搜索了警告信息,没有找到太多相关的帮助

tl;dr:检查
设置.py
SPIDER_MODULES
中的路径,如果列表中有
SPIDER
的子文件夹,则scrapy loader会多次发现这些子文件夹SPIDER

我的案例:我在
spider/
目录中有多个spider,然后在
spider/grouped/
子文件夹中有一堆其他spider,它们是从抽象/基本spider继承的(在
spider/grouped/u init_uuuuuuuuuuuuuuuuuy.py
中)

spider
├── a、 派克
├── b、 派克
├── __初始值
└── 分组
├── c、 派克
├── d、 派克
└── __初始值
我以前认为我需要在
settings.py
中指定
SPIDER\u模块中的所有子文件夹,如下所示:

SPIDER\u模块=[“我的scraper.SPIDER”,“我的scraper.SPIDER.grouped”]
但loader递归地查找所有爬行器,所以正确的方法应该是:

SPIDER\u模块=[“my\u scraper.SPIDER”]

有一次,我创建了一个子类,但没有在subclass@WimHermans我相信这只是名字,但我确实有那套。确实是名字。你能复制粘贴你的spider的相关部分吗?为了调试,我把它精简为两行:``类VendorSpider(ProductSpider):name=` vendor\u spider'``它是从ProductSpider继承的,有为该类设置的名称吗?有没有从VendorSpider继承的类?