python2.7爬取gb2312编码格式网页乱码解决方法

时间:2019-01-11
本文章向大家介绍python2.7爬取gb2312编码格式网页乱码解决方法,主要包括python2.7爬取gb2312编码格式网页乱码解决方法使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

(1)使用requests库获取网页使用text方法返回:

def spiderRequest():
    headers = {
        "User-Agent" : "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0",
    }
    url = "https://wenku.baidu.com/view/91121dbbd5bbfd0a78567349.html/"
    response = requests.get(url=url,headers=headers,verify=False)
#response.text底层自动解析网页的编码格式,解析gb2312编码格式的网页错误,
#需要手动对response.encoding赋予争取的值,apparent_encoding方法正确获取网页编码格式。
    response.encoding = response.apparent_encoding 
    print(response.text)

               

(2)使用request水库过去网页使用content方法返回:
def spiderRequest():
    headers = {
        "User-Agent" : "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0",
    }
    url = "https://wenku.baidu.com/view/91121dbbd5bbfd0a78567349.html/"
    response = requests.get(url=url,headers=headers,verify=False)
#content.decode('gb2312')就类似text方法,只是text方法中底层是decode(‘iso-8859-1’)
#(这是因为该网页返回的response headers里面没有带{content-type:charset=utf-8},
#因此response.encoding默认为iso-8859-1编码格式)  因此需要手动设置 response.encoding = response.apparent_encoding
    print(response.content.decode('gb2312'))