鱼C论坛

 找回密码
 立即注册
查看: 2847|回复: 10

关于 utf-8 codec 0xc6 错误的求助

[复制链接]
发表于 2017-12-24 21:37:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
程序要实现的功能:
1、按照SHA.csv表格中第一列和第二列的内容,去抓去网站上的数据
2、将抓去到到文件名 按照 每一行 第一列和第二列内容 保存成为 csv文件。

表格SHA.csv内容如下表:
产品编号 日期 产品名
000001 2017-12-02 产品名一
000002 2017-11-03 产品名二
000003 2017-10-20 产品名三




代码如下:
from urllib.request import urlretrieve

f = open('SHA.csv', 'r')

for line in f:
    data = line.split(',')

    stock_no = data[0].strip()
    stock_no_1 = '0' + data[0].strip()
    start_date = data[1].strip()
    stock_name = data[2].strip()

   
    url = '爬虫网站地址,我删除了这个地址'

    filename = + stock_no + '_'+ stcok_name +'.csv'
    print(url)
    urlretrieve(url, filename)


我先感谢前面帮助过我到几位鱼友帮忙我把程序从 v2.7 转换成为 v3.6。
这里遇到了估计是中文代码到问题,因为表格中到 data[2] (第三列)这里属于中文字符,如果把这列内容去了不会有错误。
加入这列信息到抓去会报如下错误:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc6 in position 22: invalid continuation byte

我也百度了下这个代码,我也尝试在 form 前面加入一行 # coding:utf-8 代码,报错描述依旧,请各位帮忙我修改下错误在那里?还有关于这些内容需要去那里找资料来阅读?最重要的是给我一个学习解决问题的思路和方法,谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-12-24 22:43:51 | 显示全部楼层
data 是什么啊? 可能data[2] 的编码格式是GBK
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-25 08:07:30 | 显示全部楼层
°蓝鲤歌蓝 发表于 2017-12-24 22:43
data 是什么啊? 可能data[2] 的编码格式是GBK

data 这个表示用 ‘,’逗号分隔号切出来的列,data[2]表示第三列,也就是表格中的产品名这一列的数据。

请教我要怎么修改这个编码格式呢?

我不可能去手工的修改表格中的这一列的格式,因为那样数据量巨大,我只能通过程序中来变化,因为我需要取出这一列中的数据来用于文件名的赋值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-25 09:31:52 | 显示全部楼层
第一行 加上  # -*- coding:utf-8 -*-
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-25 09:32:37 | 显示全部楼层
好多人都不注意
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-25 09:36:25 | 显示全部楼层
,,,那啥,你看下 你文件的编码
可能你文件编码时GBK的,导致的
你把你文件的编码改成 utf-8试试@ba460
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-25 19:30:41 | 显示全部楼层
ba460 发表于 2017-12-25 09:31
第一行 加上  # -*- coding:utf-8 -*-

hi,ba460 老师,我在第一行添加来,故障描述一致,我也将CSV文件的第三列,修改成文本属性故障依旧,在我的需求中修改CSV文件文字格式是下策,因为我需要处理的表格非常多,每个文件都需要打开来调整就违背了用python的初心。
非常感谢您的支持
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-25 19:31:44 | 显示全部楼层
SylarPu 发表于 2017-12-25 09:36
,,,那啥,你看下 你文件的编码
可能你文件编码时GBK的,导致的
你把你文件的编码改成 utf-8试试@ba460 ...

我不知道怎么改GBK和utf-8在CSV文件中,我只能尝试修改这列的文本的属性。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-12 11:34:44 | 显示全部楼层
最后怎么解决的

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-13 09:48:10 | 显示全部楼层
本帖最后由 zyMao 于 2018-1-13 09:52 编辑


暂时不知道怎么通过python程序编程来解决CSV文件无法识别 utf-8 的中文编码格式,我选择来曲线救国的方法

你去搜索关键字:如何解决csv中文乱码 ,方法很多,我测试几种总算找到一种适合我的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-13 09:56:53 | 显示全部楼层

还有一种方法,就是你将抓取到的文件直接保存成 xlsx的文件格式,然后用另存为成csv文件,也可以不出现乱码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 18:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表