如何将含HTML的CSV文件转为可表格化的Excel数据?
解决Google Sheets导出CSV时保存为HTML的问题
问题原因
你用的是Google Sheets的网页编辑URL,requests.get()获取的是页面的HTML代码,不是表格的CSV数据,所以打开文件会混着HTML标签和CSV内容。
解决方法
Google Sheets提供了专门的导出接口,需要把URL改成CSV导出格式:
- 把原URL中的
edit#gid=xxx替换为export?format=csv&gid=xxx
针对你的表格,正确的CSV导出URL是:https://docs.google.com/spreadsheets/d/1PS2_yAvNVEuSY0gI8Nky73TQMcx_G1i18lm--jOGfAA/export?format=csv&gid=514147473
修改后的代码
import requests # 替换为CSV导出URL URL = 'https://docs.google.com/spreadsheets/d/1PS2_yAvNVEuSY0gI8Nky73TQMcx_G1i18lm--jOGfAA/export?format=csv&gid=514147473' response = requests.get(URL) # 指定utf-8编码,避免特殊字符乱码 with open('challenge1.csv', 'w', encoding='utf-8') as csv_file: csv_file.write(response.text)
额外说明
- 使用
response.text而非response.content,直接获取文本内容,配合encoding='utf-8'可解决原内容里的字符乱码问题(比如Exhibición会显示为正确的Exhibición) - 用
with语句自动管理文件关闭,比手动调用close()更安全 - 如果表格是私有文档,需要添加认证参数,但你的表格属于公开可导出类型,直接使用上述URL即可正常获取CSV数据
内容的提问来源于stack exchange,提问作者andres sanchez
相关产品推荐
相关产品推荐

