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

如何从aria-label属性中提取文本?(Indeed爬取工作生活平衡评分场景)

从Indeed页面提取工作与生活平衡评分的方法

针对你要提取aria-label属性文本的需求,以下是几种常用爬虫工具的实现方式:

方法一:使用BeautifulSoup(静态页面解析)

如果页面是静态加载的,直接用BeautifulSoup定位元素并获取属性值即可:

from bs4 import BeautifulSoup

# 替换为你实际获取的页面源码
html_content = '''<div role="img" aria-label="4.0 out of 5 stars."><div class="css-eub7j6 eu4oa1w0"><div data-testid="filledStar" style="width:42.68px" class="css-i84nrz eu4oa1w0"></div></div></div>'''
soup = BeautifulSoup(html_content, 'html.parser')

# 定位目标div元素
rating_div = soup.find('div', role='img')
# 提取aria-label属性的文本内容
rating_text = rating_div.get('aria-label')
print(rating_text)  # 输出:4.0 out of 5 stars.

方法二:使用Selenium(动态页面渲染)

如果Indeed页面的评分是JavaScript动态加载的,需要用Selenium处理:

from selenium import webdriver
from selenium.webdriver.common.by import By

# 初始化浏览器驱动(需对应你的浏览器版本)
driver = webdriver.Chrome()
driver.get("你要爬取的Indeed目标页面URL")

# 通过CSS选择器定位目标元素
rating_element = driver.find_element(By.CSS_SELECTOR, 'div[role="img"]')
# 获取aria-label属性值
rating_text = rating_element.get_attribute('aria-label')
print(rating_text)

driver.quit()

方法三:使用Playwright(动态页面渲染)

Playwright是更现代的自动化工具,处理动态页面更高效:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=True)  # headless=True表示无头模式运行
    page = browser.new_page()
    page.goto("你要爬取的Indeed目标页面URL")
    
    # 定位元素并提取aria-label属性
    rating_text = page.locator('div[role="img"]').get_attribute('aria-label')
    print(rating_text)
    
    browser.close()

注意事项

  • 页面中可能存在多个带role="img"的元素(比如其他维度的评分),建议结合父元素的类名或文本特征缩小定位范围,确保提取的是工作与生活平衡的评分。
  • 爬取Indeed页面时需遵守网站的robots.txt规则,避免过于频繁的请求导致被封禁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 08:50:39