从特定的subreddit(使用PRAW)获取过去两个月的所有提交内容?

时间:2016-12-04 15:52:05

标签: python reddit praw

我试图获取过去两个月的所有/ r /政治帖子以及所有评论和用户详细信息。如何使用PRAW进行此操作?

我应该查看get_hot()中的帖子吗?关于如何解决这个问题的任何想法?有没有我可以利用的时间戳方法?

2 个答案:

答案 0 :(得分:2)

您可以使用Cloudsearch syntax在2个时间戳之间进行搜索。语法是:

timestamp:START_UNIX_TIMESTAMP..END_UNIX_TIMESTAMP

如果您希望返回的条目少于1000个,那么设置搜索来执行此操作应该相对简单。但是,搜索查询仅限于1000个请求,因此如果预期会有更多的帖子,则需要一些特殊的逻辑。

要搜索过去2个月内的任何帖子,请尝试:

import time
current_timestamp = time.time()
# 60 seconds * 60 minutes * 24 hours * 60 days = 2 months
two_months_timestamp = current_timestamp - (60 * 60 * 24 * 60)
query = 'timestamp:{}..{}'.format(current_timestamp, two_months_timestamp)
results = reddit.subreddit('test').search(query, sort='new')

如果您需要超过1000,我建议您获取搜索结果中最后一项的时间戳,然后存储该时间戳并搜索timestamp:<current_timestamp>..<last_item_timestamp>并重复直到没有更多结果。

答案 1 :(得分:2)

只是想使用Subreddit.submissions方法为使用PRAW 4+的任何人分享补充解决方案,这种方法非常适合在时间戳之间进行搜索。使用与接受的答案相同的剪切代码:

import time
current_timestamp = time.time()
# 60 seconds * 60 minutes * 24 hours * 60 days = 2 months
two_months_timestamp = current_timestamp - (60 * 60 * 24 * 60)
results = reddit.subreddit('test').submissions(two_months_timestamp, current_timestamp)