欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Scrapy抓取数据存储到Excel

程序员文章站 2022-05-05 15:41:20
...

抓取数据存储到Excel

有两种方法

一、修改启动命令

  Scrapy默认是可以保存为csv的,可以用excel打开,使用

scrapy crawl spider_name -o data.csv -s FEED_EXPORT_ENCODING='utf-8' 
# -o 输出位置以及文件名
# -s 防止发生编码问题

但csv格式有诸多不便,比如中文编码问题,比如说逗号分隔用Excel打开时会出现很多问题

二、使用Pipeline

class DoubanPipeline(object):
    def __init__(self):
        self.wb = Workbook() # 类实例化
        self.ws = self.wb.active # **工作表
        self.ws.append(['comment_id', 'created_time', 'content',  'subject_id', 'author_id', 'author', 'useful_count', 'stars']) # 添加表头
    def process_item(self, item, spider):
        data = [item["comment_id"],item["created_time"],item["content"],item["subject_id"],item["author_id"],item["author"],item["useful_count"],item["stars"]]
        self.ws.append(data) # 将数据以行的形式添加到工作表中
        self.wb.save('Earth.xlsx') # 保存
        return item

在存储Excel中,如果确认数据量较小,不会出错的情况下,可以将保存那步放到close_spider()方法中,这样就不用频繁的保存。

    def close_spider(self,spider):
        self.wb.save('Earth.xlsx')

但如果一旦爬虫非正常终止,则不会保存excel。不如上面那种安全。