python/beautifulsoup查找具有特定锚文本的所有<a href>

cwa*_*wal 13 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>
Run Code Online (Sandbox Code Playgroud)

我正在寻找的所有链接都具有完全相同的锚文本,在本例中为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>
Run Code Online (Sandbox Code Playgroud)

然后使用

findAll('a', 'visible')
Run Code Online (Sandbox Code Playgroud)

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

Roc*_*key 31

会这样的吗?

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
Run Code Online (Sandbox Code Playgroud)

  • 您可以在text参数上使用`re.compile()`吗? (2认同)