为什么有些网站是utf-8有些不是(python)

时间:2015-08-04 10:12:05

标签: python

http://[your_path]/api/v1/controller/action

我正在使用python3.4.3 Mac osx 10.10.4

这是我的代码。当我尝试第一个网站时,我可以得到这样的正确的东西:



v1




但是当我尝试第二个网站时,我只能得到这个:



libxml_use_internal_errors(true); 
$doc = new DOMDocument();
$doc->loadHTMLFile($url);

$xpath = new DOMXpath($doc);

$name = $xpath->query('//td[@data-column-name="Model"]')->item(0)->nodeValue;




我怎么能得到正确的东西?

1 个答案:

答案 0 :(得分:1)

您可以使用gzip解压缩gzip压缩数据并解码为utf-8:

import gzip
m = urllib.request.urlopen(url,).read()
data = gzip.decompress(m).decode("utf-8")
with open('/Users/HYN/Desktop/url.txt','w') as f:
    f.write(data)

或者使用requests为您完成:

import requests

r = requests.get(url)

data = r.content.decode("utf-8")

如果您print(r.headers),您可以看到'content-encoding': 'gzip'验证数据是否已被gzip压缩,则两个网站字符集都为utf-8,差异是一个是gzip而另一个不是。