鱼C论坛

 找回密码
 立即注册
查看: 1606|回复: 6

python爬取网页,发生字符编码错误,求解。

[复制链接]
发表于 2018-2-3 23:23:50 | 显示全部楼层 |阅读模式

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

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

x
代码
import requests
r = requests.get("https://sh.lianjia.com/ershoufang/")
print(r.status_code)
print(r.apparent_encoding)
print(r.text)

返回

C:\Users\Administrator\AppData\Local\Programs\Python\Python35-32\python.exe C:/Users/Administrator/Desktop/Nyspider-master/anjuke/muke.py
200
utf-8
Traceback (most recent call last):
  File "C:/Users/Administrator/Desktop/Nyspider-master/anjuke/muke.py", line 11, in <module>
    print(r.text)
UnicodeEncodeError: 'gbk' codec can't encode character '\xa9' in position 160527: illegal multibyte sequence

Process finished with exit code 1

但是如果用
import requests
import sys, io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8')
r = requests.get("https://sh.lianjia.com/ershoufang/")
print(r.status_code)
print(r.apparent_encoding)
print(r.text)



返回
<script type="text/template" id="newAddHouseTpl">
  <div class="newAddHouse">
    鑷粠鎮ㄤ笂娆℃祻瑙堬紙<%=time%>锛変箣鍚庯紝璇ユ悳绱㈡潯浠朵笅鏂板鍔犱簡<%=count%>濂楁埧婧&#65533;
    <a href="<%=url%>" class="LOGNEWERSHOUFANGSHOW" <%=logText%>><%=linkText%></a>

里面汉字都是乱码了,求解,谢谢。



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

使用道具 举报

发表于 2018-2-4 07:18:14 | 显示全部楼层
Python2吗?
我这没问题(Python3)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-4 09:35:24 | 显示全部楼层
网站用了utf-8格式编码,建议采用decode方法转换为utf-8
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-4 09:41:40 From FishC Mobile | 显示全部楼层
加res.encoding='gbk'gbk就不乱码了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-4 13:15:06 | 显示全部楼层
新手·ing 发表于 2018-2-4 07:18
Python2吗?
我这没问题(Python3)

我用的也是3,但是不知道怎么会出错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-4 13:18:13 | 显示全部楼层
mingminglm 发表于 2018-2-4 09:41
加res.encoding='gbk'gbk就不乱码了

Traceback (most recent call last):
  File "C:/Users/Administrator/Desktop/Nyspider-master/anjuke/qq.py", line 6, in <module>
    print(r.text)
UnicodeEncodeError: 'gbk' codec can't encode character '\ufffd' in position 1011: illegal multibyte sequence

网页主体是utf-8,设置成gbk那好像也会别的错误唉
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-6 18:09:36 | 显示全部楼层
加try。。。except吧,要想代码长时间运行,这是最可靠的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-24 02:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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