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 + openpyxl处理excel2007文档思路以及心得
Jul 14 Python
Python设计足球联赛赛程表程序的思路与简单实现示例
Jun 28 Python
Python简单生成8位随机密码的方法
May 24 Python
对python操作kafka写入json数据的简单demo分享
Dec 27 Python
Python 限制线程的最大数量的方法(Semaphore)
Feb 22 Python
pyqt5实现按钮添加背景图片以及背景图片的切换方法
Jun 13 Python
浅谈pyqt5在QMainWindow中布局的问题
Jun 21 Python
django settings.py 配置文件及介绍
Jul 15 Python
关于Python中定制类的比较运算实例
Dec 19 Python
从Pytorch模型pth文件中读取参数成numpy矩阵的操作
Mar 04 Python
python 调用js的四种方式
Apr 11 Python
python通过新建环境安装tfx的问题
May 20 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
自定义session存储机制避免会话保持问题
2014/10/08 PHP
Laravel 5框架学习之表单
2015/04/08 PHP
php防止sql注入的方法详解
2017/02/20 PHP
php把字符串指定字符分割成数组的方法
2018/03/12 PHP
ThinkPHP框架使用redirect实现页面重定向的方法实例分析
2018/04/12 PHP
js判断浏览器类型为ie6时不执行
2014/06/15 Javascript
javascript 获取HTML DOM父、子、临近节点
2014/06/16 Javascript
让人蛋疼的JavaScript语法特性
2014/09/30 Javascript
jquery分隔Url的param方法(推荐)
2016/05/25 Javascript
js验证手机号、密码、短信验证码代码工具类
2020/06/24 Javascript
深入讲解xhr(XMLHttpRequest)/jsonp请求之abort
2017/07/26 Javascript
js中document.write和document.writeln的区别
2018/03/11 Javascript
JS工厂模式开发实践案例分析
2019/10/17 Javascript
js实现无缝轮播图特效
2020/05/09 Javascript
Vue左滑组件slider使用详解
2020/08/21 Javascript
[48:41]VP vs VG Supermajor小组赛 B组胜者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
基于ID3决策树算法的实现(Python版)
2017/05/31 Python
浅谈Python处理PDF的方法
2017/11/10 Python
python构建基础的爬虫教学
2018/12/23 Python
基于Numpy.convolve使用Python实现滑动平均滤波的思路详解
2019/05/16 Python
Python用字典构建多级菜单功能
2019/07/11 Python
浅析Python 引号、注释、字符串
2019/07/25 Python
python的re模块使用方法详解
2019/07/26 Python
Django 实现Admin自动填充当前用户的示例代码
2019/11/18 Python
python中常见错误及解决方法
2020/06/21 Python
修复iPhone的safari浏览器上submit按钮圆角bug
2012/12/24 HTML / CSS
KEEN美国官网:美国人气户外休闲鞋品牌
2021/03/09 全球购物
信息专业学生学习的自我评价
2014/02/17 职场文书
2014世界杯球队球队口号
2014/06/05 职场文书
计划生育标语
2014/06/23 职场文书
计划生育工作汇报
2014/10/28 职场文书
房产分割协议书范文
2014/11/21 职场文书
学习经验交流会策划书
2015/11/02 职场文书
《比尾巴》教学反思
2016/02/24 职场文书
读《瓦尔登湖》有感:每个人都需要一个瓦尔登湖
2019/10/17 职场文书
游戏《东方异文石:爱亚利亚黎明》正式版发布
2022/04/03 其他游戏