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

使用pandas.read_html抓取开放数据网页表格报错:未找到表格

解决pandas.read_html读取科希策开放数据页面无表格的问题

问题原因

你访问的https://opendata.kosice.sk/datasets/kosice-mesto::v%C3%BDmery-typov-pozemkov-1/explore是数据的可视化探索页面,页面中的表格是通过JavaScript动态渲染生成的。requests.get()只能获取页面的静态HTML源码,而这份源码里根本没有<table>标签,所以pandas.read_html()找不到可解析的表格。

解决方案

方法1:直接调用开放数据的CSV下载接口(推荐)

科希策开放数据平台提供了直接的CSV格式数据下载链接,无需处理动态页面,效率更高:

  1. 打开目标页面,点击右上角的下载按钮,选择CSV格式;
  2. 右键点击下载选项,复制链接地址;
  3. 用pandas.read_csv()直接读取该链接:
import pandas as pd

# 替换为你复制的CSV下载链接
csv_url = "https://opendata.kosice.sk/datasets/9e3794408e3b436181b09207199339a1_0.csv"
df = pd.read_csv(csv_url)
print(df.head())

方法2:用Selenium获取动态渲染后的页面

如果必须通过网页渲染获取表格,可以用Selenium模拟浏览器加载页面,再提取HTML:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import pandas as pd

url = 'https://opendata.kosice.sk/datasets/kosice-mesto::v%C3%BDmery-typov-pozemkov-1/explore'
driver = webdriver.Chrome()  # 需要提前安装ChromeDriver并配置环境变量
driver.get(url)

# 等待表格加载完成(显式等待更可靠)
WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.TAG_NAME, "table"))
)

html = driver.page_source
df_list = pd.read_html(html)
driver.quit()

if df_list:
    df = df_list[0]
    print(df.head())
else:
    print("未找到表格,请检查页面加载情况")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 15:35:19