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之集成开发环境(IDE)
Sep 12 Python
Python多进程同步简单实现代码
Apr 27 Python
详解python 字符串和日期之间转换 StringAndDate
May 04 Python
Python实现的快速排序算法详解
Aug 01 Python
Python实现的读取电脑硬件信息功能示例
May 30 Python
两个元祖T1=('a', 'b'),T2=('c', 'd')使用匿名函数将其转变成[{'a': 'c'},{'b': 'd'}]的几种方法
Mar 05 Python
Python字典对象实现原理详解
Jul 01 Python
使用Python进行防病毒免杀解析
Dec 13 Python
Python调用Windows API函数编写录音机和音乐播放器功能
Jan 05 Python
Python 格式化打印json数据方法(展开状态)
Feb 27 Python
Python如何避免文件同名产生覆盖
Jun 09 Python
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
Jun 22 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
SONY SRF-M100的电路分析
2021/03/02 无线电
PHP闭包(Closure)使用详解
2013/05/02 PHP
php+highchats生成动态统计图
2014/05/21 PHP
php格式化json函数示例代码
2016/05/12 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
2017/11/12 PHP
php+redis消息队列实现抢购功能
2018/02/08 PHP
iframe的onload在Chrome/Opera中执行两次Bug的解决方法
2011/03/17 Javascript
jQuery 一个图片切换的插件
2011/10/09 Javascript
40个新鲜出炉的jQuery 插件和免费教程[上]
2012/07/24 Javascript
js处理php输出时间戳对不上号的解决方法
2014/06/20 Javascript
JavaScript检查数字是否为整数或浮点数的方法
2015/06/09 Javascript
全系IE支持Bootstrap的解决方法
2015/10/19 Javascript
用JavaScript获取页面文档内容的实现代码
2016/06/10 Javascript
jQuery.datatables.js插件用法及api实例详解
2016/10/28 Javascript
vue实现列表的添加点击
2016/12/29 Javascript
jQuery插件zTree实现获取一级节点数据的方法
2017/03/08 Javascript
VueJS组件之间通过props交互及验证的方式
2017/09/04 Javascript
在vue.js中使用JSZip实现在前端解压文件的方法
2018/09/05 Javascript
JavaScript运动原理基础知识详解
2020/04/02 Javascript
[03:24][TI9纪实] Dota奶爸
2019/08/22 DOTA
深入讨论Python函数的参数的默认值所引发的问题的原因
2015/03/30 Python
Python实现快速排序和插入排序算法及自定义排序的示例
2016/02/16 Python
Windows下Python3.6安装第三方模块的方法
2018/11/22 Python
pandas删除指定行详解
2019/04/04 Python
Python学习笔记之文件的读写操作实例分析
2019/08/07 Python
Python爬虫使用代理IP的实现
2019/10/27 Python
python中删除某个元素的方法解析
2019/11/05 Python
keras模型可视化,层可视化及kernel可视化实例
2020/01/24 Python
CSS3 选择器 伪类选择器介绍
2012/01/21 HTML / CSS
酒店端午节促销方案
2014/02/18 职场文书
自强之星事迹材料
2014/05/12 职场文书
小学教师暑期培训方案
2014/08/28 职场文书
质监局领导班子践行群众路线整改方案
2014/10/26 职场文书
党员“一帮一”活动总结
2015/05/07 职场文书
高中体育课教学反思
2016/02/16 职场文书
OpenCV-Python 实现两张图片自动拼接成全景图
2021/06/11 Python