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

作者:pythoner 时间:2021-03-20 02:55:59 

本文实例讲述了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程序设计有所帮助。

标签:scrapy,采集,mongodb
0
投稿

猜你喜欢

  • Mysql性能优化案例研究-覆盖索引和SQL_NO_CACHE

    2024-01-25 12:58:00
  • python3结合openpyxl库实现excel操作的实例代码

    2021-02-24 05:06:59
  • 如何测试字符串的长度?

    2009-11-11 20:02:00
  • Python下使用Trackbar实现绘图板

    2023-12-11 10:13:04
  • asp 防盗链代码(彻底屏蔽迅雷,旋风,快车下载站内资源)

    2011-02-26 10:46:00
  • python自动化测试用例全对偶组合与全覆盖组合比较

    2021-02-03 01:59:45
  • python matplotlib中文显示参数设置解析

    2022-11-18 14:11:41
  • web.py获取上传文件名的正确方法

    2021-01-22 16:00:06
  • 如何用变量实现群聊和悄悄话?

    2010-05-19 21:33:00
  • Python OpenCV超详细讲解透视变换的实现

    2021-08-02 21:19:48
  • 巧用Dreamweaver MX控制页面元素

    2009-09-13 18:38:00
  • Python爬虫之正则表达式基本用法实例分析

    2022-12-20 17:02:16
  • 解决python3捕获cx_oracle抛出的异常错误问题

    2023-01-21 17:51:26
  • 未将对象引用设置到对象的实例 (System.NullReferenceException)

    2023-06-27 10:46:53
  • 理解 SQL Server 中系统表Sysobjects

    2009-01-20 15:13:00
  • js正则表达式验证密码强度【推荐】

    2024-04-29 13:39:30
  • python如何获得list或numpy数组中最大元素对应的索引

    2021-02-10 11:30:12
  • Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息

    2023-02-15 16:49:10
  • 为什么首页最后设计

    2009-07-17 19:03:00
  • Vim中查找替换及正则表达式的使用详解

    2023-11-06 11:42:44
  • asp之家 网络编程 m.aspxhome.com