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

如何用Python从HTML中获取aria-label内容?尝试后返回空数组求助

解决通过aria-label抓取网页内容的问题

你的问题出在第二行代码:f = soup.find_all('aria-label') 是在找名为<aria-label>的标签,但aria-label是HTML元素的属性,不是标签名,所以返回空数组。

下面是两种正确的实现方式:

方法1:使用BeautifulSoup的attrs参数

如果要抓取所有带有aria-label属性的元素,不管属性值是什么:

# 获取所有带aria-label属性的元素
elements = soup.find_all(attrs={"aria-label": True})

# 提取每个元素的aria-label值和文本内容
for elem in elements:
    aria_label_value = elem.get("aria-label")
    text_content = elem.get_text(strip=True)
    print(f"aria-label值: {aria_label_value}, 文本内容: {text_content}")

如果要指定aria-label的具体值(比如匹配某个特定描述):

# 获取aria-label值为"特定内容"的元素
target_elements = soup.find_all(attrs={"aria-label": "特定内容"})

结合你之前尝试的aria-disabled条件,要找同时满足aria-disabled="true"且带有aria-label的元素:

target_elements = soup.find_all('div', attrs={"aria-disabled": "true", "aria-label": True})

方法2:使用CSS选择器(更简洁)

BeautifulSoup支持CSS选择器,语法更直观:

# 所有带aria-label属性的元素
elements = soup.select('[aria-label]')

# 指定aria-label值的元素
target_elements = soup.select('[aria-label="特定内容"]')

# 同时满足aria-disabled="true"和带aria-label的div元素
target_elements = soup.select('div[aria-disabled="true"][aria-label]')

注意事项

如果页面是动态渲染的(比如用JavaScript加载内容),BeautifulSoup直接爬取静态HTML可能拿不到数据,这时候需要用selenium或playwright这类工具模拟浏览器加载页面后再抓取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 22:32:07