在href标记中查找部分匹配

时间:2016-01-13 05:38:00

标签: python web-scraping beautifulsoup

我正在尝试使用Beautiful Soup来查找<a>属性包含某个字符串的所有href元素。

完整元素的一个例子是:

<a href="/markets/NZSX/securities/ABA">ABA</a>

我正在寻找href包含"/markets/NZSX/securities/"的所有元素。

我希望从此元素中提取文本。在示例中,这将是ABA

1 个答案:

答案 0 :(得分:8)

有几种方法可以实现这一目标。使用.find_all()

soup.find_all("a", href=re.compile(r"^/markets/NZSX/securities/"))
soup.find_all("a", href=lambda href: href and href.startswith("/markets/NZSX/securities/"))

或者,使用CSS selector

soup.select('a[href^="/markets/NZSX/securities/"]')

以上内容会检查href /markets/NZSX/securities/开头。如果您想要应用“包含”检查:

soup.find_all("a", href=re.compile(r"/markets/NZSX/securities/"))
soup.find_all("a", href=lambda href: href and "/markets/NZSX/securities/" in href)
soup.select('a[href*="/markets/NZSX/securities/"]')