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之玩转字符串(1)
Sep 14 Python
Python计算程序运行时间的方法
Dec 13 Python
python链接oracle数据库以及数据库的增删改查实例
Jan 30 Python
Python设计模式之状态模式原理与用法详解
Jan 15 Python
python求平均数、方差、中位数的例子
Aug 22 Python
matplotlib.pyplot画图并导出保存的实例
Dec 07 Python
Python实现线性判别分析(LDA)的MATLAB方式
Dec 09 Python
解决Django中checkbox复选框的传值问题
Mar 31 Python
记录一下scrapy中settings的一些配置小结
Sep 28 Python
用python-webdriver实现自动填表的示例代码
Jan 13 Python
详解分布式系统中如何用python实现Paxos
May 18 Python
Pytorch GPU内存占用很高,但是利用率很低如何解决
Jun 01 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
把从SQL中取出的数据转化成XMl格式
2006/10/09 PHP
PHP怎样调用MSSQL的存储过程
2006/10/09 PHP
PHP 截取字符串专题集合
2010/08/19 PHP
Yii清理缓存的方法
2016/01/06 PHP
PHP htmlspecialchars()函数用法与实例讲解
2019/03/08 PHP
JavaScript 解析读取XML文档 实例代码
2009/07/07 Javascript
jQuery拖动图片删除示例
2013/05/10 Javascript
JavaScript实现生成GUID(全局统一标识符)
2014/09/05 Javascript
JS实现浏览器状态栏显示时间的方法
2015/10/27 Javascript
JS实现支持Ajax验证的表单插件
2016/03/24 Javascript
浅谈js中同名函数和同名变量的执行问题
2017/02/12 Javascript
Vue-cli Eslint在vscode里代码自动格式化的方法
2018/02/23 Javascript
Vue.js+Layer表格数据绑定与实现更新的实例
2018/03/07 Javascript
深入理解Vue nextTick 机制
2018/04/28 Javascript
Vue项目使用localStorage+Vuex保存用户登录信息
2019/05/27 Javascript
解决VUE自定义拖拽指令时 onmouseup 与 click事件冲突问题
2020/07/24 Javascript
浅谈Vue开发人员的7个最好的VSCode扩展
2021/01/20 Vue.js
python使用Queue在多个子进程间交换数据的方法
2015/04/18 Python
pandas数据分组和聚合操作方法
2018/04/11 Python
详解python selenium 爬取网易云音乐歌单名
2019/03/28 Python
Django model select的多种用法详解
2019/07/16 Python
python 将字符串中的数字相加求和的实现
2019/07/18 Python
详解Anconda环境下载python包的教程(图形界面+命令行+pycharm安装)
2019/11/11 Python
将tensorflow模型打包成PB文件及PB文件读取方式
2020/01/23 Python
浅谈Tensorflow加载Vgg预训练模型的几个注意事项
2020/05/26 Python
Python如何读写字节数据
2020/08/05 Python
Python容器类型公共方法总结
2020/08/19 Python
如何实现一个python函数装饰器(Decorator)
2020/10/12 Python
Zooplus葡萄牙:欧洲领先的网上宠物商店
2018/07/01 全球购物
工业自动化毕业生自荐信范文
2014/01/04 职场文书
财务管理职业生涯规划书
2014/02/26 职场文书
卫生院艾滋病宣传活动小结
2014/07/09 职场文书
学校安全责任书范本
2014/07/23 职场文书
出纳岗位职责范本
2015/03/31 职场文书
关于办理居住证的介绍信模板
2019/11/27 职场文书
如何利用golang运用mysql数据库
2022/03/13 Golang