新版Scrapy中sys.conf.settings的替代方法

编程

在 scrapy 项目目录下,有个 settings.py 文件,此文件是用来存放爬虫项目的各种配置,比如说 MongoDB 的服务器、端口号、数据库名等配置信息。

既然是配置信息,就需要在别的文件中引用。比如在 settings.py 文件中增加了如下内容:

MONGODB_HOST = "127.0.0.1"

MONGODB_PORT = 27017

MONGODB_DBNAME = "maitian"

MONGODB_DOCNAME = "zufang"

而在 pipelins.py 中想要引用该配置,在以前的版本中,使用方法应为:

from scrapy.conf import settings

host = settings["MONGODB_HOST"]

port = settings["MONGODB_PORT"]

db_name = settings["MONGODB_DBNAME"]

client = pymongo.MongoClient(host=host, port=port)

db = client[db_name]

self.post = db[settings["MONGODB_DOCNAME"]]

我电脑上的版本为 1.7.3 ,用上述引用方法报错,大概意思是没有 scrapy.conf 这个模块,在网上查了好久,发现在 1.7 版本之后,scrapy.conf 就被移除了,1.7 以后的版本里,正确使用 settings.py 中配置的方法为:

from scrapy.utils.project import get_project_settings

settings = get_project_settings()

host = settings["MONGODB_HOST"]

port = settings["MONGODB_PORT"]

db_name = settings["MONGODB_DBNAME"]

client = pymongo.MongoClient(host=host, port=port)

db = client[db_name]

self.post = db[settings["MONGODB_DOCNAME"]]

即导入 get_project_settings 方法,该方法的返回值即是配置对象。

参考:https://github.com/scrapy/scrapy/pull/3578

 

以上是 新版Scrapy中sys.conf.settings的替代方法 的全部内容, 来源链接: utcz.com/z/517851.html

回到顶部