没有项目描述

scrapy-pipeline-mongodb的Python项目详细描述


PyPI VersionBuild StatusWheel StatusCoverage report

概述

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 namein ^{tt2}$
authMechanismMONGODB_OPTIONS_authMechanism

有关更多选项,请参阅页面:

Connection String URI Format — MongoDB Manual 3.4

MongoDB\u索引

当爬行器处于 开放

如果索引已经存在,则警告或错误将被暂停。

MONGODB_进程项

此管道提供定义函数process_item的设置,该函数 可以帮助自定义与MongoDB交互的方式。带着这个包裹 是否提供了一个默认函数:调用 collection将项目保存到MongoDB中,然后返回该项目。

如果提供自定义方法来替换默认方法,请注意 行为应该遵循在剪贴簿上清楚写明的要求。 文件:

Item Pipeline — Scrapy 1.4.0 documentation

用于处理项目的内置函数

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的异步驱动程序。请阅读 相关文档,以确保自定义方法能够在 管道。

待办事项

  • 为索引创建函数添加单元测试
  • 添加同步管道

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
有没有一种方法可以将不同的java web应用程序组合到一个web应用程序(war)中而不相互影响?   java一次屏蔽两位   java如何在多个类上初始化元素?   java在后台服务中处理通知或使用GCM(或其他推送通知服务)   java从const方法调用JNI函数   javascript如何使用函数/方法返回?   Java优化:声明类变量与使用临时变量   java字符算术基数8 vs基数10   Java流收集要存储的对象列表   swing我正在用Java中的keyListener制作一个精灵移动器   在Gradle构建脚本中使用Scala(或java)方法   java Android Mediaplayer下一步按钮不起作用   Java Sound API在播放音频文件后将其锁定   java将变量从外部类传递到内部类的最佳方法   使用play framework的博客web应用程序出现java逻辑错误   java我们可以在Spring批处理中处理大型zip文件吗?   java如何检查JTable的选定行的特定列中的值是否已经在JList中?