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

抓取Reddit特定帖子评论输出CSV:如何让每条评论独占单元格?

解决Reddit评论导出CSV时拆分到多个单元格的问题

我来帮你搞定这个问题!你遇到的评论被随机拆分到不同单元格的情况,主要是因为评论里可能包含逗号、换行符这些CSV格式的特殊字符——直接写入文本的话,CSV会把这些字符当成单元格分隔符或者换行标记来处理。再加上你之前的代码没用到Python的csv模块来规范写入逻辑,自然就会出现格式混乱的问题。

下面是修正后的完整代码,能确保每条评论单独占据一个单元格:

import praw
import csv

# 初始化Reddit客户端
reddit = praw.Reddit(
    client_id='你的ClientID',
    client_secret='你的ClientSecret',
    user_agent='你的UserAgent'
)

# 获取目标帖子(注意变量名大小写统一,原来的Submission和submission大小写不一致会报错)
submission = reddit.submission(id="你的SubmissionID")
# 加载所有嵌套评论,替换掉PRAW默认的MoreComments占位对象
submission.comments.replace_more(limit=None)

# 写入CSV文件
with open('Reddit.csv', 'w', newline='', encoding='utf-8') as csvfile:
    # 创建CSV写入器,默认用逗号作为分隔符
    writer = csv.writer(csvfile)
    # 可选:写入表头,让CSV更易读
    writer.writerow(['评论内容'])
    # 遍历所有评论(包括深层嵌套的评论)
    for comment in submission.comments.list():
        # 将单条评论作为列表元素传入,csv.writer会自动处理特殊字符(加引号)
        writer.writerow([comment.body])

关键修正点说明:

  • 使用csv.writer规范写入:通过writerow([comment.body])把评论内容包装成列表传入,CSV写入器会自动给包含逗号、换行的评论添加双引号,确保内容不会被错误拆分。
  • 加载所有评论:调用submission.comments.replace_more(limit=None)可以替换掉所有的MoreComments对象,确保你能抓取到帖子里的所有层级评论,而不是只拿到表层的一部分。
  • 编码与换行处理:指定encoding='utf-8'避免特殊字符乱码,newline=''是Python处理CSV的最佳实践,能避免Windows系统下生成多余空行。

这样处理后,每条评论就会完整地单独占据一个单元格啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 16:44:11