python - 从 python 中的 reddit api (praw) 抓取 subreddits、评论和回复流
问题描述
我想在 python 中打印来自 Reddit 的特朗普的实时信息。输出涉及其中包含“王牌”的任何线程、评论或回复。我正在尝试这段代码,但它似乎没有提供完整的输出。
import praw
reddit = praw.Reddit(client_id='.....',
client_secret='.....', password='....',
user_agent='testscript by /u/......', username='.....')
subreddit = reddit.subreddit('worldnews')
findme = "Trump"
for comment in subreddit.stream.comments():
try:
parent_id = str(comment.parent())
submission = reddit.comment(parent_id)
if submission.body.find(findme) != -1:
print(submission.body)
print('\n')
if comment.body.find(findme) != -1:
print(comment.body)
for reply in submission.replies:
print(reply)
else:
continue
except praw.exceptions.PRAWException as e:
pass
解决方案
当您使用流时,您可能不会获得包含给定单词的提交的所有评论。评论会在可用时出现,而此时,他们可能没有任何回复。此外,在您的脚本开始之前编写的旧评论 - 使用给定关键字将不会被流捕获。
此外,您的代码中唯一的问题是您没有检查回复是否真的在他们的身体上有“特朗普”:
for reply in submission.replies:
if reply.body.find(findme) != -1:
print(reply)
推荐阅读
- javascript - 从 Laravel 刀片中的 js 文件访问对象?
- tensorflow - Tensorflow Serving:在基本路径 /models 下找不到可服务的 half_plus_two 的版本
- javascript - 这个while循环有什么问题?
- r - 我是新来的。我试图通过使用 for 循环使我的代码不那么复杂
- java - Java double - 某些小数位后只有零
- python-3.x - Python 3.8 sort - Lambda 函数对列表、字符串表现不同
- azure-devops - 使用 Azure DevOps 时,如何防止 FtpUpload@2 在 ftp 服务器上创建额外的根文件夹?
- sql - 在 case 语句中聚合“不是 GROUP BY 表达式”错误
- r - 如何在R中的列表中查找包含和不包含的单词
- java - 结合二维数组和一维数组