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定时采集摄像头图像上传ftp服务器功能实现
Dec 23 Python
python 七种邮件内容发送方法实例
Apr 22 Python
深入理解Python装饰器
Jul 27 Python
浅谈Python爬取网页的编码处理
Nov 04 Python
Tensorflow 查看变量的值方法
Jun 14 Python
Python单向链表和双向链表原理与用法实例详解
Aug 31 Python
Python 3.x基于Xml数据的Http请求方法
Dec 28 Python
pandas实现将日期转换成timestamp
Dec 07 Python
调整Jupyter notebook的启动目录操作
Apr 10 Python
使用Dajngo 通过代码添加xadmin用户和权限(组)
Jul 03 Python
Python实现自动签到脚本功能
Aug 20 Python
使用Python解决图表与画布的间距问题
Apr 11 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 escape URL编码
2008/12/10 PHP
php用数组返回无限分类的列表数据的代码
2010/08/08 PHP
php 表单提交大量数据发生丢失的解决方法
2014/03/03 PHP
javascript textarea光标定位方法(兼容IE和FF)
2011/03/12 Javascript
Extjs 3.3切换tab隐藏相应工具栏出现空白解决
2013/04/02 Javascript
jquery实现鼠标拖动图片效果示例代码
2014/01/09 Javascript
js设置document.domain实现跨域的注意点分析
2015/05/21 Javascript
javascript日期计算实例分析
2015/06/29 Javascript
Javascript中的return作用及javascript return关键字用法详解
2015/11/05 Javascript
理解AngularJs指令
2015/12/10 Javascript
JS组件Bootstrap Table布局详解
2016/05/27 Javascript
JS组件Bootstrap Table使用实例分享
2016/05/30 Javascript
jQuery UI结合Ajax创建可定制的Web界面
2016/06/22 Javascript
详解微信小程序 页面跳转 传递参数
2016/12/08 Javascript
js实现刷新页面后回到记录时滚动条的位置【两种方案可选】
2016/12/12 Javascript
JS数组排序方法实例分析
2016/12/16 Javascript
vue实现列表的添加点击
2016/12/29 Javascript
JS HTML图片显示Canvas 压缩功能
2017/07/21 Javascript
webpack配置sass模块的加载的方法
2017/07/30 Javascript
vue中的模态对话框组件实现过程
2018/05/01 Javascript
js脚本中执行java后台代码方法解析
2019/10/11 Javascript
JavaScript变量基本使用方法实例分析
2019/11/15 Javascript
微信小程序去除左上角返回键的实现方法
2020/03/06 Javascript
仿照Element-ui实现一个简易的$message方法
2020/09/14 Javascript
[01:19:46]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
[57:36]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第三场 2月1日
2021/03/11 DOTA
Python中的tuple元组详细介绍
2015/02/02 Python
在Python中使用itertools模块中的组合函数的教程
2015/04/13 Python
Python函数基本使用原理详解
2020/03/19 Python
Django+python服务器部署与环境部署教程详解
2020/03/30 Python
Html5 FileReader实现即时上传图片功能实例代码
2014/09/01 HTML / CSS
纪委书记群众路线整改措施思想汇报
2014/10/09 职场文书
学校德育工作总结2015
2015/05/11 职场文书
2016年优秀共青团员事迹材料
2016/02/25 职场文书
教你解决往mysql数据库中存入汉字报错的方法
2021/05/06 MySQL
Linux系统下MySQL配置主从分离的步骤
2022/03/21 MySQL