我正在寻找一个用于 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标签中的内容/文本,或类似的东西。
div
class='container'
body
如果您使用过 Firefox 的“检查元素”功能(查看 HTML),您就会知道它以一种像树一样的嵌套方式为您提供所有标签。
我更喜欢内置模块,但这可能要求太多了。
遇到了很多问题,其中大多数都建议 BeautifulSoup 或 lxml 或 HTMLParser,但其中很少有详细说明功能,并且只是作为关于哪个更快/更有效的争论而结束。
这样我就可以要求它获取 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 的工作原理。看看它的官方文档。