从html页面中提取特定内容

时间:2012-05-14 18:25:29

标签: python

假设我有一个html页面来源,如:

<p><font face="Arial" color="#400040"><small><strong>

<a href="some_link">description</a>: </strong>some text.</small></font></p>

我想提取“描述部分? 我该怎么做呢。我认为有一种非常pythonic的方式来做到这一点。 感谢

3 个答案:

答案 0 :(得分:2)

获取BeautifulSoup。然后:

from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup(your_text)
description = soup.find('a').string

您可能需要修改最后一行以唯一标识您的标记。

答案 1 :(得分:2)

您可以使用BeautifulSoup,请参阅docs

中的此示例
from bs4 import BeautifulSoup
html_doc = '''<p><font face="Arial" color="#400040"><small><strong>

<a href="some_link">description</a>: </strong>some text.</small></font></p>
'''
soup = BeautifulSoup(html_doc)
for link in soup.find_all('a'):
    print(link.get('href'))

答案 2 :(得分:1)

使用Beautifulsoup

>>> from BeautifulSoup import BeautifulSoup
>>> html = '<p><font face="Arial" color="#400040"><small><strong><a href="some_link">description</a>: </strong>some text.</small></font></p>'
>>> soup = BeautifulSoup(html)
>>> soup.find('a', text=True)
u'description'

如果你有多个标签,很可能就是这种情况,你可以这样做:

>>> for link in soup.findAll('a'):
...     print link.text