Scrapy抓取数据存储到Excel

抓取数据存储到Excel

有两种方法

一、修改启动命令

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

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

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

二、使用Pipeline

from openpyxl import Workbook

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。不如上面那种安全。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值