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

使用Python Selenium抓取Tableau页面数据遇返回None问题求助

解决Tableau页面数据抓取问题

当前代码的核心错误

你代码里的driver.execute_script("return //public.tableau.com/vizql/v_202242301300809/javascripts/ViewerBootstrap.js")完全无效://是JavaScript的单行注释,这行代码相当于return后没有任何有效内容,Selenium会把JS的undefined转为Python的None,所以你始终得到这个结果。

修正:获取渲染后的页面内容

如果只是要获取页面渲染后的内容,可以调整代码,添加等待逻辑确保Tableau加载完成,再抓取页面HTML或目标区域:

import sys
from selenium import webdriver
import chromedriver_autoinstaller
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

sys.path.append("G:\\Python36\\mypath")
chromedriver_autoinstaller.install()

# 配置无头模式,避免加载异常
chrome_options = Options()
chrome_options.add_argument("--headless=new")
chrome_options.add_argument("--window-size=1920,1080")
chrome_options.add_argument("--disable-gpu")
chrome_options.add_argument("--no-sandbox")

driver = webdriver.Chrome(options=chrome_options)

driver.get("https://www.route.org.uk/q42022-dashboard")

try:
    # 等待Tableau核心容器加载,超时20秒
    WebDriverWait(driver, 20).until(
        EC.presence_of_element_located((By.CSS_SELECTOR, ".tableauPlaceholder"))
    )
    
    # 获取整个页面的渲染后HTML
    full_page_html = driver.page_source
    print(full_page_html)
    
    # 或者只抓取Tableau可视化区域的内容
    tableau_area = driver.find_element(By.CSS_SELECTOR, ".tableauPlaceholder")
    print(tableau_area.get_attribute("outerHTML"))
    
finally:
    driver.quit()

更高效的方案:直接提取Tableau数据源

如果目标是获取原始结构化数据,Selenium不是最优选择,推荐使用专门的tableau-scraping库,它可以直接解析Tableau的VizQL接口,拿到结构化数据:

  1. 先安装库:
pip install tableau-scraping
  1. 提取数据的示例代码:
from tableau_scraping import TableauScraper as TS

ts = TS()
# 加载目标页面
ts.load("https://www.route.org.uk/q42022-dashboard")

# 获取工作簿中的第一个工作表数据
workbook = ts.get_workbook()
first_worksheet = workbook.worksheets[0]
# 输出结构化的表格数据
print(first_worksheet.data)

这个库会自动处理Tableau的API请求,直接返回可处理的数据集,比用Selenium模拟浏览器更高效稳定。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 19:31:23