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

yipeiwu_com6年前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读取安卓手机的屏幕分辨率方法

直接代码吧: import os import sys import json import re def _get_screen_size(): '获取手机屏幕大小' size...

基于Python的文件类型和字符串详解

基于Python的文件类型和字符串详解

1. Python的文件类型 1. 源代码--直接由Python解析 vi 1.py #!/usr/bin/python print 'hello world' 这里的1.py...

Python表示矩阵的方法分析

Python表示矩阵的方法分析

本文实例讲述了Python表示矩阵的方法。分享给大家供大家参考,具体如下: 在c语言中,表示个“整型3行4列”的矩阵,可以这样声明:int  a[3][4];在python中一...

Python2.x中str与unicode相关问题的解决方法

Python2.x中str与unicode相关问题的解决方法

python2.x中处理中文,是一件头疼的事情。网上写这方面的文章,测次不齐,而且都会有点错误,所以在这里打算自己总结一篇文章。 我也会在以后学习中,不断的修改此篇博客。 这里假设读者已...

django删除表重建的实现方法

正确的方法如下: 先到数据库把表删掉:drop table 注释django中对应的Model 执行以下命令: python manage.py makemigrations p...