ScrapyDeprecationWarning:不建议使用模块`scrapy.conf`,而是使用`crawler.settings`属性

时间:2019-02-15 21:24:04

标签: python python-3.x web-scraping scrapy

我正在使用scrapy 1.5,并且以编程方式尝试通过python脚本运行scrapy搜寻器进程。作为此过程的一部分,我需要导入搜寻器设置并覆盖其某些参数。

我发现此导入语句可以满足我的需求

from scrapy.conf import settings

问题是,这可行,但还会产生以下弃用警告:

ScrapyDeprecationWarning: Module `scrapy.conf` is deprecated, use `crawler.settings` attribute instead

所以我猜这是针对某些旧版本的。收到警告后,我尝试访问scrapy.crawler.settings,但是它不存在(或者,经过一些搜索后找不到)。

如何解决此警告?

1 个答案:

答案 0 :(得分:6)

这只是顺便提及,但我在official documentation中找到了正确的方法。

您可以使用get_project_settings通过项目设置获取一个Settings实例:

from scrapy.utils.project import get_project_settings
SETTINGS = get_project_settings() 

SETTINGS
# {'AJAXCRAWL_ENABLED': False, 'AUTOTHROTTLE_DEBUG': False, ...'USER_AGENT': 'Scrapy/1.5.0 (+https://scrapy.org)'}

然后您可以根据需要对其进行修改,然后再将其传递给CrawlerProcess