You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Beautiful Soup通过span文本获取对应a标签的href属性

解决方案:通过span文本获取对应URL

你之前的代码失效原因是找错了节点关系——span嵌套在<a>标签内部,它的父元素就是承载href的<a>,而不是什么前序兄弟节点。另外注意你代码里写的匹配文本是"Title of URL:",但示例里的span文本是"Title of URL",多了个冒号,这也会导致匹配失败,要确保文本完全对应。

下面给两种可行的实现方式:

方法一:定位span后取父元素a的href

# 定位包含目标文本的span标签
target_span = soup.select_one('span:-soup-contains("Title of URL")')
# 若找到span,直接获取其父元素a的href属性
if target_span:
    url = target_span.parent['href']
    print(url)  # 输出:http://someurl

方法二:用CSS选择器直接定位目标a标签

如果你的BeautifulSoup版本支持:has选择器(一般4.7.0及以上版本支持),可以直接选中包含指定文本span的a标签:

# 直接选择包含目标文本span的a标签
target_a = soup.select_one('a:has(span:-soup-contains("Title of URL"))')
if target_a:
    url = target_a['href']
    print(url)

内容的提问来源于stack exchange,提问作者Phil18013

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 16:33:11