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

如何用Python爬取经Google Tag Manager渲染的TradingView正确数据?

爬取TradingView美股收益页动态数据的解决方案

因为目标页面的表格数据是通过JavaScript动态渲染的,requests+BeautifulSoup只能拿到初始静态HTML里的错误数据,所以得用无头浏览器工具模拟真实加载过程,等JS执行完再抓数据。下面推荐两个简单的Python实现方案:

方案一:Playwright(推荐,配置简单)

Playwright是微软推出的自动化测试工具,自带浏览器驱动,上手快,适合处理动态页面。

1. 安装依赖

pip install playwright
playwright install chromium  # 安装无头Chromium浏览器

2. 爬取代码

from playwright.sync_api import sync_playwright
import pandas as pd

def get_earnings_data():
    with sync_playwright() as p:
        # 启动无头浏览器,不弹出可视化窗口
        browser = p.chromium.launch(headless=True)
        page = browser.new_page()
        
        # 访问目标页面,等待网络空闲(确保所有动态数据加载完成)
        page.goto("https://www.tradingview.com/markets/stocks-usa/earnings/", wait_until="networkidle")
        
        # 等待表格元素加载完毕
        page.wait_for_selector("table.tv-data-table")
        
        # 提取表格HTML,用pandas直接转换成结构化数据
        table_html = page.inner_html("table.tv-data-table")
        df = pd.read_html(table_html)[0]
        
        browser.close()
        
        # 将数据保存为CSV文件,也可按需做其他处理
        df.to_csv("us_stocks_earnings.csv", index=False)
        print("数据爬取完成,已保存到us_stocks_earnings.csv")

if __name__ == "__main__":
    get_earnings_data()

方案二:Selenium(适合熟悉该工具的用户)

如果习惯用Selenium,新版Selenium已无需手动下载ChromeDriver,可直接使用:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import pandas as pd

# 配置无头模式
options = Options()
options.add_argument("--headless=new")
driver = webdriver.Chrome(options=options)

# 访问页面,隐式等待10秒确保元素加载
driver.get("https://www.tradingview.com/markets/stocks-usa/earnings/")
driver.implicitly_wait(10)

# 提取表格HTML并解析
table = driver.find_element("css selector", "table.tv-data-table")
table_html = table.get_attribute("outerHTML")
df = pd.read_html(table_html)[0]

# 保存数据
df.to_csv("us_stocks_earnings.csv", index=False)
print("数据爬取完成")

driver.quit()

关键说明

  • 两种方案都是模拟真实浏览器加载流程,让页面JS执行完毕后再获取数据,能拿到正确的收益表格内容。
  • pandas.read_html可以快速把HTML表格转成DataFrame,省去手动解析标签的繁琐步骤。
  • 无头模式不会弹出浏览器窗口,适合在后台或服务器环境运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 21:15:41