我有以下代码,它使用python脚本,调用praw并从reddit页面返回文本。我现在想:
能够获得更多评论,因为它只输出少量。 我希望看到评论的响应树。 我想将数据的内容导出到表中 我想将其导出为.csv
我是新手,所以任何建议都有帮助。谢谢!
import praw
import datetime as dt
reddit = praw.Reddit(client_id=,agent_id=,etc. )
submission = reddit.submission(id='7v8ob2')
comments = submission.comments
for comment in comments:
print(20*'-')
print('Parent ID:', comment.parent)
print('Comment ID:', comment.id)
print('Score:', comment.score)
print('Created:', comment.created)
print('Body:', comment.body)
答案 0 :(得分:0)
import pandas as pd
df_rows = [[comment.parent, comment.id, comment.score, comment.created, comment.body] for comment in comments]
df = pd.DataFrame(df_rows, columns=['Parent ID', 'Comment ID', 'Score', 'Created', 'Body'])
df.to_csv('path_to_save_to.csv')
修改强>: 假设您无法一次扩展注释生成器中所有对象的属性,则必须迭代所有注释并展开每个注释以检索其属性。
我将所有数据放在列表中是因为引用了docs:
concat(因此追加)生成数据的完整副本,并且不断重用此函数可以创建显着的性能影响。如果需要对多个数据集使用该操作,请使用列表推导。
事先将所有数据放在列表中(使用列表解析)可以避免这种性能损失。
答案 1 :(得分:0)
import praw
import datetime as dt
import pandas as pd
from pandas import DataFrame
reddit = praw.Reddit(client_id=,agent_id=,etc.)
submission = reddit.submission(id='7v8ob2')
comments = submission.comments
df_rows = [[comment.parent, comment.id, comment.score, comment.created, comment.body] for comment in comments]
df = pd.DataFrame(df_rows, columns=['Parent ID', 'Comment ID', 'Score', 'Created', 'Body'])
df.to_csv('path_to_save_to.csv')