首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从一个特定的subreddit (使用PRAW)获得过去两个月的所有提交材料?

从一个特定的subreddit (使用PRAW)获得过去两个月的所有提交材料?
EN

Stack Overflow用户
提问于 2016-12-04 15:52:04
回答 2查看 2.9K关注 0票数 3

在过去的两个月里,我试图获得所有的/r/politics帖子以及所有的评论和用户详细信息。我怎么用婴儿车做这件事?

我应该看看get_hot()的帖子吗?对怎么做有什么想法吗?有什么时间戳方法我可以利用吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-04 16:12:08

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

代码语言:javascript
复制
timestamp:START_UNIX_TIMESTAMP..END_UNIX_TIMESTAMP

如果您期望返回的条目少于1000个,那么只需要设置一个搜索就可以了。但是,搜索查询仅限于1000个请求,因此,如果比预期的帖子更多,则需要一些特殊的逻辑。

若要搜索过去两个月中的任何职位,请尝试:

代码语言:javascript
复制
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>并重复,直到没有更多的结果。

票数 4
EN

Stack Overflow用户

发布于 2017-11-28 10:21:37

我只想为任何使用PRAW 4+的人共享一个互补的解决方案,使用Subreddit.submissions方法,它非常适合在时间戳之间进行搜索。使用与接受的答案相同的代码片段:

代码语言:javascript
复制
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)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40960449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档