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

Selenium无法定位Forex Factory高影响新闻元素问题排查

排查Selenium爬取Forex Factory高影响新闻的问题

常见问题点及解决办法

  • 页面动态加载未等待:Forex Factory日历页面是动态渲染的,直接查找元素可能会因为加载未完成导致找不到。改用显式等待确保元素加载完成:
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.by import By
    
    # 最长等待10秒,直到目标元素出现
    wait = WebDriverWait(driver, 10)
    high_impact_icons = wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, 'span.icon.icon--ff-impact-red')))
    
  • 元素定位逻辑偏差:可以先定位所有日历事件行,再在每行内筛选带红色图标的高影响事件,避免直接定位图标遗漏上下文:
    event_rows = driver.find_elements(By.CSS_SELECTOR, 'tr.calendar__row')
    for row in event_rows:
        try:
            # 检查当前行是否有高影响图标
            row.find_element(By.CSS_SELECTOR, 'span.icon.icon--ff-impact-red')
            # 提取事件核心信息
            time = row.find_element(By.CSS_SELECTOR, 'td.calendar__time').text.strip()
            currency = row.find_element(By.CSS_SELECTOR, 'td.calendar__currency').text.strip()
            title = row.find_element(By.CSS_SELECTOR, 'td.calendar__event').text.strip()
            print(f"高影响事件:{time} | {currency} | {title}")
        except:
            continue
    
  • 反爬机制拦截:Forex Factory会检测Selenium特征,需伪装浏览器环境:
    from selenium.webdriver.chrome.options import Options
    
    options = Options()
    # 禁用自动化检测特征
    options.add_argument("--disable-blink-features=AutomationControlled")
    # 设置正常用户代理
    options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36")
    driver = webdriver.Chrome(options=options)
    
  • iframe嵌套问题:检查页面是否存在iframe,若目标元素在iframe内,需先切换上下文:
    # 根据实际页面的iframe标识修改,比如id或name
    iframe = driver.find_element(By.ID, 'calendarIframe')
    driver.switch_to.frame(iframe)
    # 切换后再执行元素查找逻辑
    

验证步骤

  1. 用浏览器开发者工具确认目标元素的CSS选择器是否准确,检查元素是否在嵌套的iframe中。
  2. 运行代码时观察浏览器窗口,确认页面是否正常加载、是否出现人机验证。
  3. 打印driver.page_source,查看目标元素是否存在于页面源码中。

内容的提问来源于stack exchange,提问作者francois de koker

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 05:24:55