如何使用Python解析HTML?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (47)

我正在寻找一个用于Python的HTMLParser模块,它可以帮助我以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),您就会知道它以一种很好的嵌套方式给出了所有的标记,就像树一样。

我想要一个内置模块,但这可能要求太多了。

提问于
用户回答回答于
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
用户回答回答于

我想你要找的是pyquery:

pyquery:用于python的类似jQuery的库。

例子:

from pyquery import PyQuery    
html = # Your HTML CODE
pq = PyQuery(html)
tag = pq('div#class')
print tag.text()

它使用与Firefox或Chrome的检查元素相同的选择器。例如:

被检查的元素选择器是‘div#mw-head.noprint’。所以在pyquery中,只需要传递这个选择器:

pq('div#mw-head.noprint')

所属标签

可能回答问题的人

  • HKC

    红客学院 · 创始人 (已认证)

    26 粉丝7 提问5 回答
  • Dingda

    Dingda · 站长 (已认证)

    4 粉丝0 提问3 回答
  • 西风

    renzha.net · 站长 (已认证)

    9 粉丝1 提问3 回答
  • 螃蟹居

    1 粉丝0 提问2 回答

扫码关注云+社区

领取腾讯云代金券