Cur*_*984 6 python reddit praw
我正在尝试使用PRAW从最新到最旧的迭代某个subreddit的提交。我曾经这样做:
subreddit = reddit.subreddit('LandscapePhotography')
for submission in subreddit.submissions(None, time.time()):
print("Submission Title: {}".format(submission.title))
Run Code Online (Sandbox Code Playgroud)
但是,当我现在尝试执行此操作时,出现以下错误:
AttributeError: 'Subreddit' object has no attribute 'submissions'
通过查看文档,我似乎无法弄清楚该如何做。我能做的最好的事情是:
for submission in subreddit.new(limit=None):
print("Submission Title: {}".format(submission.title))
Run Code Online (Sandbox Code Playgroud)
但是,这仅限于前1000个提交。
有没有办法处理所有提交的内容,而不仅仅是前1000个?
查看PRAW更新日志。6.0.0版中的更改之一是:
已移除
Subreddit.submissions因为不再支持API端点,所以不再需要该方法。参见 https://www.reddit.com/r/changelog/comments/7tus5f/update_to_search_api/。
链接的帖子说Reddit正在为所有用户禁用Cloudsearch:
从2018年3月15日开始,我们将开始逐步将API用户转移到新的搜索系统。到三月底,我们期望将所有人都搬走,并最终关闭旧系统。
PRAW Subreddit.sumbissions()使用Cloudsearch来搜索给定时间戳之间的帖子。由于Cloudsearch已删除,并且替换它的搜索不支持时间戳搜索,因此不再可以使用PRAW或任何其他Reddit API客户端基于时间戳执行搜索。这包括尝试从subreddit获取所有帖子。
有关更多信息,请参见PRAW维护者发布的/ r / redditdev中的该线程。
由于Reddit将所有列表限制为〜1000个条目,因此目前无法使用其API在subreddit中获取所有帖子。但是,存在带有API的第三方数据集,例如pushshift.io。正如/ u / kungming2 在Reddit上所说:
您可以使用Pushshift.io通过其API仍返回定义时间段内的数据:
Run Code Online (Sandbox Code Playgroud)https://api.pushshift.io/reddit/submission/search/?after=1334426439&before=1339696839&sort_type=score&sort=desc&subreddit=translator例如,这使您可以在2012-04-14和2012-06-2014之间解析对r / translator的提交。
| 归档时间: |
|
| 查看次数: |
3164 次 |
| 最近记录: |