第三百四十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—爬虫数据保存
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第三百四十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—爬虫数据保存相关的知识,希望对你有一定的参考价值。
第三百四十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—爬虫数据保存
注意:数据保存的操作都是在pipelines.py文件里操作的
将数据保存为json文件
spider是一个信号检测
# -*- coding: utf-8 -*- # Define your item pipelines here # # Don‘t forget to add your pipeline to the ITEM_PIPELINES setting # See: http://doc.scrapy.org/en/latest/topics/item-pipeline.html from scrapy.pipelines.images import ImagesPipeline #导入图片下载器模块 import codecs import json class AdcPipeline(object): #定义数据处理类,必须继承object def __init__(self): self.file = codecs.open(‘shuju.json‘, ‘w‘, encoding=‘utf-8‘) #初始化时打开json文件 def process_item(self, item, spider): #process_item(item)为数据处理函数,接收一个item,item里就是爬虫最后yield item 来的数据对象 # print(‘文章标题是:‘ + item[‘title‘][0]) # print(‘文章缩略图url是:‘ + item[‘img‘][0]) # print(‘文章缩略图保存路径是:‘ + item[‘img_tplj‘]) #接收图片下载器填充的,图片下载后的路径 #将数据保存为json文件 lines = json.dumps(dict(item), ensure_ascii=False) + ‘\\n‘ #将数据对象转换成json格式 self.file.write(lines) #将json格式数据写入文件 return item def spider_closed(self,spider): #创建一个方法继承spider,spider是一个信号,当前数据操作完成后触发这个方法 self.file.close() #关闭打开文件 class imgPipeline(ImagesPipeline): #自定义一个图片下载内,继承crapy内置的ImagesPipeline图片下载器类 def item_completed(self, results, item, info): #使用ImagesPipeline类里的item_completed()方法获取到图片下载后的保存路径 for ok, value in results: img_lj = value[‘path‘] #接收图片保存路径 # print(ok) item[‘img_tplj‘] = img_lj #将图片保存路径填充到items.py里的字段里 return item #将item给items.py 文件的容器函数 #注意:自定义图片下载器设置好后,需要在
以上是关于第三百四十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—爬虫数据保存的主要内容,如果未能解决你的问题,请参考以下文章
第三百四十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—编写spiders爬虫文件循环抓取内容—
第三百四十五节,Python分布式爬虫打造搜索引擎Scrapy精讲—爬虫和反爬的对抗过程以及策略
第三百四十七节,Python分布式爬虫打造搜索引擎Scrapy精讲—通过downloadmiddleware随机更换user-agent浏览器用户代理
第三百六十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)基本的索引和文档CRUD操作