没有项目描述

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搜索文本中的字符串模式   SecurityManager引发异常的java Mockito模拟   java(仅限Netbeans)未找到适合jdbc的驱动程序:mysql://localhost   java计算给定字符串所有前缀的哈希值的子字符串的哈希值   java如何避免每次访问REST认证API以使用实际服务   用于HTML的java Jsoup选择器组合   可以复制或引用的java构造函数   Java中的HashMap。搞砸containsKey返回意外值   java数组平均值计算   java是检查字符串是否包含特定字符的最有效方法   java反序列化对象类已更改   java典型的EJB3/JPA/JSF中的事务范围是什么?   Install4j的java错误代码20   java:compileJava在本地项目()依赖项上的多模块项目上持续失败“错误:包x.y.z不存在”   java有一种生成Suppression的方法。现有代码库中checkstyle的xml文件?