# 如出现编码问题,可以使用下面介绍的方法来解决
def get_page_sourse(url):
req = urllib2.Request(url)
for key in headers:
req.add_header(key,headers[key])
content = urllib2.urlopen(req).read()
return content
1
2
3
4
5
6
7
2
3
4
5
6
7
然后再return content
的时候出现编码错误,尝试使用下面的方法来解决:
只需要将最后一行代码改为这种格式,A和B可以是以下这些编码格式:gbk、utf-8、gb2312,另外不常见的编码格式有:iso-8859-1或者iso-8859-9
return content.decode('A','ingore').encode('B','ignore')
或者
return content.encode('iso-8859-9', 'ignore').decode('gb2312', 'ignore').encode('utf-8', 'ignore')
1
2
3
4
5
2
3
4
5
反正就是排列组合等,来进行尝试(个人还没尝试过,只是在博客文章看到的)。
参考:
Python遇到字符编码出问题的一个相对万能的办法 (opens new window)
python编码iso-8859-9编码问题 (opens new window)
python 中文iso8859-1编码转utf8编码 (opens new window)
java GBK,UTF-8,和ISO8859-1之间的编码与解码 (opens new window)
# 总结
1.以%开头的一般是做了URL编码的,用urllib.parse.unquote()解码。
2.以&#开头的一般是做了Unicode转义处理,html.unescape()做反转义。
3.以&#x开头的是做了Unicode 16进制转义,也用html.unescape()做反转义。
4.以\u开头的是一般是UTF-8编码。
5.字符串后面以=结尾的,通常是做了base64编码处理的。
打赏一下
「真诚赞赏,手留余香」
# 打赏记录
打赏者 | 打助金额 (元) | 支付方式 | 时间 | 备注 |
---|---|---|---|---|
Arya | 31 | 微信 | 2020-12-23 | Tip of you |
布谷 | 17 | 支付宝 | 2020-12-23 | 码字辛苦了 |