新版 Scrapy 中 sys.conf.settings 的替代方法
阿新 • • 發佈:2021-11-17
新版 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 方法,該方法的返回值即是配置物件。