前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一日一技:通过参数修改Scrapy的配置信息

一日一技:通过参数修改Scrapy的配置信息

作者头像
青南
发布2019-06-26 14:10:40
5370
发布2019-06-26 14:10:40
举报
文章被收录于专栏:未闻Code未闻Code

我们在开发Scrapy爬虫的时候,会把一些常用配置信息写到settings.py中。

例如爬虫需要把数据存入MongoDB里面,那么我可能会把MongoDB的链接URI写到settings.py中:

代码语言:javascript
复制
MONGODB_URI = 'mongodb://localhost'MONGODB_DB = 'test'MONGODB_COL = 'info'

但在正式的项目中,我们开发爬虫的时候,一般会有一个测试数据库,而爬虫部署以后会有一个正式数据库,他们的URI是不一样的。

这个时候,可能有一些同学会把两个配置信息都写到settings.py中:

代码语言:javascript
复制
MONGODB_URI = 'mongodb://localhost'#MONGODB_URI = 'mongodb://user:password@123.15.43.32:7766'MONGODB_DB = 'test'MONGODB_COL = 'info'

在本地开发的时候,把正式环境的地址注释掉,部署的时候,解除正式环境URI的注释,然后把测试地址注释掉。

这种方式虽然简单直接,但容易忘记。特别是一不小心在本地把测试数据写入了正式环境的数据库,那就麻烦了。

但实际上,Scrapy可以在 scrapy crawl xxx的时候,传入配置信息。并且这个配置信息拥有最高优先级,即时settings.py中也有相同名字的配置,命令行传入的也会覆盖它。

在命令行传入配置信息的格式为:

代码语言:javascript
复制
scrapy crawl xxx -s MONGODB_URI='mongodb://user:password@123.15.43.32:7766'

当我们这样启动爬虫的时候,爬虫通过 self.settings['MONGODB_URI']获取到的URI就是正式环境的URI了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 未闻Code 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档