Beautiful soup - 捕获所有带有特定 class 或文本的链接

Beautiful soup - capture all links with a certain class or text

我正在尝试从带有漂亮汤的网页中捕获所有相关链接。我需要的所有链接都有 class="btn btn-gray" 和文本 <a...>More Info<>

仅提取这些链接的最佳方法是什么?

这个怎么样?

soup = BeautifulSoup(html, 'lxml')

all_links = []
links = soup.find_all('a', {'class': ['btn', 'btn-gray']})
for link in links:
    if 'More Info' in link.text:
        all_links.append(link['href'])  # Save href only, for example.

或者作为一个干净的列表理解:

links = soup.find_all('a', {'class': ['btn', 'btn-gray']})
results = [link['href'] for link in links if 'More Info' in link.text]
buttons = soup.findAll('a', {'class': ['btn', 'btn-gray']})

links = [link for link in buttons if "More Info" in link.text]