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

如何使用select()根据title属性查找href?

解决BeautifulSoup根据title属性查找元素href的问题

你的代码存在语法和调用方式错误,以下是正确的实现方案,满足你根据指定title值(比如Italy)获取对应页面href的需求:

方法一:使用CSS选择器精确匹配title属性

if status_code_finish == 200:
    # 精确匹配title属性等于finish的所有元素
    target_elements = soup_finish.select(f'[title="{finish}"]')
    # 提取这些元素的href属性
    list_of_hrefs = [elem.get('href') for elem in target_elements]

方法二:使用find_all的attrs参数匹配

if status_code_finish == 200:
    # 通过attrs字典精确匹配title属性
    target_elements = soup_finish.find_all(attrs={'title': finish})
    list_of_hrefs = [elem.get('href') for elem in target_elements]

补充:模糊匹配title属性

如果需要匹配title属性包含指定内容的元素,可做如下修改:

  • CSS选择器方式:把选择器改为[title*="{finish}"]
  • attrs参数方式:导入re模块,使用正则匹配:
import re

target_elements = soup_finish.find_all(attrs={'title': re.compile(finish)})

原代码的问题点说明:

  1. soup_finish.find(f'title*="{finish}"]')语法错误,CSS选择器格式不对,且多了多余的],转义符"也没必要使用
  2. soup.finish.find是错误的调用方式,BeautifulSoup没有这种链式属性调用方法,必须通过find/select/find_all等方法指定查找条件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 12:55:20