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

如何使用bs4或Selenium获取Twitch页面元素的status属性值

获取Twitch页面元素status属性的两种实现方案

方案1:通过BeautifulSoup解析获取

你可以先定位到目标<a>标签元素,再通过元素的属性取值方法拿到status对应值,补全你的代码如下:

from bs4 import BeautifulSoup
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

op = Options()
op.add_argument("user-data-dir=C:\\Users\\bestg\\AppData\\Local\\Google\\Chrome\\bor")
driver = webdriver.Chrome(options=op)
driver.get('https://www.twitch.tv/mizkif')
html = driver.page_source
soup = BeautifulSoup(html, features="html.parser")

# 以下为获取status属性的代码
# 写法1:通过class定位,用get方法避免属性不存在抛出异常
target_tag = soup.find('a', class_='tw-halo')
if target_tag:
    status_value = target_tag.get('status')
    print(status_value) # 离线状态下输出为offline,在线时输出online

# 写法2:直接匹配带status属性的a标签
target_tag2 = soup.find('a', attrs={'status': True})
if target_tag2:
    status_value2 = target_tag2['status']

# 筛选离线直播间点击头像
stream = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, ".//a[@status='offline']")))
stream.click()

方案2:直接通过Selenium获取(无需转BeautifulSoup)

Selenium原生支持获取元素的自定义属性,不需要额外解析页面源码,写法更简单:

# 等待元素加载完成后直接获取status属性
target_ele = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH, ".//a[contains(@class,'tw-halo')]")))
status_value = target_ele.get_attribute('status')
print(status_value)

# 结合离线判断再点击的写法
if status_value == 'offline':
    target_ele.click()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:27:01