天使漫步IT工作室

【代码片段】python自动解码-编码获取网页


使用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

当前页面是本站的「Baidu MIP」版。查看和发表评论请点击:完整版 »