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读取csv文件示例(python操作csv)
Mar 11 Python
机器学习10大经典算法详解
Dec 07 Python
python Spyder界面无法打开的解决方法
Apr 27 Python
Python使用re模块正则提取字符串中括号内的内容示例
Jun 01 Python
Python爬虫实现抓取京东店铺信息及下载图片功能示例
Aug 07 Python
Python发送邮件测试报告操作实例详解
Dec 08 Python
Python 生成一个从0到n个数字的列表4种方法小结
Nov 28 Python
python Jupyter运行时间实例过程解析
Dec 13 Python
python Cartopy的基础使用详解
Nov 01 Python
Python如何急速下载第三方库详解
Nov 02 Python
Python3 如何开启自带http服务
May 18 Python
pytorch Dropout过拟合的操作
May 27 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中的fopen()函数用打开文件模式说明
2013/06/20 PHP
Laravel5.5 视图 - 创建视图和数据传递示例
2019/10/21 PHP
jquery 简单导航实现代码
2009/09/11 Javascript
iframe异步加载实现点击左边菜单加载右边内容实例讲解
2013/03/04 Javascript
JS预览图像将本地图片显示到浏览器上
2013/08/25 Javascript
快速查找数组中的某个元素并返回下标示例
2013/09/03 Javascript
javascript 原型链维护和继承详解
2014/11/26 Javascript
JS组件Bootstrap导航条使用方法详解
2016/04/29 Javascript
javascript入门之window对象【新手必看】
2016/11/22 Javascript
浅谈js数组和splice的用法
2016/12/04 Javascript
seajs模块压缩问题与解决方法实例分析
2017/10/10 Javascript
微信运维交互机器人的示例代码
2018/11/12 Javascript
Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验
2019/04/22 Javascript
jQuery操作选中select下拉框的值代码实例
2020/02/07 jQuery
Python多线程爬虫简单示例
2016/03/04 Python
解决Atom安装Hydrogen无法运行python3的问题
2019/08/28 Python
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
2019/09/17 Python
Python3 解决读取中文文件txt编码的问题
2019/12/20 Python
Python如何读取文件中图片格式
2020/01/13 Python
python新式类和经典类的区别实例分析
2020/03/23 Python
详解用Python爬虫获取百度企业信用中企业基本信息
2020/07/02 Python
如何完美的建立一个python项目
2020/10/09 Python
Django启动时找不到mysqlclient问题解决方案
2020/11/11 Python
HTML5注册表单的自动聚焦与占位文本示例代码
2013/07/19 HTML / CSS
什么是数组名
2012/05/10 面试题
国贸类专业毕业生的求职信分享
2013/12/08 职场文书
美术专业个人自我评价
2014/01/18 职场文书
2014年医德医风工作总结
2014/11/13 职场文书
车队安全员岗位职责
2015/02/15 职场文书
2015年电话销售工作总结范文
2015/04/20 职场文书
2015年技术工作总结范文
2015/04/20 职场文书
圣诞晚会主持词开场白
2015/05/28 职场文书
幼儿园家长心得体会
2016/01/21 职场文书
Django分页器的用法你都了解吗
2021/05/26 Python
SpringMVC 整合SSM框架详解
2021/08/30 Java/Android
Python实现视频自动打码的示例代码
2022/04/08 Python