从url HTTP post响应获取最合适的编码

2024-04-26 23:41:35 发布

您现在位置:Python中文网/ 问答频道 /正文

确定网页文本编码的最合适方法是什么。我处理各种语言的网页,并使用Python和“requests”库。其目的是最终能够获得干净的文本使用一些文本提取库的文本挖掘项目

resp = requests.get(url)

现在我知道我们有以下选择:

(一)

    from requests.utils import get_encoding_from_headers
    encoding = get_encoding_from_headers(resp.headers)
    html = (resp.content).decode(encoding)

(二)

    from requests_toolbelt.utils.deprecated import get_encodings_from_content
    encoding = get_encodings_from_content(resp.content)
    html = (resp.content).decode(encoding)

(三)

    from requests_toolbelt.utils.deprecated import get_encodings_from_content
    html = get_unicode_from_response(resp)

我处理了大约1000个网址,并期望1)和2)是相同的,但有20%的时间不是这样。在这20%的情况下(1)会给出“ISO-8859-1”,从代码来看,这意味着它没有在头中找到字符集,(2)大部分给出“utf8”

现在有没有人有过这样的经验,哪种技术是最合适的,或者是否有更好更干净的方法?你知道吗


Tags: 方法from文本import网页gethtmlutils