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中元类用法实例
Oct 10 Python
Python的Django框架中settings文件的部署建议
May 30 Python
浅析Python中yield关键词的作用与用法
Nov 29 Python
Python实现向服务器请求压缩数据及解压缩数据的方法示例
Jun 09 Python
对python中的高效迭代器函数详解
Oct 18 Python
Python 正则表达式匹配字符串中的http链接方法
Dec 25 Python
python实现差分隐私Laplace机制详解
Nov 25 Python
Pyorch之numpy与torch之间相互转换方式
Dec 31 Python
解决python中0x80072ee2错误的方法
Jul 19 Python
Python 如何调试程序崩溃错误
Aug 03 Python
聊聊python中的循环遍历
Sep 07 Python
使用scrapy实现增量式爬取方式
Jun 21 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
调频问题解答
2021/03/01 无线电
一篇入门的php Class 文章
2007/04/04 PHP
在PHP中检查PHP文件是否有语法错误的方法
2009/12/23 PHP
PHP与SQL注入攻击防范小技巧
2011/09/16 PHP
一个简单安全的PHP验证码类 附调用方法
2016/06/24 PHP
php 人员权限管理(RBAC)实例(推荐)
2017/05/24 PHP
PHP中quotemeta()函数的用法讲解
2019/04/04 PHP
自适应高度框架 ----属个人收藏内容
2007/01/22 Javascript
JavaScript 字符串连接性能优化
2008/12/20 Javascript
thinkphp中常用的系统常量和系统变量
2014/03/05 Javascript
JS+CSS实现的日本门户网站经典选项卡导航效果
2015/09/27 Javascript
jQuery 生成svg矢量二维码
2016/08/09 Javascript
在web中js实现类似excel的表格控件
2016/09/01 Javascript
快速解决js中window.location.href不工作的问题
2016/11/02 Javascript
C#微信小程序服务端获取用户解密信息实例代码
2017/03/10 Javascript
详解在Angular项目中添加插件ng-bootstrap
2017/07/04 Javascript
详解基于vue-cli优化的webpack配置
2017/11/06 Javascript
分析JavaScript数组操作难点
2017/12/18 Javascript
vue+webpack 打包文件 404 页面空白的解决方法
2018/02/28 Javascript
使用python的chardet库获得文件编码并修改编码
2014/01/22 Python
python的绘图工具matplotlib使用实例
2014/07/03 Python
python抓取最新博客内容并生成Rss
2015/05/17 Python
Python 功能和特点(新手必学)
2015/12/30 Python
Python3 操作符重载方法示例
2017/11/23 Python
Python实现输出某区间范围内全部素数的方法
2018/05/02 Python
用python实现英文字母和相应序数转换的方法
2019/09/18 Python
六种酷炫Python运行进度条效果的实现代码
2020/07/17 Python
Python同时处理多个异常的方法
2020/07/28 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
2021/02/20 Python
Hanky Panky官方网站:内衣和睡衣
2019/07/25 全球购物
房地产广告词大全
2014/03/19 职场文书
2014年发展党员工作总结
2014/11/12 职场文书
创业计划书之个人工作室
2019/08/22 职场文书
解决hive中导入text文件遇到的坑
2021/04/07 Python
Java 异步任务计算FutureTask
2022/04/28 Java/Android
Nginx报错104:Connection reset by peer问题的解决及分析
2022/07/23 Servers