栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python 编码(encoding和apparent

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python 编码(encoding和apparent

requests编码
属性说明
r.encoding从http header中提取响应内容编码
r.apparent_encoding从内容中分析出的响应内容编码
  • encoding是从http中的header中的charset字段中提取的编码方式,若header中没有charset字段则默认为ISO-8859-1编码模式,则无法解析中文,这是乱码的原因。
  • apparent_encoding会从网页的内容中分析网页编码的方式,所以apparent_encoding比encoding更加准确。当网页出现乱码时可以把apparent_encoding的编码格式赋值给encoding。

编码很重要:如果网页编码方式是ISO-8895-1,那么用r.text查看的是乱码。r.encoding只是分析网页的头部,猜测编码方式,而r.apparent_encoding则是实实在在根据网页内容分析编码方式。所以,在爬虫程序中,经常使用r.encoding = r.apparent_encoding,来直接获取网页的编码。

import requests

url = "http://www.baidu.com/"
r = requests.get(url)
print(r.text)

print(r.encoding)  # ISO-8859-1  # 只是分析网页的头部,猜测编码方式
print(r.apparent_encoding)  # 则是实实在在根据网页内容分析编码方式


ç¾åº¦ä¸ä¸ï¼ä½ å°±ç¥é

æ°é» hao123 å°å¾ è§é¢ è´´å§ æ´å¤äº§å

å³äºç¾åº¦ About Baidu

©2017 Baidu ä½¿ç¨ç¾åº¦åå¿è¯»  æè§å馠京ICPè¯030173å· 

解决乱码方案

print('-------------第一种方案 utf-8------------------------------------')
r.encoding = 'utf-8'
print(r.text)


print('-------------第二种方案 获取byte  类型-------------------------------------')
print(r.content.decode('utf-8'))  # decode是解码

 -------------第一种方案 utf-8------------------------------------

百度一下,你就知道

新闻 hao123 地图 视频 贴吧 更多产品

关于百度 About Baidu

©2017 Baidu 使用百度前必读  意见反馈 京ICP证030173号 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/924029.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号