【记录】python爬虫时.xlsx文件因异常中断而无法打开的解决方法

注意:对于“Excel无法打开文件xxx.xlsx,因为文件格式或文件扩展名无效。请确定文件未损坏,并且文件扩展名与文件的格式匹配”这个问题,网上有很多解决办法,但是都集中于恢复excel,不适用于爬虫因为异常中断而损坏excel,因此本文提出彻底解决这个问题的方法。

问题描述

运行写的python爬虫程序时,把爬取到的数据存储在.xlsx文件中。

 workbook.save('./amazon.xlsx')

但是尝试打开.xlsx文件时,会报错:Excel无法打开文件amazon.xlsx,因为文件格式或文件扩展名无效。请确定文件未损坏,并且文件扩展名与文件的格式匹配”
在这里插入图片描述

问题分析

一开始我以为是因为文件格式或扩展名原因,去网上搜到一堆教程,什么修改注册表,修改.xlsx为.xls。都没用
然后我认为是因为文件损坏,去尝试各种修复方法,包括不限于用excel自带恢复,用专门恢复excel的软件进行恢复。也都没用
看来就是文件损坏太严重了。那么是怎么造成的呢?核查代码,发现了问题所在:
我这个爬虫文件需要先爬到一个数据,然后将爬到的数据写入amazon.xlsx,最后再保存。如此循环往复。

由于爬虫的数据量太大,无法正常爬完,经常要中断程序,(或者遇到断电断网等意外)这时如果程序没有及时运行到上面那个代码就关闭了的话,就会造成.xlsx文件的损坏

解决办法

.xlsx文件只能打开,不能追加,并且读写速度较慢,文件意外损坏几率高。
而.csv文件不仅读写方便,而且能够以追加模式而非覆盖模式使用,更加适合爬虫这种容易中断异常的情况。
将原来的创建.xlsx文件、写入.xlsx文件以及保存.xlsx文件的代码全部改为.csv形式即可。

启示

爬虫尽量用csv来储存,用xlsx容易出错,速度还慢。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值