使用Python Selenium提取csgoempire历史记录返回空数组如何解决
爬取CSGOEmpire历史开奖记录空返回的解决方法
问题原因
- 你使用的
.h-24是Tailwind CSS的通用高度工具类,全站大量元素都使用该类,并非历史开奖记录的专属定位标识,定位逻辑完全错误 - 等待条件对应的元素和目标内容无关,无法保证目标模块已经加载完成
解决方法
- 替换定位选择器:使用历史开奖条目专属的类名
.previous-rolls-item作为定位依据 - 调整等待逻辑:等待历史开奖条目加载完成后再批量提取
- 反爬绕过:如果触发Cloudflare人机验证,使用
undetected-chromedriver替代原生Selenium驱动即可
可运行代码示例
from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 等待历史开奖条目加载完成 wait = WebDriverWait(self, 10) # 等待第一个历史开奖条目出现 wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ".previous-rolls-item"))) # 批量获取所有历史开奖条目 last_rolls = self.find_elements(By.CSS_SELECTOR, ".previous-rolls-item") # 提取每个条目的开奖信息示例 roll_results = [] for roll in last_rolls: # 开奖数字 roll_num = roll.get_attribute('data-roll') # 开奖颜色:ct/t/bonus对应蓝/红/绿 roll_color = roll.get_attribute('data-roll-color') roll_results.append({"num": roll_num, "color": roll_color}) print(roll_results)
内容的提问来源于stack exchange,提问作者norbertsari
相关产品推荐
相关产品推荐

