鱼C论坛

 找回密码
 立即注册
查看: 3384|回复: 7

[已解决]Python爬虫出现编码错误

[复制链接]
发表于 2018-1-17 10:42:19 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 py大神 于 2018-1-17 11:16 编辑

第一次使用的是utf-8编码,结果出现错误


捕获.PNG 捕获1.PNG








用notepad++打开,发现是GB2312编码,于是使用GB2312解码,还是出错了。
怎么解决?


捕获2.PNG










而且这里为什么会出现jso解析失败?
百度了网上的方法,试过了,不行


捕获.PNG
最佳答案
2018-1-17 11:40:49
本帖最后由 sky 于 2018-1-17 11:45 编辑

建议深入了解python3编码
这里用gbk就可以了 因为 html代码里是gbk
html也得会
最后一个json.loads是解析json字符串的
但是你传给他的是html代码字符串当然解析不了啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-17 11:40:49 | 显示全部楼层    本楼为最佳答案   
本帖最后由 sky 于 2018-1-17 11:45 编辑

建议深入了解python3编码
这里用gbk就可以了 因为 html代码里是gbk
html也得会
最后一个json.loads是解析json字符串的
但是你传给他的是html代码字符串当然解析不了啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-17 11:50:32 | 显示全部楼层
我看了一下你要爬取的页面,编码方式是用GBK方式编码的,程序解码方式改为decode("GBK")应该就可以了
10086.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-17 11:52:57 | 显示全部楼层
以下测试代码亲测可行
  1. import urllib.request
  2. url = 'http://www.31xs.org/12/12970/'
  3. responce = urllib.request.urlopen(url)
  4. html = responce.read().decode("GBK")
  5. print(html)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-17 11:55:00 | 显示全部楼层
sunlight070 发表于 2018-1-17 11:52
以下测试代码亲测可行

好的,感谢老哥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-17 14:21:53 | 显示全部楼层
sky 发表于 2018-1-17 11:40
建议深入了解python3编码
这里用gbk就可以了 因为 html代码里是gbk
html也得会

有什么资料推荐么?
还有这个问题:
  1.     req = urllib.request.Request(url,headers=headers)
  2.     response = urllib.request.urlopen(req)
  3.     html = response.read().decode("GBK")
  4.     jsonstr = json.dumps(html)
复制代码

这段代码如果打印html是可以正确显示的,但是如果经过json解析后,就变成了乱码?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-17 14:26:02 | 显示全部楼层
py大神 发表于 2018-1-17 14:21
有什么资料推荐么?
还有这个问题:

因为json只能解析 json格式的字符串呀 html代码字符串是解析不了的
编码 能看多少看多少 慢慢理解

http://www.cnblogs.com/luotianshuai/articles/5735051.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-17 14:55:59 | 显示全部楼层
sky 发表于 2018-1-17 14:26
因为json只能解析 json格式的字符串呀 html代码字符串是解析不了的
编码 能看多少看多少 慢慢 ...

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-23 16:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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