使用什么漂亮的汤findall regex字符串?

2024-10-02 04:27:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有HTML形式的链接

<a href="/downloadsServlet?docid=abc" target="_blank">Report 1</a>
<a href="/downloadsServlet?docid=ixyz" target="_blank">Fetch Report 2 </a>

我可以得到一个以上表格的链接使用美丽组

我的代码如下

^{pr2}$

但是,我想找到在引用链接的文本中有单词“Fetch”的链接。在

我试过了

soup.findAll('a', re.compile(".*Fetch.*"))

但这行不通。如何仅选择包含href且文本部分包含单词“Fetch”的标记a?在


Tags: 文本reporttarget链接htmlfetch单词形式
2条回答

regex在这里可能是一种过度使用,但它允许可能的扩展:

def criterion(tag):
  return tag.has_attr('href') and re.search('Fetch', tag.text)

soup.findAll(criterion)
# [<a href="/downloadsServlet?docid=ixyz" target="_blank">Fetch Report 2 </a>]
import re
soup.findAll('a', text = re.compile("Fetch"))

您可以使用regex作为过滤器,它将使用re.search方法来过滤我们的标签。在

text/string是标记的文本值,text = re.compile("Fetch")表示查找文本值包含“Fetch”的标记

Document

还有一件事,使用find_all()findAll()findall()不是bs4中的关键字

相关问题 更多 >

    热门问题