返回

爬虫中需要的几种管道

发布时间:2023-04-15 17:49:37 241
# python# 爬虫# mongodb# json# 数据

管道是什么

主要负责处理有蜘蛛从网页中抽取的Item,主要任务是清洗、验证和存储数据。当页面被蜘蛛解析后,将被发送到Item管道,并经过几个特定的次序处理数据。

每个Item管道的组件都是有一个简单的方法组成的Python类。它们获取了Item并执行它们的方法,同时还需要确定是否需要在Item管道中继续执行下一步或是直接丢弃掉不处理。

from datetime import datetime
from scrapy.exporters import JsonItemExporter, CsvItemExporter
import pymongo
import redis
from .settings import REDIS_HOST, REDIS_PORT, MONGO_HOST, MONGO_PORT

数据源的管道

class AqiDataPipeline(object):
def process_item(self, item, spider):
# 记录爬取时间
item[‘crawl_time‘] = datetime.utcnow()
# 记录爬虫
item[‘spider‘] = spider.name
return item

Json的管道

class AqiJsonPipeline(object):
def open_spider(self, spider):
self.file = open("aqi.json", ‘wb‘)
self.write = JsonItemExporter(self.file)
self.write.start_exporting()

def process_item(self, item, spider):
self.write.export_item(item)
return item

def close_spider(self, spider):
self.write.finish_exporting()
self.file.close()

Csv的管道

class AqiVscPipeline(object):
def open_spider(self, spider):
self.file = open("aqi.csv", ‘wb‘)
self.write = CsvItemExporter(self.file)
self.write.start_exporting()

def process_item(self, item, spider):
self.write.export_item(item)
return item

def close_spider(self, spider):
self.write.finish_exporting()
self.file.close()

mongodb数据库管道

class AqiMongoPipeline(object):
def open_spider(self, spider):
self.client = pymongo.MongoClient(host=MONGO_HOST, port=MONGO_PORT)
self.db = self.client[‘Aqi‘]
self.collection = self.db[‘aqi‘]

def process_item(self, item, spider):
self.collection.insert(dict(item))
return item

def close_spider(self, spider):
self.client.close()

redis数据库管道

class AqiRedisPipeline(object):
def open_spider(self, spider):
self.client = redis.Redis(host=REDIS_HOST, port=REDIS_PORT)

def process_item(self, item, spider):
self.client.lpush(‘aqi‘, dict(item))
return item
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
如何用python爬虫抓取音乐 2023-04-15 15:07:56