首页 > 其他 > 详细

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

时间:2019-11-13 13:52:13      阅读:319      评论:0      收藏:0      [点我收藏+]

新版 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 的替代方法

原文:https://www.cnblogs.com/banshaohuan/p/11848264.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!