天使漫步IT工作室天使漫步IT工作室

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


Warning: count(): Parameter must be an array or an object that implements Countable in /www/wwwroot/u11u.com/usr/themes/wq/functions.php on line 110

Warning: count(): Parameter must be an array or an object that implements Countable in /www/wwwroot/u11u.com/usr/themes/wq/functions.php on line 116

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

本站原创,欢迎转载,转载敬请标明出处:天使漫步IT工作室 » 【代码片段】python自动解码-编码获取网页
添加新评论


Warning: Use of undefined constant php - assumed 'php' (this will throw an Error in a future version of PHP) in /www/wwwroot/u11u.com/usr/themes/wq/comments.php on line 38