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

如何将BeautifulSoup抓取的网页表格保存为CSV文件

如何将抓取到的表格数据保存为CSV文件

你已经成功抓取到表格的表头(header)和行数据(rows),接下来用Python内置的csv模块就能轻松把数据存成CSV文件——不用额外安装第三方库,对新手友好:

完整代码示例

from bs4 import BeautifulSoup
import requests 
import csv  # 新增导入csv模块

soup = BeautifulSoup(requests.get("https://www.w3schools.com/html/html_tables.asp").text)
# 定位目标表格
table = soup.find('table', id="customers")
# 提取表头和行数据
header = []
rows = []
for i, row in enumerate(table.find_all('tr')):
    if i == 0:
        header = [el.text.strip() for el in row.find_all('th')]
    else:
        rows.append([el.text.strip() for el in row.find_all('td')])

# 保存为CSV文件
with open('customers.csv', 'w', encoding='utf-8', newline='') as f:
    writer = csv.writer(f)
    writer.writerow(header)  # 写入表头
    writer.writerows(rows)   # 批量写入所有行数据

关键步骤说明

  • 导入csv模块:在代码开头加上import csv,这是Python自带的标准库,无需额外安装。
  • 打开文件:open('customers.csv', 'w', encoding='utf-8', newline='')中:
    • customers.csv是你要生成的文件名,可以自定义;
    • encoding='utf-8'避免中文或特殊字符出现乱码;
    • newline=''解决Windows系统下CSV文件出现多余空行的问题。
  • 写入数据:
    • writer.writerow(header)把表头写入文件第一行;
    • writer.writerows(rows)一次性写入所有抓取到的行数据,比循环逐行写更高效。

执行完代码后,你就能在当前Python脚本所在的文件夹里找到生成的customers.csv文件,用Excel、WPS或普通文本编辑器打开都能看到规整的表格内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 05:35:03