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

如何合并pandas.read_html获取的多URL数据帧并导出CSV

实现多URL数据抓取与合并导出

很简单,咱们只需要调整一下代码逻辑,先把所有目标URL存成一个列表,然后逐个抓取DataFrame并收集起来,最后合并成一个大文件导出就行。下面是具体的实现方案:

完整代码示例

import pandas as pd

# 第一步:把所有需要抓取的URL放到列表里
url_list = [
    'http://www.url1.com',
    'http://www.url2.com',
    # ... 这里继续添加你的url3到urlN
    'http://www.urlN.com'
]

# 初始化一个空列表,用来存储每个页面的DataFrame
all_dfs = []

# 第二步:遍历每个URL,抓取数据并收集
for url in url_list:
    try:
        # 从当前URL抓取表格数据,取第一个表格(如果页面有多个表格,可根据需求调整索引)
        dfs = pd.read_html(url, header=0)
        target_df = dfs[0]  # 假设每个页面只有一个需要的表格
        all_dfs.append(target_df)
        print(f"成功抓取 {url} 的数据")
    except Exception as e:
        print(f"抓取 {url} 时出错: {str(e)}")
        continue  # 出错时跳过当前URL,继续处理下一个

# 第三步:合并所有DataFrame
if all_dfs:  # 确保有数据才合并
    combined_df = pd.concat(all_dfs, ignore_index=True)
    # 导出到CSV
    combined_df.to_csv('file.csv', index=False)
    print("所有数据已合并并导出到 file.csv")
else:
    print("没有抓取到任何有效数据")

一些关键说明

  • URL列表:把你所有需要的URL都添加到url_list里就行,数量多少都可以。
  • 表格选择:pd.read_html会返回页面上所有表格的DataFrame列表,这里用dfs[0]取第一个表格,如果你的目标表格不是第一个,需要调整索引值(比如dfs[1]取第二个)。
  • 异常处理:添加了try-except块,避免某个URL访问失败导致整个程序中断,同时会打印错误信息方便排查。
  • 合并参数:pd.concat里的ignore_index=True是重置合并后DataFrame的索引,避免出现重复索引的问题。

内容的提问来源于stack exchange,提问作者prog-amateur

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:47:02