没有项目描述
scrapy-pipeline-mongodb的Python项目详细描述
概述
scrapy是一个很好的web爬行框架。这个包提供两个 以异步和同步方式将项目保存到MongoDB的管道。 它还提供了一种高度定制的方式,可以在两种异步模式下与MongoDB交互 同步方式:
- 使用此管道保存项目并获取对象ID
- 使用此管道更新项并获取对象ID
要求
- Txmongo,一个带有Twisted的异步MongoDB驱动程序
- Python 3.5上的测试
- linux上的测试,但它是一个纯python模块,应该可以在其他平台上工作 支持官方python和Twisted
安装
快捷方式:
pip install scrapy-pipeline-mongodb
或者把这个中间件放在scrapy项目旁边。
文件
在settings.py中的ITEMPIPELINES中设置块检查器,例如:
from txmongo.filter import ASCENDING from txmongo.filter import DESCENDING # ----------------------------------------------------------------------------- # PIPELINE MONGODB ASYNC # ----------------------------------------------------------------------------- ITEM_PIPELINES.update({ 'scrapy_pipeline_mongodb.pipelines.mongodb_async.PipelineMongoDBAsync': 500, }) MONGODB_USERNAME = 'user' MONGODB_PASSWORD = 'password' MONGODB_HOST = 'localhost' MONGODB_PORT = 27017 MONGODB_DATABASE = 'test_mongodb_async_db' MONGODB_COLLECTION = 'test_mongodb_async_coll' # MONGODB_OPTIONS_ = 'MONGODB_OPTIONS_' MONGODB_INDEXES = [('field_0', ASCENDING, {'unique': True}), (('field_0', 'field_1'), ASCENDING), (('field_0', ASCENDING), ('field_0', DESCENDING))] MONGODB_PROCESS_ITEM = 'scrapy_pipeline_mongodb.utils.process_item.process_item'
设置参考
MONGODB用户名
数据库的用户名字符串。
MongoDB\u密码
数据库的密码字符串。
MongoDB主机
ip地址或数据库域的字符串
MongoDB端口
数据库端口的整数。
MongoDB-U数据库
数据库名称的字符串。
MONGODB-U集合
要在集合上创建的索引的列表。
MONGODB_选项
当管道开始连接到mongobd时,可以附加选项。
如果需要任何选项,可以使用前缀设置该选项 MONGODB_OPTIONS_,管道将解析它。
例如:
option name | in ^{tt2}$ |
authMechanism | MONGODB_OPTIONS_authMechanism |
有关更多选项,请参阅页面:
MongoDB\u索引
当爬行器处于 开放
如果索引已经存在,则警告或错误将被暂停。
MONGODB_进程项
此管道提供定义函数process_item的设置,该函数 可以帮助自定义与MongoDB交互的方式。带着这个包裹 是否提供了一个默认函数:调用 collection将项目保存到MongoDB中,然后返回该项目。
如果提供自定义方法来替换默认方法,请注意 行为应该遵循在剪贴簿上清楚写明的要求。 文件:
用于处理项目的内置函数
scrapy_pipeline_mongodb.utils.process_item.process_item
这是一个内置函数,用于调用collection的方法insert_one, 并归还物品
要使用此函数,请在settings.py:
MONGODB_PROCESS_ITEM = 'scrapy_pipeline_mongodb.utils.process_item.process_item'
注
对于同一个操作,数据库驱动程序可能有不同的api,这个 pipeline采用txmongo作为mongodb的异步驱动程序。请阅读 相关文档,以确保自定义方法能够在 管道。
待办事项
- 为索引创建函数添加单元测试
- 添加同步管道