找到所有<a href=""> with specific anchor text</a>的python / beautifulsoup

时间:2012-11-05 21:30:20

标签: python beautifulsoup

我正在尝试使用漂亮的汤来解析html并找到具有特定锚标记的所有href

<a href="http://example.com">TEXT</a>
<a href="http://example.com/link">TEXT</a>
<a href="http://example.com/page">TEXT</a>

我要查找的所有链接都具有完全相同的锚文本,在本例中为TEXT。我不是在寻找TEXT这个词,我想用TEXT这个词找到所有不同的HREF

编辑:

澄清寻找与使用类解析链接类似的东西

<a href="http://example.com" class="visible">TEXT</a>
<a href="http://example.com/link" class="visible">TEXT</a>
<a href="http://example.com/page" class="visible">TEXT</a>

然后使用

findAll('a', 'visible')

除了我正在解析的HTML没有类但总是相同的锚文本

1 个答案:

答案 0 :(得分:30)

这样的事情会起作用吗?

In [39]: from bs4 import BeautifulSoup

In [40]: s = """\
   ....: <a href="http://example.com">TEXT</a>
   ....: <a href="http://example.com/link">TEXT</a>
   ....: <a href="http://example.com/page">TEXT</a>
   ....: <a href="http://dontmatchme.com/page">WRONGTEXT</a>"""

In [41]: soup = BeautifulSoup(s)

In [42]: for link in soup.findAll('a', href=True, text='TEXT'):
   ....:     print link['href']
   ....:
   ....:
http://example.com
http://example.com/link
http://example.com/page