gpt4 book ai didi

python - 使用python从html元标记中确定字符集

转载 作者:行者123 更新时间:2023-11-28 05:07:45 26 4
gpt4 key购买 nike

我有一个脚本需要在被 lxml.HTML() 读取以进行解析之前确定字符集。如果找不到 ISO-8859-1(这是正常假定的字符集吗?),我会使用 charset 属性在 html 中搜索元标记。但是我不确定最好的方法。我可以尝试使用 lxml 创建一个 etree,但我不想读取整个文件,因为我可能会遇到编码问题。但是,如果我不阅读整个文件,我就无法构建 etree,因为某些标签不会被关闭。

我是否应该只找到带有一些花哨的字符串下标的元标记,并在找到它或已读取一定数量的行后跳出循环?也许使用低级 HTML 解析器,例如 html.parser?顺便说一句,使用 python3,谢谢。

最佳答案

您应该首先尝试从 HTTP header 中提取编码。如果它不存在,你应该用 lxml 解析它。这可能很棘手,因为如果字符集不匹配,lxml 会抛出解析错误。解决方法是对数据进行解码和编码,忽略未知字符。

html_data=html_data.decode("UTF-8","ignore")
html_data=html_data.encode("UTF-8","ignore")

在此之后,您可以通过使用 utf-8 编码调用 lxml.HTML() 命令来进行解析。这样,您将能够找到 HTML header 中定义的正确编码。

找到编码后,您必须使用正确的编码重新解析 HTML 文档。

不幸的是,有时您可能甚至在 HTML header 中也找不到字符编码。我建议您使用 chardet只有在这些步骤失败后,模块才能找到正确的编码。

关于python - 使用python从html元标记中确定字符集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5001618/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com