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

使用Selenium定位符合href特征的ITF网球赛事链接方法求助

问题排查与解决方案
  • 确认Selenium版本与API兼容性
    你使用的find_elements_by_css_selector属于Selenium 4.0+版本已废弃的旧API,建议替换为标准写法:
    from selenium.webdriver.common.by import By
    elems = driver.find_elements(By.CSS_SELECTOR, "a[href*='/en/tournament/m']")
    
  • 添加显式等待适配异步渲染内容
    该站点的赛事列表属于动态加载内容,直接执行选择器时对应DOM节点还未生成,建议设置最长等待时间直到目标元素加载完成:
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    # 最长等待10秒,直到至少有1个符合条件的a标签出现
    wait = WebDriverWait(driver, 10)
    elems = wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "a[href*='/en/tournament/m']")))
    
  • 检查元素是否嵌套在iframe中
    打开浏览器开发者工具查看目标a标签的上层节点,如果存在iframe/frame标签,需要先切换到对应iframe再执行元素定位:
    # 按实际页面的iframe属性调整定位方式,示例为按id定位
    iframe = driver.find_element(By.ID, "calendar-iframe")
    driver.switch_to.frame(iframe)
    # 切换完成后再执行元素选择逻辑
    
  • 排查反爬触发情况
    如果请求触发了站点反爬机制,返回的是验证页或空白内容,自然找不到目标元素,可以先打印当前页面源码确认内容是否正常:
    print(driver.page_source)
    
    确认触发反爬后,可以通过调整请求头、添加有效cookie、降低访问频率等方式规避限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 22:15:03