mac os 上的 lxml 无法解析包含 emoji 的 html?
mac os 上的 lxml 无法解析包含 emoji 的 html
<html>
<head>
<title>随机 Emoji 示例</title>
</head>
<body>
<p id="emojiParagraph">😄 这是一个带有随机 Emoji 的段落: </p>
</body>
</html>
对于上面带有 emoji 的 html,lxml 会返回 None
from lxml import etree
from mark import BASE_DIR
with open(BASE_DIR/'123.html', 'r', encoding='utf-8') as file:
dom = etree.HTML(file.read())
print(dom)
输出如下:
None
如果我删除 emoji
<html>
<head>
<title>随机 Emoji 示例</title>
</head>
<body>
<p id="emojiParagraph"> 这是一个带有随机 Emoji 的段落: </p>
</body>
</html>
继续使用同样的代码
from lxml import etree
from mark import BASE_DIR
with open(BASE_DIR/'123.html', 'r', encoding='utf-8') as file:
dom = etree.HTML(file.read())
print(dom)
输出如下:
<Element html at 0x102d05a80>
所以,问题在于 lxml 无法解析带有 emoji 的网页,这个问题在 liunx 上无法复现
这个问题在 macos 上的任意 python 版本可以复现
这个问题在 macos 上的任意 lxml 版本可以复现
类似的问题如下,但是也没人管
针对这个问题,我也去提了一个 bug,不知道会不会有回音:https://bugs.launchpad.net/lxml/+bug/2046208
回复
1个回答
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容