gpt4 book ai didi

python - 如何使用 html5lib 解析 HTML,并使用 XPath 查询解析后的 H​​TML?

转载 作者:IT老高 更新时间:2023-10-28 21:07:37 24 4
gpt4 key购买 nike

我正在尝试使用 html5lib 将 html 页面解析为可以使用 xpath 查询的内容。 html5lib 的文档几乎为零,我花了太多时间试图解决这个问题。最终目标是拉出表格的第二行:

<html>
<table>
<tr><td>Header</td></tr>
<tr><td>Want This</td></tr>
</table>
</html>

让我们试试吧:

>>> doc = html5lib.parse('<html><table><tr><td>Header</td></tr><tr><td>Want This</td> </tr></table></html>', treebuilder='lxml')
>>> doc
<lxml.etree._ElementTree object at 0x1a1c290>

看起来不错,让我们看看我们还有什么:

>>> root = doc.getroot()
>>> print(lxml.etree.tostring(root))
<html:html xmlns:html="http://www.w3.org/1999/xhtml"><html:head/><html:body><html:table><html:tbody><html:tr><html:td>Header</html:td></html:tr><html:tr><html:td>Want This</html:td></html:tr></html:tbody></html:table></html:body></html:html>

哈哈哈哈哈?

说真的。我打算使用一些 xpath 来获取我想要的数据,但这似乎不起作用。那么我能做什么呢?我愿意尝试不同的库和方法。

最佳答案

缺乏文档是避免使用库 IMO 的一个很好的理由,无论它多么酷。您是否热衷于使用 html5lib?你看过lxml.html ?

这是使用 lxml 执行此操作的一种方法:

from lxml import html
tree = html.fromstring(text)
[td.text for td in tree.xpath("//td")]

结果:

['Header', 'Want This']

关于python - 如何使用 html5lib 解析 HTML,并使用 XPath 查询解析后的 H​​TML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2558056/

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