scrapy爬虫框架将数据保存为json,text,csv


将数据存储为text
  • pipelines.py
# 将文件保存为text格式
class Music163Pipeline1(object):
    @classmethod
    def from_crawler(cls, crawler):
        fpath = crawler.settings.get('FPATH')
        obj = cls(fpath=fpath)
        return obj

    def __init__(self, fpath = "./1.txt"):
        self.path = fpath

    def open_spider(self, spider):
        self.fhd = open(self.path, 'w')

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

    def process_item(self, item, spider):

        dinfo = dict(item)
        vals = ','.join(dinfo.values())
        self.fhd.write(vals)
        self.fhd.write('\n')
        return item

将数据存储为json
  • pipelines.py
import json

# 将文件保存为json格式
class Music163Pipeline(object):

    @classmethod
    def from_crawler(cls, crawler):
        return cls(fpath = crawler.settings.get('FPATH'))


    def __init__(self, fpath="./tmp.json"):
        self.fpath = fpath

    def open_spider(self, spider):

        self.handler = open(self.fpath, 'w')
        self.handler.write('[')

    def close_spider(self, spider):
        self.handler.write(']')
        self.handler.close()

    def process_item(self, item, spider):
        line = json.dumps(dict(item), ensure_ascii=False)
        self.handler.write(line)
        self.handler.write(',\n')
        return item
将数据存储为csv
  • pipelines.py
class WangyinPipeline_a(object):
    def __init__(self):
        self.f = open("wangyiyun.csv", "w")
        self.writer = csv.writer(self.f)
        self.writer.writerow(['id', 'song', 'nickname', 'avatarurl','hotcomment_like','comments'])

    def process_item(self, item, spider):
        wangyiyun_list =  [item['id'], item['song'], item['nickname'], item['avatarurl'],item['hotcomment_like'], item['comments']]

        self.writer.writerow(wangyiyun_list)
        return item
    def close_spider(self, spider):#关闭
        self.writer.close()
        self.f.close()
在settings中定义你的管道
ITEM_PIPELINES = {
    'myproject.pipelines.Music163Pipeline': 300,#text
    'myproject.pipelines.Music163Pipeline1': 301,#json
    'myproject.pipelines.WangyinPipeline_a': 302,#csv
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,326评论 19 139
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,239评论 2 89
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,125评论 3 119
  • 得大学一年级时,班主任D老师对我们说过,趁着年轻,要好好想清楚以后的路,想想你真正想要过怎样的生活,想想你喜欢什么...
    婉玲阅读 541评论 2 2
  • 你高高得悬在半空 貌似友好地打着招呼 我天真得仰望着你 仰望着你的遥不可及 你说过 要重回人间 因为 高处不胜寒 ...
    一个人的宅阅读 736评论 10 19

友情链接更多精彩内容