我试图获取过去两个月的所有/ r /政治帖子以及所有评论和用户详细信息。如何使用PRAW进行此操作?
我应该查看get_hot()
中的帖子吗?关于如何解决这个问题的任何想法?有没有我可以利用的时间戳方法?
答案 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)