Python3
代码:
from urllib.request import urlopen
from urllib.request import Request
url = "http://www.baidu.com"
ua_header = {"User-Agent":"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;"}
#url作为Request()方法的参数
request = Request(url, headers = ua_header)
#向指定的url发送请求
response = urlopen(request)
#类文件对象的支持 文件对象的操作方法
html = response.read()
#打印字符串
print(html.decode("utf8"))
报错:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte
解决方案:
把
print(html.decode("utf8"))
改成
print(html.decode("utf8", errors="replace"))
虽然问题解决了但是,中间遇到一个问题,不是很明白,
第一次把
print(html.decode("utf8"))
改成
print(html.decode("utf8", errors="replace"))
完美解决报错问题,
(UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte)
但是后面又写了几遍代码,写成
print(html.decode("utf8", errors="replace"))
有几次,会出现乱码问题,如果再改成
print(html.decode("utf8"))
之后,也不报错,也不乱码,两个问题完美都解决了。