ItemExporter
相关资料链接:
Link.
Link.
作者:Irain
QQ联系方式:2573396010
微信:18802080892
目爬虫的:把数据(Items)持久化或导出它们,并应用在其他的程序。
Item Exporters 作用:创建不同的输出格式,如 XML,CSV 或 JSON。
start_exporting():标识 exporting 过程的开始。
export_item():处理item的过程。
finish_exporting():表示 exporting 过程的结
1.JsonItemExporter
1.1JsonItemExporter示例代码:
from scrapy.exporters import JsonItemExporter # JsonItemExporter:一次性写入大量数据,占用内存
class ChoushibaikePipeline(object):
def __init__(self):
self.fp = open("duanzi.json","wb") # 管道类初始化,以wb二进制打开文件,二进制没有编码形式
# ensure_ascii=False:以中文字符保存
self.exporter = JsonItemExporter(self.fp, ensure_ascii=False, encoding='utf-8')
self.exporter.start_exporting() # 以标识 exporting 过程的开始。
def open_spider(selfs,spider): # 爬虫开始前,执行
print('开始了')
def process_item(self, item, spider): # 爬虫开始过程,执行
self.exporter.export_item(item) # 爬虫获取到的每项item数据的处理方法
return item
def close_spider(self,spider): # 爬虫结束后,执行
self.exporter.finish_exporting() # 以标识 exporting 过程的结束。
self.fp.close()
print("over")
1.2结果展示:
JsonLinesItemExporter
2.1JsonLinesItemExporter示例代码:
from scrapy.exporters import JsonLinesItemExporter
# JsonLinesItemExporter:一个字典一行,不满足json格式的;数据都直接存到磁盘文件中,内存占用少.
class ChoushibaikePipeline(object):
def __init__(self):
self.fp = open("duanzi.json","wb") # 管道类初始化,以wb二进制打开文件,二进制没有编码形式
# ensure_ascii=False:以中文字符保存
self.exporter = JsonLinesItemExporter(self.fp, ensure_ascii=False, encoding='utf-8')
def open_spider(selfs,spider): # 爬虫开始前,执行
print('开始了')
def process_item(self, item, spider): # 爬虫开始过程,执行
self.exporter.export_item(item) # 爬虫获取到的每项item数据的处理方法
return item
def close_spider(self,spider): # 爬虫结束后,执行
self.fp.close()
print("over")
2.2结果展示
第一次发布:2020年4月16日