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编写的最短路径算法
Mar 25 Python
在Python的循环体中使用else语句的方法
Mar 30 Python
python实现将元祖转换成数组的方法
May 04 Python
浅谈Python中copy()方法的使用
May 21 Python
TensorFlow变量管理详解
Mar 10 Python
5分钟 Pipenv 上手指南
Dec 20 Python
pycharm打开命令行或Terminal的方法
Jan 16 Python
Python3使用PySynth制作音乐的方法
Sep 09 Python
基于pygame实现童年掌机打砖块游戏
Feb 25 Python
简单了解Java Netty Reactor三种线程模型
Apr 26 Python
OpenCV利用python来实现图像的直方图均衡化
Oct 21 Python
Python matplotlib绘制条形统计图 处理多个实验多组观测值
Apr 21 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
php cookie的操作实现代码(登录)
2010/12/29 PHP
web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验
2013/06/01 PHP
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
2013/12/25 PHP
PHP利用header跳转失效的解决方法
2014/10/24 PHP
Laravel执行migrate命令提示:No such file or directory的解决方法
2016/03/16 PHP
PhpStorm连接服务器并实现自动上传功能
2020/12/09 PHP
addEventListener和attachEvent二者绑定的执行函数中的this不相同
2012/12/09 Javascript
js里取容器大小、定位、距离等属性搜集整理
2013/08/19 Javascript
javascript的push使用指南
2014/12/05 Javascript
jQuery插件实现控制网页元素动态居中显示
2015/03/24 Javascript
使用DNode实现php和nodejs之间通信的简单实例
2015/07/06 NodeJs
js实现完美兼容各大浏览器的人民币大小写相互转换
2015/10/29 Javascript
学习javascript文件加载优化
2016/02/19 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
2016/10/28 Javascript
详解jQuery的Cookie插件
2016/11/23 Javascript
详解webpack打包vue时提取css
2017/05/26 Javascript
bootstrap multiselect下拉列表功能
2017/08/22 Javascript
vue发送websocket请求和http post请求的实例代码
2019/07/11 Javascript
vue实现分页加载效果
2019/12/24 Javascript
jquery向后台提交数组的代码分析
2020/02/20 jQuery
Typescript3.9 常用新特性一览(推荐)
2020/05/14 Javascript
跟老齐学Python之Python文档
2014/10/10 Python
Windows系统配置python脚本开机启动的3种方法分享
2015/03/10 Python
Python使用googletrans报错的解决方法
2018/09/25 Python
详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法
2019/08/30 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
2020/11/28 Python
Delphi笔试题
2016/11/14 面试题
营销与策划专业毕业生求职信
2013/11/01 职场文书
高中考试作弊检讨书
2014/01/14 职场文书
安全教育月活动总结
2014/05/05 职场文书
优秀的应届生自荐信
2014/05/23 职场文书
我的中国梦演讲稿500字
2014/08/19 职场文书
长城导游词
2015/01/30 职场文书
高三生物教学反思
2016/02/22 职场文书
Golang 使用Map实现去重与set的功能操作
2021/04/29 Golang
MySQL中几种插入和批量语句实例详解
2021/09/14 MySQL