爬虫爬出的结果输出到 csv 文件中,打开发现汉字显示为乱码,如何解决?

2017-09-07 22:40:21 +08:00
 saximi

32 位 WINDOWS7,PYTHON3 环境下。用这样的命令将爬到的结果输出到 CSV 文件: scrapy crawl 爬虫名 -o result.csv

这个文件用 EDITPLUS 或写字板打开都能正常显示其中的汉字,但是直接双击 CSV 文件用 EXCEL 打开时其中的汉字却都是乱码,请问这个要如何解决呢?感谢指点!

9853 次点击
所在节点    Python
24 条回复
blindpirate
2017-09-07 22:49:08 +08:00
Bom
gooin
2017-09-07 22:50:37 +08:00
编码格式改为 utf-8?
ho121
2017-09-07 22:54:17 +08:00
utf8-bom
expkzb
2017-09-07 23:09:45 +08:00
文件转 gbk 编码就好了应该
saximi
2017-09-07 23:50:48 +08:00
@ho121 # -*- coding: utf8-bom -*- ? 这么写不对呢
saximi
2017-09-07 23:51:14 +08:00
@expkzb 命令行模式用什么参数可以转 GBK 呢?
imn1
2017-09-07 23:52:58 +08:00
excel 用导入,高级,然后选 utf-8
dd99iii
2017-09-07 23:58:33 +08:00
utf-8-sig
togodo
2017-09-08 00:02:16 +08:00
文件格式选系统默认
saximi
2017-09-08 00:12:35 +08:00
@imn1 EXCEL 导入时手工处理是可以的
saximi
2017-09-08 00:12:58 +08:00
@togodo 这个是在哪里选呢? EXCEL 导入时么?那就是 UTF-8 了
rabbbit
2017-09-08 00:16:26 +08:00
用记事本打开,另存为 utf-8 格式
thundernet8
2017-09-08 00:36:02 +08:00
excel 打开 csv 默认 ansi 编码 所以你只能通过 excel 重新导入逗号分隔文本 然后生成 xls
wisefree
2017-09-08 00:51:50 +08:00
这是 excel 的问题,百度:excel 导入 csv 文件
togodo
2017-09-08 07:01:57 +08:00
@saximi 我不懂 py,我用 c#写的爬虫方式是本地写入文件时候,需要和操作系统的文件格式一致
KgM4gLtF0shViDH3
2017-09-08 09:13:43 +08:00
用 Python2 爬 HTML 页面或者爬到数据库然后导出到 csv 还没遇到过这种问题呢。我都是先 sys.setdefaultencoding('utf-8')
kaiser1992
2017-09-08 11:22:51 +08:00
微软的软件打开文件默认都是 ANSI 编码(国内就是 GBK),UTF-8 的 csv 文件在 execl 中打开时解码自然就乱码了,在 WINDOWS 中识别 UTF-8 需要在前面添加 BOM(16 进制的:EF BB BF ),或者选择导入的方式(里面可以选择编码)。
davidqw
2017-09-08 14:23:47 +08:00
excel 新建表单导入 csv,编码选择 UTF-8,直接双击不行
runningman
2017-09-08 15:03:42 +08:00
utf-8 without boom
saximi
2017-09-08 21:40:47 +08:00
@dd99iii # -*- coding: utf-8-sig -*- ? 程序中这么写无效呢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/389043

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX