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

Python通过API或网页爬取获取表格报错:未找到目标表格

问题分析与解决办法

问题根源

你用requests.get获取的是网页的静态HTML源码,但这个网站的表格是通过JavaScript动态渲染生成的——初始静态源码里根本没有<table>标签,所以pd.read_html自然找不到表格内容。

最优方案:直接调用CSV/数据源接口

既然网站支持CSV下载,没必要走网页爬取的弯路,直接请求数据源接口更高效。你可以替换代码为:

import pandas as pd

# 直接请求该网站的数据源接口(可通过浏览器开发者工具的网络面板找到)
data_url = "https://worldpopulationreview.com/static/states/stateData.json"
df = pd.read_json(data_url)
# 筛选出你需要的割礼率相关字段
result_df = df[["name", "circumcisionRate"]]
print(result_df.head())

如果能找到直接的CSV下载链接,也可以用pd.read_csv(your_csv_url)直接读取。

备选:用动态渲染工具爬取网页

要是坚持走网页爬取的路子,就得用能渲染JavaScript的工具,比如selenium:

from selenium import webdriver
import pandas as pd

driver = webdriver.Chrome()
driver.get("https://worldpopulationreview.com/state-rankings/circumcision-rates-by-state")
driver.implicitly_wait(10)  # 等待页面加载完成
tables = pd.read_html(driver.page_source)
df = tables[0]
driver.quit()
print(df.head())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 14:40:28