小编典典

使用 Python 解析 HTML

all

我正在寻找一个用于 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),您就会知道它以一种像树一样的嵌套方式为您提供所有标签。

我更喜欢内置模块,但这可能要求太多了。


遇到了很多问题,其中大多数都建议 BeautifulSoup 或 lxml 或
HTMLParser,但其中很少有详细说明功能,并且只是作为关于哪个更快/更有效的争论而结束。


阅读 60

收藏
2022-06-10

共1个答案

小编典典

这样我就可以要求它获取 div 标签中的内容/文本,其中 class=’container’ 包含在 body 标签中,或者类似的东西。

try: 
    from BeautifulSoup import BeautifulSoup
except ImportError:
    from bs4 import BeautifulSoup
html = #the HTML code you've written above
parsed_html = BeautifulSoup(html)
print(parsed_html.body.find('div', attrs={'class':'container'}).text)

我猜你不需要性能描述 - 只需阅读 BeautifulSoup
的工作原理。看看它的官方文档

2022-06-10