您可以使用Python Pushshift.io API Wrapper (PSAW) 从特定 subreddit 中获取所有最新提交和 cmets,甚至可以执行更复杂的查询(例如在评论中搜索特定文本)。 docs 可在此处获得。
例如,您可以使用get_submissions() 函数获取 2015 年以来 r/dogs 的前 1000 个提交:
import datetime as dt
import praw
from psaw import PushshiftAPI
r = praw.Reddit(...)
api = PushshiftAPI(r)
start_epoch=int(dt.datetime(2015, 1, 1).timestamp()) # Could be any date
submissions_generator = api.search_submissions(after=start_epoch, subreddit='dogs', limit=1000) # Returns a generator object
submissions = list(submissions_generator) # You can then use this, store it in mongoDB, etc.
或者,要从 r/dogs 获得 2015 年的前 1000 个 cmets,您可以使用 search_comments() 函数:
start_epoch=int(dt.datetime(2015, 1, 1).timestamp()) # Could be any date
comments_generator = api.search_comments(after=start_epoch, subreddit='dogs', limit=1000) # Returns a generator object
comments = list(comments_generator)
如您所见,PSAW 仍然使用 PRAW,因此返回 PRAW 对象用于提交和 cmets,这可能很方便。