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
相关产品推荐
相关产品推荐

