Python HTML 解析
我需要用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']