使用python下载网页以后最头疼的就是每一个网站的编码可能都不一样,如果直接只用utf-8读取在某些网页上会出现乱码。所以需要一个自动解码编码的过程。
代码示例:
import urllib.request
import re
def code(url):
#获取网站编码
data = urllib.request.urlopen(url).info()
a = re.findall(r'charset=(.*?)\n',str(data))
if len(a) == 0:
return str("utf-8") #如果无法获取编码默认用utf-8
return a[0]
def html(url):
#http头
head = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Edge/15.15063'}
#合并头
data = urllib.request.Request(url,headers=head)
#打开网页(读)(编码)
#返回网页数据
return urllib.request.urlopen(data,timeout=20).read().decode(code(url))
引用地址:http://git.oschina.net/qing_k/codes/7v32u9asqxohirtkmfdy446