美文网首页编程地带
scrapy爬虫数据导出

scrapy爬虫数据导出

作者: MA木易YA | 来源:发表于2018-11-07 17:30 被阅读0次

    转换为json

    1. 第一种方式——命令行

    scrapy crawl dmoz -o items.json
    

    该命令将采用 JSON 格式对爬取的数据进行序列化,生成 items.json 文件。,如果文件内出现乱码可以在后面添加FEED_EXPORT_ENCODING = 'utf-8'进行转换

    2. 在pipelines.py里面编辑函数

    只是简单介绍一下操作,所以拿之前写的一个练手的scrapy代码做演示,spider文件已经成型,现在主要是在pipelines里面编辑代码做存储用,存入poker_test.json文件

    class Poker2Pipeline(object):
    
        def __init__(self):
            self.file = codecs.open('poker_test.json', 'w', encoding='utf-8')
    
        def process_item(self, item, spider):
            line = json.dumps(dict(item), ensure_ascii=False) + "\n"
            self.file.write(line)
            return item
    
    
        def spider_closed(self, spider):
            self.file.close()
            
    

    poker_test.json

    image.png

    3. 与上面的方法异曲同工,只是换了一种思路

    在写入文件时要格外注意编码的问题,这里存入poker_test2.json文件,话不多说,上代码

        def process_item(self, item, spider):
            base_dir = os.getcwd()
            filename = base_dir + '/poker_test2.json'
            # 打开json文件,向里面以dumps的方式吸入数据
            # 注意需要有一个参数ensure_ascii=False ,不然数据会直接为utf编码的方式存入比如
            # :“/xe15”
            with codecs.open(filename, 'a', encoding='utf-8') as f:
                line = json.dumps(dict(item), ensure_ascii=False) + '\n'
                f.write(line)
            return item
    

    poker_test2

    image.png

    存入txt文件

    这里演示存入poker.txt文件,数据什么的不要在意,主要是方法方法

        def process_item(self, item, spider):
            base_dir = os.getcwd()
            fiename = base_dir + '/poker.txt'
            with open(fiename, 'a') as f:
                f.write(item['title'] + '\n')
                f.write(item['description'] + '\n')
                # f.write(item['other'] + '\n')
            return item
    

    poker.txt

    image.png

    相关文章

      网友评论

        本文标题:scrapy爬虫数据导出

        本文链接:https://www.haomeiwen.com/subject/wyivxqtx.html