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 Deque 模块使用详解
Jul 04 Python
Python中的面向对象编程详解(上)
Apr 13 Python
讲解Python中的标识运算符
May 14 Python
python中日志logging模块的性能及多进程详解
Jul 18 Python
用python脚本24小时刷浏览器的访问量方法
Dec 07 Python
Python常用的json标准库
Feb 19 Python
pandas.cut具体使用总结
Jun 24 Python
python django 原生sql 获取数据的例子
Aug 14 Python
浅谈pytorch、cuda、python的版本对齐问题
Jan 15 Python
上手简单,功能强大的Python爬虫框架——feapder
Apr 27 Python
pytorch中的 .view()函数的用法介绍
Mar 17 Python
python疲劳驾驶困倦低头检测功能的实现
Apr 04 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中的字符串函数
2006/10/09 PHP
cmd下运行php脚本
2008/11/25 PHP
php下载文件的代码示例
2012/06/29 PHP
解决phpmyadmin中缺少mysqli扩展问题的方法
2013/05/06 PHP
PHP编程开发怎么提高编程效率 提高PHP编程技术
2015/11/09 PHP
PHP函数shuffle()取数组若干个随机元素的方法分析
2016/04/02 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
2017/12/21 PHP
PHP html_entity_decode()函数讲解
2019/02/25 PHP
php模拟实现斗地主发牌
2020/04/22 PHP
PHP生成随机密码4种方法及性能对比
2020/12/11 PHP
js实现键盘控制DIV移动的方法
2015/01/10 Javascript
javascript实现禁止鼠标滚轮事件
2015/07/24 Javascript
JQuery移动页面开发之屏幕方向改变与滚屏的实现
2015/12/03 Javascript
javascript RegExp 使用说明
2016/05/21 Javascript
bootstrap组件之导航组件使用方法
2017/01/19 Javascript
JavaScript实现事件的中断传播和行为阻止方法示例
2017/01/20 Javascript
JavaScript ES6中的简写语法总结与使用技巧
2018/12/30 Javascript
JS使用正则表达式判断输入框失去焦点事件
2019/10/16 Javascript
[16:19]教你分分钟做大人——风暴之灵
2015/03/11 DOTA
pyramid配置session的方法教程
2013/11/27 Python
使用Python的Django框架结合jQuery实现AJAX购物车页面
2016/04/11 Python
Python3中条件控制、循环与函数的简易教程
2017/11/21 Python
windows环境下tensorflow安装过程详解
2018/03/30 Python
python pandas库中DataFrame对行和列的操作实例讲解
2018/06/09 Python
Python os模块常用方法和属性总结
2020/02/20 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
2020/05/27 Python
Django视图、传参和forms验证操作
2020/07/15 Python
Python描述数据结构学习之哈夫曼树篇
2020/09/07 Python
解决virtualenv -p python3 venv报错的问题
2021/02/05 Python
HTML5未来发展趋势
2016/02/01 HTML / CSS
外语系大学生自荐信范文
2014/03/01 职场文书
文明寝室申报材料
2014/05/12 职场文书
教师党员批评与自我批评
2014/10/15 职场文书
应急管理工作总结2015
2015/05/04 职场文书
英语读书笔记
2015/07/02 职场文书
解决springboot druid数据库连接失败后一直重连的方法
2022/04/19 Java/Android