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

不使用pandas实现爬取内容仅写入CSV第一列(解决逗号拆列问题)

问题原因

手动逐行写入文本的方式没有遵循CSV格式的转义规则。CSV默认以逗号作为列分隔符,当爬取文本包含逗号时,表格工具打开文件会默认将逗号前后内容拆分到不同列。

解决方案

无需安装pandas,直接调用Python标准库内置的csv模块即可解决。该模块会自动对文本中的逗号、换行、引号等特殊字符做转义处理,保证单条内容始终存放在第一列。
使用时注意两个细节:

  • 打开文件时需指定newline=''参数,避免写入后出现多余空行
  • 调用writerow方法时传入单元素列表,即可将内容单独写入第一列
修改后代码
import csv
import requests
from bs4 import BeautifulSoup

i = 1
# 提前初始化文件写入对象,避免循环内反复开关文件损耗性能
with open("/Users/Rex/Desktop/data.csv", "a", newline='', encoding='utf-8') as file_object:
    writer = csv.writer(file_object)
    for url in urls:
        print(f'Scraping the URL no {i}')
        i += 1
        response = requests.get(url)
        soup = BeautifulSoup(response.text, 'html.parser')
        links = []
        for item in soup.find('div', class_='entry-content').find_all('div', class_='streak'):
            link = item.a['href']
            text = item.a.text
            links.append(link)
            # 传入单元素列表,内容仅写入第一列,特殊字符自动转义
            writer.writerow([text])
其他可选方案

如果不想使用csv模块,也可以手动给每条文本前后包裹双引号,同时将文本内部的双引号替换为两个双引号实现转义,但这种方式容易遗漏换行、制表符等其他会干扰CSV解析的特殊字符,优先使用标准库方案稳定性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 04:18:17