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抓取京东商城手机列表url实例代码
Dec 18 Python
Python遍历目录并批量更换文件名和目录名的方法
Sep 19 Python
pandas groupby 分组取每组的前几行记录方法
Apr 20 Python
python实现指定字符串补全空格、前面填充0的方法
Nov 16 Python
python使用requests模块实现爬取电影天堂最新电影信息
Apr 03 Python
Python3.5装饰器原理及应用实例详解
Apr 30 Python
itchat-python搭建微信机器人(附示例)
Jun 11 Python
Python利用matplotlib做图中图及次坐标轴的实例
Jul 08 Python
python networkx 包绘制复杂网络关系图的实现
Jul 10 Python
在Mac中配置Python虚拟环境过程解析
Jun 22 Python
python 中的9个实用技巧,助你提高开发效率
Aug 30 Python
pytorch--之halfTensor的使用详解
May 24 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
多文件上载系统完整版
2006/10/09 PHP
海河写的 Discuz论坛帖子调用js的php代码
2007/08/23 PHP
一些常用的php简单命令代码集锦
2007/09/24 PHP
如何在Ubuntu下启动Apache的Rewrite功能
2013/07/05 PHP
PHP编程中的常见漏洞和代码实例
2014/08/06 PHP
php rsa 加密,解密,签名,验签详解
2016/12/06 PHP
PHP实现RSA签名生成订单功能【支付宝示例】
2017/06/06 PHP
laravel框架与其他框架的详细对比
2019/10/23 PHP
javascript 去字符串空格终极版(支持utf8)
2009/11/14 Javascript
JavaScript实现复制功能各浏览器支持情况实测
2013/07/18 Javascript
jQuery+ajax实现鼠标单击修改内容的方法
2014/06/27 Javascript
jQuery搜索同辈元素方法
2015/02/10 Javascript
JavaScript类型系统之正则表达式
2016/01/05 Javascript
javascript对象的创建和访问
2016/03/08 Javascript
js实现动态创建的元素绑定事件
2016/07/19 Javascript
Node.js的特点详解
2017/02/03 Javascript
使用ionic(选项卡栏tab) icon(图标) ionic上拉菜单(ActionSheet) 实现通讯录界面切换实例代码
2017/10/20 Javascript
vue cli使用绝对路径引用图片问题的解决
2017/12/06 Javascript
Angular使用Restful的增删改
2018/12/28 Javascript
vue a标签点击实现赋值方式
2020/09/07 Javascript
Vue filter 过滤器、以及在table中的使用介绍
2020/09/07 Javascript
vue项目页面嵌入代码块vue-prism-editor的实现
2020/10/30 Javascript
python扫描proxy并获取可用代理ip的实例
2017/08/07 Python
cmd运行python文件时对结果进行保存的方法
2018/05/16 Python
Django数据库连接丢失问题的解决方法
2018/12/29 Python
Python基于Opencv来快速实现人脸识别过程详解(完整版)
2019/07/11 Python
python使用Matplotlib改变坐标轴的默认位置
2019/10/18 Python
python实现视频读取和转化图片
2019/12/10 Python
python+adb+monkey实现Rom稳定性测试详解
2020/04/23 Python
Jupyter Notebook 实现正常显示中文和负号
2020/04/24 Python
美国首屈一指的高品质珠宝设计师和零售商:Allurez
2018/01/23 全球购物
英国手工布艺沙发在线购买:Sofas & Stuff
2018/03/02 全球购物
Kappa英国官方在线商店:服装和运动器材
2020/11/22 全球购物
优秀大学生自荐信
2014/06/09 职场文书
交通事故案件代理词
2015/05/23 职场文书
Python sklearn分类决策树方法详解
2022/09/23 Python