如何将HTML表格指定列内容按格式导入Excel(支持Excel/Python方案)
解决从NDC Partnership网站提取指定表格数据的两种方法
方法一:Excel直接复制粘贴(无代码方案)
- 打开目标网页后,滚动页面到底部,确保表格所有行加载完成(该表格为动态加载,不滚动仅显示部分行)
- 精准选中整个表格:定位到表头的「Country」单元格,按住左键拖动到表格最后一行末尾,确保所有行、列都被选中
- 复制选中内容(
Ctrl+C),打开Excel后选中A1单元格,右键选择选择性粘贴→文本 - 若数据全部集中在一列,选中该列,点击Excel菜单栏的「数据」→「分列」,选择「分隔符号」并勾选「制表符」,完成分列操作
- 删除多余列,仅保留「Country」「Latest Submission」「Latest submission date」三列即可
方法二:Python提取并转为DataFrame
依赖安装
先安装所需工具库:
pip install pandas selenium webdriver-manager
提取代码
import pandas as pd from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By # 初始化Chrome浏览器 driver = webdriver.Chrome(service=Service(ChromeDriverManager().install())) driver.get("https://ndcpartnership.org/climate-tools/ndcs") # 滚动到底部加载所有表格行 driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") # 等待表格完全加载 WebDriverWait(driver, 15).until(EC.presence_of_element_located((By.TAG_NAME, "table"))) # 获取表格HTML内容 table_element = driver.find_element(By.TAG_NAME, "table") table_html = table_element.get_attribute("outerHTML") driver.quit() # 将HTML表格转为DataFrame df = pd.read_html(table_html)[0] # 筛选目标列 target_columns = ["Country", "Latest Submission", "Latest submission date"] filtered_df = df[target_columns] # 保存到Excel filtered_df.to_excel("ndc_country_data.xlsx", index=False) print("数据已保存到ndc_country_data.xlsx")
说明
- 用Selenium是因为表格为动态加载,直接使用
pandas.read_html只能获取页面初始加载的部分行 - 代码运行后会自动生成包含指定三列的Excel文件,无需手动整理
内容的提问来源于stack exchange,提问作者user032020
相关产品推荐
相关产品推荐

