scrapy自定义pipeline类实现将采集数据保存到mongodb的方法

yipeiwu_com7年前Python基础

本文实例讲述了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 win32 简单操作方法

源由 刚开始是帮朋友做一个按键精灵操作旺信的脚本,写完后各种不稳定;后来看到python可以操作win32相关的api,恰好这一段时间正在学习python,感觉练手的时候到了~~~ 下载...

widows下安装pycurl并利用pycurl请求https地址的方法

widows下安装pycurl并利用pycurl请求https地址的方法

步骤一:下载对应的CURL压缩包并在windows上配置好环境变量 进入CURL官网下载对应的windows压缩包。地址:点击打开链接 把下载好的压缩包解压到自己喜欢的一个目录下,我暂...

详解Python map函数及Python map()函数的用法

详解Python map函数及Python map()函数的用法

python map函数 map()函数 map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到...

Django Web开发中django-debug-toolbar的配置以及使用

Django Web开发中django-debug-toolbar的配置以及使用

前言 django,web开发中,用django-debug-toolbar来调试请求的接口,无疑是完美至极。 可能本人,见识博浅,才说完美至极, 大神,表喷,抱拳了。 django_d...

Python中.join()和os.path.join()两个函数的用法详解

Python中有.join()和os.path.join()两个函数,具体作用如下:    . join():    连接字符串数组。将...