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实现DNS正向查询、反向查询的例子
Apr 25 Python
Python中实现从目录中过滤出指定文件类型的文件
Feb 02 Python
Python实现的矩阵转置与矩阵相乘运算示例
Mar 26 Python
对pyqt5之menu和action的使用详解
Jun 20 Python
python和c语言的主要区别总结
Jul 07 Python
python3安装crypto出错及解决方法
Jul 30 Python
python字典的setdefault的巧妙用法
Aug 07 Python
PyTorch预训练的实现
Sep 18 Python
用Python去除图像的黑色或白色背景实例
Dec 12 Python
Python实现的北京积分落户数据分析示例
Mar 27 Python
pycharm下pyqt4安装及环境配置的教程
Apr 24 Python
Django 用户认证Auth组件的使用
Nov 30 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的文件操作与算法实现的面试题示例
2015/08/10 PHP
YII2 实现多语言配置的方法分享
2017/01/11 PHP
分享10篇优秀的jQuery幻灯片制作教程及应用案例
2011/04/16 Javascript
jquery中的mouseleave和mouseout的区别 模仿下拉框效果
2012/02/07 Javascript
让浏览器DOM元素最后加载的js方法
2014/07/29 Javascript
js锁屏解屏通过对$.ajax进行封装实现
2014/07/31 Javascript
jQuery ajaxSubmit 实现ajax提交表单局部刷新
2016/07/04 Javascript
深入解析Javascript闭包的功能及实现方法
2016/07/10 Javascript
JS实现的简易拖放效果示例
2016/12/29 Javascript
深入理解 JavaScript 中的 JSON
2017/04/06 Javascript
angularjs定时任务的设置与清除示例
2017/06/02 Javascript
在vue中,v-for的索引index在html中的使用方法
2018/03/06 Javascript
Vue中的v-for循环key属性注意事项小结
2018/08/12 Javascript
在Vue中使用axios请求拦截的实现方法
2018/10/25 Javascript
layui table 表格上添加日期控件的两种方法
2019/09/28 Javascript
[02:59]2014DOTA2西雅图国际邀请赛 圆满落幕中国夺冠
2014/07/23 DOTA
python获取本地计算机名字的方法
2015/04/29 Python
深入理解 Python 中的多线程 新手必看
2016/11/20 Python
Python正则表达式教程之一:基础篇
2017/03/02 Python
django之跨表查询及添加记录的示例代码
2018/10/16 Python
python+mysql实现教务管理系统
2019/02/20 Python
Python实现随机生成任意数量车牌号
2020/01/21 Python
python dict如何定义
2020/09/02 Python
简单介绍CSS3中Media Query的使用
2015/07/07 HTML / CSS
canvas学习和滤镜实现代码
2018/08/22 HTML / CSS
味多美官网:蛋糕订购,100%使用天然奶油
2017/11/10 全球购物
杰夫·班克斯男士服装网上商店:Jeff Banks
2019/10/24 全球购物
在浏览器端如何得到服务器端响应的XML数据
2012/11/24 面试题
自行车广告词大全
2014/03/21 职场文书
国贸专业求职信
2014/06/28 职场文书
卖房协议书样本
2014/10/30 职场文书
确保工程质量承诺书
2015/04/29 职场文书
家庭聚会祝酒词
2015/08/11 职场文书
2016年社区文体活动总结
2016/04/06 职场文书
创业计划书之孕婴生活馆
2019/11/11 职场文书
uniapp开发打包多端应用完整方法指南
2022/12/24 Javascript