Scrapy 消除多个同名蜘蛛的刮擦警告
我收到了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
(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继承的类?