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的SimPy库简化复杂的编程模型的介绍
Apr 13 Python
详细讲解用Python发送SMTP邮件的教程
Apr 29 Python
Python中的推导式使用详解
Jun 03 Python
浅谈Python 的枚举 Enum
Jun 12 Python
python装饰器实例大详解
Oct 25 Python
Python进程间通信之共享内存详解
Oct 30 Python
Python cookbook(数据结构与算法)字典相关计算问题示例
Feb 18 Python
python实现抖音点赞功能
Apr 07 Python
Python代码中如何读取键盘录入的值
May 27 Python
PyCharm2020.1.1与Python3.7.7的安装教程图文详解
Aug 07 Python
django跳转页面传参的实现
Sep 17 Python
分享3个非常实用的 Python 模块
Mar 03 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
PHP5权威编程阅读学习笔记 附电子书下载
2012/07/05 PHP
在Laravel框架里实现发送邮件实例(邮箱验证)
2016/05/20 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
setTimeout和setInterval的浏览器兼容性分析
2007/02/27 Javascript
使用onbeforeunload属性后的副作用
2007/03/08 Javascript
Iframe thickbox2.0使用的方法
2009/03/05 Javascript
用document.documentElement取代document.body的原因分析
2009/11/12 Javascript
toString()一个会自动调用的方法
2010/02/08 Javascript
利用js的Node遍历找到repeater的一个字段实例介绍
2013/04/25 Javascript
javascript完美拖拽的实现方法
2013/09/29 Javascript
jQuery链使用指南
2015/01/20 Javascript
Node.js用readline模块实现输入输出
2016/12/16 Javascript
详解如何使用vue-cli脚手架搭建Vue.js项目
2017/05/19 Javascript
结合mint-ui移动端下拉加载实践方法总结
2017/11/08 Javascript
jquery 实现拖动文件上传加载进度条功能
2018/03/18 jQuery
element-ui 限制日期选择的方法(datepicker)
2018/05/16 Javascript
vue中的数据绑定原理的实现
2018/07/02 Javascript
Redux实现组合计数器的示例代码
2018/07/04 Javascript
vue 弹框产生的滚动穿透问题的解决
2018/09/21 Javascript
2020京东618叠蛋糕js脚本(亲测好用)
2020/06/02 Javascript
[38:31]完美世界DOTA2联赛PWL S3 Magma vs GXR 第一场 12.13
2020/12/17 DOTA
python使用rabbitmq实现网络爬虫示例
2014/02/20 Python
Python装饰器基础详解
2016/03/09 Python
解决python中 f.write写入中文出错的问题
2018/10/31 Python
python多维数组分位数的求取方式
2020/03/03 Python
HTML5混合开发二维码扫描以及调用本地摄像头
2017/12/27 HTML / CSS
中国高端家电购物商城:顺电
2018/03/04 全球购物
电气专业应届生求职信
2013/11/01 职场文书
房地产销售大学生自我评价分享
2013/11/11 职场文书
心理学专业毕业生推荐信范文
2013/11/21 职场文书
学生干部的自我评价分享
2014/01/18 职场文书
竞选班长的演讲稿
2014/04/24 职场文书
汉语言文学专业求职信
2014/06/19 职场文书
2015年九一八事变纪念日演讲稿
2015/03/19 职场文书
汽车4S店销售经理岗位职责
2015/04/02 职场文书
2019大学毕业晚会主持词
2019/06/21 职场文书