赞
踩
注销设置Accept-Encoding为gzip,deflate,返回的网页是乱码
����g�/1�C�y�/�D�O��'��
self.headers = {
...
# 'Accept-Encoding': 'gzip, deflate, br',
'Accept-Encoding': 'gzip, deflate, br',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'
}
是一串经常在搜索引擎页面和其他网站上看到的乱码字符。乱码源于GBK字符集和Unicode字符集之间的转换问题。
import requests
url = ''https://www.baidu.com/'
res = requests.get(url)
res.encoding=res.apparent_encoding #获取网页正确的编码格式
print(res.text)
res =(request.text).encode('cp1252').decode('gbk')
ISO-8859-1
输出情况如下 æ–°ç–†åšæ¹–县:åšçˆ±é€ä¸‡å®¶æš¨è¿Ž
解决办法 res.content.decode('utf-8')
self.headers = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-CN,zh;q=0.9',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36',
}
uri = 'http://www.xj.chinanews.com/dizhou/2019-01-16/detail-ifzcufai2316598.shtml'
res = requests.get(url=uri, headers=self.headers)
print(res.encoding) 查看编码方式
print(res.content.decode('utf-8'))
添加’ignore’可以自动忽略编码错误,屏蔽掉一些个别字符不能编码的错误提示
CONT = resp.text.encode('cp1252').decode('gbk', 'ignore')
&#开头,后接十进制数字,&#x开头,后接十六进制数字。
import html
y = '93831'
print(html.unescape(y))
93831
s = '你好'
a = s.encode('utf8')
# b'\xe4\xbd\xa0\xe5\xa5\xbd' 6字节
b = s.encode('gbk')
# b'\xc4\xe3\xba\xc3’ 4个字节
python把gdb格式的文本文件转为utf-8的格式
content.decode("gbk").encode("utf8")
涉及函数:ord()与 chr()、unichr()
res = requests.get(url, headers=self.headers)
1. 先查看返回的编码
print(res.encoding)
2. 进行编码
print(res.content.decode('utf8'), 'ignore')
gbk转化成utf-8:���
utf-8转化成gbk:锟斤拷锟�
进制的表示方法
前缀表示法 | 进制 | 后缀表示法 | 进制 |
---|---|---|---|
十六进制 | 0x | H | 十六进制数 |
十进制 | 无前缀 | D 或 省略 | 十进制数 |
八进制 | 0 | Q | 八进制数 |
二进制 | 没有表示符号 | B | 二进制数 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。