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

