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

使用Selenium爬取数据时.write方法无法写入CSV文件问题咨询

Selenium爬取数据写入CSV不生效问题排查

问题诱发原因

  • 缩进语法错误:Python强制要求代码块缩进对齐,你代码中with open()语句下的for循环、写入逻辑都没有做缩进,根本不会在文件打开的上下文周期内执行,直接运行会抛出IndentationError。
  • 字符串写法非法:代码里换行符的字符串被强行拆分到两行,两个双引号之间直接断行属于未闭合的无效语法,运行时会直接报SyntaxError,写入逻辑根本不会触发。
  • 文件关闭逻辑错误:使用with上下文管理器操作文件时,块内代码执行完毕后会自动释放文件资源、关闭文件,你把file.close()写在with块外部,要么执行时文件已经被关闭触发报错,要么逻辑位置错误无法正常执行。
  • 隐性格式问题:就算修完前面的语法错误,手动拼接字符串写CSV也存在隐患:如果爬取的字段本身包含逗号、换行、双引号,会直接破坏CSV的列结构;Windows环境下打开文件未指定newline=''参数时,写出的CSV会出现行间空行;未指定文件编码时,非ASCII字符(比如中文)会出现乱码。

修复方案

基础修复(可正常完成写入)

修正缩进、字符串写法,删掉冗余的close调用,补充必要的文件参数:

# 块内代码统一缩进4个空格,指定编码避免Excel打开乱码,加newline参数避免空行
with open("coyinfo.csv", "w", encoding="utf-8-sig", newline="") as file:
    for data in scraped_data:
        # 换行符和字符串写在同一行,不要拆断
        file.write(f"{data}\n")
# 无需手动调用file.close(),with语句会自动处理文件关闭

规范写法(避免CSV格式错乱)

推荐直接使用Python内置的csv标准库写入,不需要手动处理字段转义、格式兼容问题:

import csv

with open("coyinfo.csv", "w", encoding="utf-8-sig", newline="") as f:
    csv_writer = csv.writer(f)
    # 如需写表头,放开下面这行注释替换成实际表头即可
    # csv_writer.writerow(["字段1", "字段2", "字段3"])
    for row in scraped_data:
        # 如果单条数据是字符串就包装成单元素列表,是多字段列表/元组可直接传入
        csv_writer.writerow([row] if isinstance(row, str) else row)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 17:39:43