scrapy自定义pipeline类实现将采集数据保存到mongodb的方法
2018-10-12 13:50
756 查看
本文实例讲述了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程序设计有所帮助。
您可能感兴趣的文章:
相关文章推荐
- 删除重复数据只保存一条--ms sql及oracle实现方法
- C# 实现 客户端 对实时数据的采集 上传至服务端;在服务端把保存到内存中;供WEB页面调用
- 算法第三次作业(1. 排序。对文件 largeW.txt(下载链接)中的数据,编程实现冒泡排序(方法名:bubbleSort) 与 归并排序(mergeSort),把排序后的结果分别保存到largeW
- Android自定义照相机实现(拍照、保存到SD卡,利用Bundle在Acitivity交换数据)
- 【转】Android自定义照相机实现(拍照、保存到SD卡,利用Bundle在Acitivity交换数据)
- dedecms中自定义模型采集数据的方法
- linux下自定义pid实现任意数据采集
- Python使用scrapy采集数据过程中放回下载过大页面的方法
- Python基于scrapy采集数据时使用代理服务器的方法
- Android学习笔记-保存数据的实现方法2-SharedPreferences
- Java实现从数据库导出大量数据记录并保存到文件的方法
- 保存数据库中其他对象不变,删除数据库中所有数据的实现方法
- python操作mongodb根据_id查询数据的实现方法
- Python自定义scrapy中间模块避免重复采集的方法
- GDAL 遥感图像处理后的数据保存为图像文件的实现方法
- python操作mongodb根据_id查询数据的实现方法
- Android自定义照相机实现(拍照、保存到SD卡,利用Bundle在Acitivity交换数据)
- Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
- jquery实现可拖动DIV自定义保存到数据的实例
- 保存数据库中其他对象不变,删除数据库中所有数据的实现方法