在旧版本中,我们可以使用以下代码获取蜘蛛列表(蜘蛛名称),但在当前版本(1.4)中,我遇到了
[py.warnings] WARNING: run-all-spiders.py:17: ScrapyDeprecationWarning: CrawlerRunner.spiders attribute is renamed to CrawlerRunner.spider_loader.
for spider_name in process.spiders.list():
# list all the available spiders in my project
使用
crawler.spiders.list()
:>>> for spider_name in crawler.spiders.list():
... print(spider_name)
如何在Scrapy中获取蜘蛛列表(和等效的类名)?
最佳答案
我在实用程序脚本中使用它来运行Spider:
from scrapy import spiderloader
from scrapy.utils import project
settings = project.get_project_settings()
spider_loader = spiderloader.SpiderLoader.from_settings(settings)
spiders = spider_loader.list()
classes = [spider_loader.load(name) for name in spiders]
在这种情况下,按照警告消息的建议将
spiders
重命名为spider_loader
就足够了。关于python - 在Scrapy中获取所有Spider类的名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46871133/