【发布时间】:2012-07-27 09:18:31
【问题描述】:
我正在寻找一个用于 Python 的 HTML Parser 模块,它可以帮助我以 Python 列表/字典/对象的形式获取标签。
如果我有以下表格的文件:
<html>
<head>Heading</head>
<body attr1='val1'>
<div class='container'>
<div id='class'>Something here</div>
<div>Something else</div>
</div>
</body>
</html>
那么它应该给我一种通过HTML标签的名称或ID访问嵌套标签的方法,这样我基本上可以要求它获取div标签中包含class='container'的内容/文本body 标签,或类似的东西。
如果您使用过 Firefox 的“检查元素”功能(查看 HTML),您会知道它会像树一样以漂亮的嵌套方式为您提供所有标签。
我更喜欢内置模块,但这可能要求太多了。
我在 Stack Overflow 和互联网上的一些博客上遇到了很多问题,其中大多数都建议 BeautifulSoup 或 lxml 或 HTMLParser,但其中很少有详细说明功能,并且只是作为关于哪个更快/更多的争论而结束有效。
【问题讨论】:
-
和所有其他回答者一样,我会推荐 BeautifulSoup,因为它非常适合处理损坏的 HTML 文件。
标签: python xml-parsing html-parsing