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

如何用Selenium/BeautifulSoup定位动态ID的冲浪赛事Heat元素

自动抓取冲浪赛事Heat数据(无需手动指定Heat ID)

问题背景

你需要抓取冲浪赛事的Heat数据,目标页面的HTML结构如下:

<div class="event-round">
      <div id="heat-85940" class="new-heat  new-heat--status-completed new-heat--athletes-4">
      <div id="heat-85941" class="new-heat  new-heat--status-completed new-heat--athletes-4">
      <div id="heat-85942" class="new-heat  new-heat--status-completed new-heat--athletes-4">
      <div id="heat-85943" class="new-heat  new-heat--status-completed new-heat--athletes-4">
<div>

当前代码依赖固定的Heat ID前缀(如heat-8594{h}),只能抓取单页数据,手动修改循环范围效率极低,需要实现自动识别页面Heat元素、批量抓取多页数据的逻辑。

解决方案

方案1:使用Selenium直接遍历Heat元素

完全避开动态ID的限制,直接定位所有new-heat元素,再从每个元素内部提取运动员信息:

# 获取页面中所有的Heat容器元素
heat_elements = driver.find_elements(By.CLASS_NAME, 'new-heat')

for heat in heat_elements:
    # 从当前Heat元素内部定位所有运动员名字节点(匹配你的XPATH结构)
    athlete_name_elems = heat.find_elements(By.XPATH, './div/div[2]/div/div[1]/div[1]/div/div[2]/div[1]/span')
    for elem in athlete_name_elems:
        name = elem.text
        # 此处可添加数据存储/处理逻辑
        print(name)

关键优化点:

  • 用new-heat类名直接定位所有Heat容器,彻底摆脱动态ID的束缚
  • 使用相对路径XPATH(./开头)从当前Heat元素内部查找子节点,避免全局定位的冲突和错误

方案2:使用BeautifulSoup解析页面源码

如果已获取页面HTML源码,用BeautifulSoup处理更高效:

from bs4 import BeautifulSoup

# 假设已通过driver.page_source获取页面源码
soup = BeautifulSoup(driver.page_source, 'html.parser')

# 定位所有Heat容器
heat_divs = soup.find_all('div', class_='new-heat')

for heat_div in heat_divs:
    # 用CSS选择器提取当前Heat下的所有运动员名字
    athlete_spans = heat_div.select('div > div:nth-child(2) > div > div:nth-child(1) > div:nth-child(1) > div > div:nth-child(2) > div:nth-child(1) > span')
    for span in athlete_spans:
        name = span.get_text(strip=True)
        # 此处可添加数据存储/处理逻辑
        print(name)

关键优化点:

  • 用class_='new-heat'定位Heat容器,不受ID变化影响
  • CSS选择器结构更直观,定位精度与XPATH一致

多页批量抓取扩展逻辑

在上述代码基础上添加翻页逻辑即可实现批量抓取:

  1. 完成当前页面的Heat数据抓取
  2. 定位“下一页”按钮,判断是否处于可点击状态(避免最后一页报错)
  3. 点击翻页按钮,等待页面加载完成后重复抓取流程

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 03:10:15