Python HTML 解析

0 投票
3 回答
982 浏览
提问于 2025-04-16 18:44

我需要用Python来解析一些HTML。如果我有一个像下面这样的HTML文件:

《body》
   《div class="mydiv"》
      《p》i want got it《/p》
      《div》
           《p》 good 《/p》
           《a》 boy  《/a》
      《/div》
   《/div》
《/body》

我该怎么才能获取《div class="mydiv"》里的内容呢?比如,我想要获取里面的内容。

      《p》i want got it《/p》
      《div》
           《p》 good 《/p》
           《a》 boy 《/a》
      《/div》

我试过HTMLParser,但发现它不行。还有其他方法吗?谢谢!

3 个回答

1

我更喜欢用 lxml.html。

import lxml.html as H
doc  = H.fromstring(html)
node = doc.xpath("//div[@class='mydiv']")
4

可以使用 lxml 这个库。或者用 BeautifulSoup 也可以。

5

使用BeautifulSoup处理起来非常简单:

from BeautifulSoup import BeautifulSoup
    html = """
      <body>
        <div class="mydiv">
          <p>i want got it</p>
          <div>
            <p> good </p>
            <a> boy  </a>
          </div>
        </div>
      </body>
    """

    soup = BeautifulSoup(html)
    result = soup.findAll('div', {'class': 'mydiv'})
    tag = result[0]
    print tag.contents
    [u'\n', <p>i want got it</p>, u'\n', <div>
    <p> good </p>
    <a> boy  </a>
    </div>, u'\n']

撰写回答