scrapy自定义pipeline类实现将采集数据保存到mongodb的方法


Posted in Python onApril 16, 2015

本文实例讲述了scrapy自定义pipeline类实现将采集数据保存到mongodb的方法。分享给大家供大家参考。具体如下:

# Standard Python library imports
# 3rd party modules
import pymongo
from scrapy import log
from scrapy.conf import settings
from scrapy.exceptions import DropItem
class MongoDBPipeline(object):
  def __init__(self):
    self.server = settings['MONGODB_SERVER']
    self.port = settings['MONGODB_PORT']
    self.db = settings['MONGODB_DB']
    self.col = settings['MONGODB_COLLECTION']
    connection = pymongo.Connection(self.server, self.port)
    db = connection[self.db]
    self.collection = db[self.col]
  def process_item(self, item, spider):
    err_msg = ''
    for field, data in item.items():
      if not data:
        err_msg += 'Missing %s of poem from %s\n' % (field, item['url'])
    if err_msg:
      raise DropItem(err_msg)
    self.collection.insert(dict(item))
    log.msg('Item written to MongoDB database %s/%s' % (self.db, self.col),
        level=log.DEBUG, spider=spider)
    return item

希望本文所述对大家的python程序设计有所帮助。

Python 相关文章推荐
Python通过90行代码搭建一个音乐搜索工具
Jul 29 Python
Python实现的多线程http压力测试代码
Feb 08 Python
利用Python进行异常值分析实例代码
Dec 07 Python
浅析Python3 pip换源问题
Jan 06 Python
Django media static外部访问Django中的图片设置教程
Apr 07 Python
python 实现任务管理清单案例
Apr 25 Python
基于Python脚本实现邮件报警功能
May 20 Python
详解Python中Pyyaml模块的使用
Oct 08 Python
python可视化 matplotlib画图使用colorbar工具自定义颜色
Dec 07 Python
用Python远程登陆服务器的步骤
Apr 16 Python
MATLAB 如何求取离散点的曲率最大值
Apr 16 Python
python中%格式表达式实例用法
Jun 18 Python
使用Python编写一个简单的tic-tac-toe游戏的教程
Apr 16 #Python
Python基于scrapy采集数据时使用代理服务器的方法
Apr 16 #Python
在Python的gevent框架下执行异步的Solr查询的教程
Apr 16 #Python
使用Python的Treq on Twisted来进行HTTP压力测试
Apr 16 #Python
Python3中多线程编程的队列运作示例
Apr 16 #Python
使用Python脚本操作MongoDB的教程
Apr 16 #Python
使用Python中的greenlet包实现并发编程的入门教程
Apr 16 #Python
You might like
ThinkPHP应用模式扩展详解
2014/07/16 PHP
PHP5.2中PDO的简单使用方法
2016/03/25 PHP
Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解
2016/11/10 PHP
CI框架使用composer安装的依赖包步骤与方法分析
2016/11/21 PHP
javascript学习笔记(三) String 字符串类型介绍
2012/06/19 Javascript
js获取指定的cookie的具体实现
2014/02/20 Javascript
javascript使用avalon绑定实现checkbox全选
2015/05/06 Javascript
JavaScript中ES6 Babel正确安装过程
2016/07/18 Javascript
BOM系列第二篇之定时器requestAnimationFrame
2016/08/17 Javascript
JavaScript省市区三级联动菜单效果
2016/09/21 Javascript
Angular.js实现注册系统的实例详解
2016/12/18 Javascript
vuejs实现递归树型菜单组件
2018/01/13 Javascript
vue :src 文件路径错误问题的解决方法
2018/05/15 Javascript
vue用递归组件写树形控件的实例代码
2018/07/19 Javascript
Angular动态绑定样式及改变UI框架样式的方法小结
2018/09/03 Javascript
angularJs中ng-model-options设置数据同步的方法
2018/09/30 Javascript
js实现日历
2020/11/07 Javascript
vue3.0实现点击切换验证码(组件)及校验
2020/11/18 Vue.js
[02:24]DOTA2痛苦女王 英雄基础教程
2013/11/26 DOTA
Python复制目录结构脚本代码分享
2015/03/06 Python
django 按时间范围查询数据库实例代码
2018/02/11 Python
Python自定义线程类简单示例
2018/03/23 Python
Python3多线程操作简单示例
2018/05/22 Python
Windows下Python3.6安装第三方模块的方法
2018/11/22 Python
python mac下安装虚拟环境的图文教程
2019/04/12 Python
python使用pandas处理大数据节省内存技巧(推荐)
2019/05/05 Python
Pytorch实现GoogLeNet的方法
2019/08/18 Python
python 批量修改 labelImg 生成的xml文件的方法
2019/09/09 Python
Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)
2020/05/11 Python
纯CSS3实现运行时钟的示例代码
2021/01/25 HTML / CSS
html5本地存储之localstorage 、本地数据库、sessionStorage简单使用示例
2014/05/08 HTML / CSS
本科应届生求职信
2014/08/05 职场文书
委托书的写法
2014/08/30 职场文书
小英雄雨来观后感
2015/06/09 职场文书
2016年青少年禁毒宣传教育活动总结(学校)
2016/04/05 职场文书
windows11怎么查看自己安装的版本号? win11版本号的查看方法
2021/11/21 数码科技