gpt4 book ai didi

python - 中的 lxml 和

转载 作者:行者123 更新时间:2023-11-28 16:30:32 24 4
gpt4 key购买 nike

我遇到了一个关于 lxml 的奇怪错误:

>>> s = '<html><head><noscript></noscript><script></script><meta></head></html>' 
>>> root = lxml.html.fromstring(s)
>>> root.xpath('/html/head/meta')
>>> root.xpath('/html/body/meta')
[<Element meta at 0x2a92788>]

meta 标签应该在 head 元素中,而不是 body 中。在这种情况下如何获得正确的元素?

最佳答案

让我猜猜:您使用的是旧版本的 Ubuntu(例如 12.04)吗?其实是旧版预装的bug libxml2 lxml 包使用的库。在release notes对于 2.8.0 版,他们提到了 HTML parser error with <noscript> in the <head> 的修复- 所以我猜 libxml2 >= 2.8.0 的版本应该可以工作。 Ubuntu 12.04 安装了 2.7.8 版本。

>>> import lxml.etree
>>> lxml.etree.LIBXML_COMPILED_VERSION
(2, 7, 8)
>>> lxml.etree.LIBXML_VERSION
(2, 9, 1)

我认为如果这些版本中的任何一个 >=2.8.0,<noscript> 问题应该消失了。

关于python - <head> 中的 lxml 和 <noscript>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32437628/

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