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

使用Python Selenium爬取彭博等财经网站的页面解析问题求助

解决Selenium爬取彭博/金融时报页面异常的办法

核心问题根源

这类金融网站普遍采用动态渲染+强反爬机制,要么是你没等页面完全渲染就急于获取数据,要么是Selenium的自动化特征被网站识别,返回了反爬用的脚本内容;另外Cookie授权未处理会导致页面停留在授权环节,根本无法加载正常内容。

具体解决步骤

  • 先处理Cookie授权,再进行爬取
    必须先完成Cookie授权操作,否则页面不会加载正常内容。示例代码(注意不同网站的按钮选择器需要自行抓取):

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.by import By
    
    try:
        # 等待同意按钮可点击,最长等待5秒
        accept_btn = WebDriverWait(driver, 5).until(
            EC.element_to_be_clickable((By.XPATH, '//button[contains(text(), "Accept") or contains(text(), "同意")]'))
        )
        accept_btn.click()
    except:
        # 无授权弹窗则跳过
        pass
    
  • 等待页面完全加载,避免过早获取数据
    动态网站需要时间完成渲染,直接获取innerHTML只能拿到未渲染的脚本内容。可以等待页面状态为complete,或者等待关键元素加载完成:

    # 等待页面加载完成
    WebDriverWait(driver, 10).until(
        lambda d: d.execute_script('return document.readyState') == 'complete'
    )
    # 也可以等待关键元素出现,比如金融时报的正文容器
    # WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, "article-body")))
    
    # 再获取页面内容
    html = driver.find_element(By.TAG_NAME, 'body').get_attribute("innerHTML")
    
  • 隐藏Selenium特征,规避反爬检测
    多数网站会通过navigator.webdriver属性识别自动化工具,返回异常内容。可以通过配置ChromeOptions和执行JS来隐藏特征:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    options = Options()
    # 禁用自动化控制标识
    options.add_argument('--disable-blink-features=AutomationControlled')
    options.add_experimental_option("excludeSwitches", ["enable-automation"])
    options.add_experimental_option('useAutomationExtension', False)
    
    driver = webdriver.Chrome(options=options)
    # 执行JS修改navigator.webdriver属性
    driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
    
  • 换用driver.page_source获取完整源码
    有时body.innerHTML会遗漏部分内容,尝试使用driver.page_source获取整个页面的HTML:

    html = driver.page_source
    

额外注意事项

这类金融网站反爬严格,频繁请求易触发IP封禁,建议每次请求后添加2-5秒延时,必要时使用代理IP。同时需遵守网站使用条款,避免过度爬取引发法律风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 14:37:16