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

如何用Python截取HTML表格并在Jupyter中通过Markdown展示?

如何精准截取网页第一个表格并保存为PNG用于Jupyter Markdown展示

解决方案:使用Selenium渲染页面并定位表格截图

因为你需要的是网页原生样式的表格截图,而非pandas转换后的文本表格,所以需要用浏览器渲染工具定位页面上的第一个<table>元素并单独截图。

步骤1:安装依赖

需要安装Selenium和对应浏览器的驱动(以ChromeDriver为例):

pip install selenium

ChromeDriver需与你的Chrome版本匹配,下载后可放到系统PATH中,或在代码里指定驱动路径。

步骤2:编写截图代码

替换原有表格识别逻辑,用Selenium加载页面、定位目标表格并完成截图:

from selenium import webdriver
from selenium.webdriver.common.by import By
from IPython.display import Markdown, display
import os

# 初始化Chrome浏览器驱动(若驱动不在PATH,需指定executable_path参数)
driver = webdriver.Chrome()

# 创建截图保存目录
if not os.path.exists("table_snapshots"):
    os.makedirs("table_snapshots")

for idx, url in enumerate(urls):
    driver.get(url)
    # 定位页面第一个table元素
    first_table = driver.find_element(By.TAG_NAME, "table")
    # 生成唯一截图文件名
    snapshot_path = f"table_snapshots/table_{idx+1}.png"
    # 对表格元素单独截图
    first_table.screenshot(snapshot_path)
    
    # 在Jupyter中用Markdown展示截图
    markdown_syntax = f"![网页{idx+1}的第一个表格]({snapshot_path})"
    display(Markdown(markdown_syntax))

# 关闭浏览器
driver.quit()

补充优化(针对动态加载页面)

如果网页表格是动态渲染的,可添加显式等待确保表格加载完成:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 等待第一个table元素出现,最长等待10秒
first_table = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.TAG_NAME, "table"))
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 05:52:49