web-dev-qa-db-ja.com

PRAW 6:サブレディットのすべての提出を取得する

私は、PRAWを使用して、特定のsubredditの送信を最新のものから最も古いものまで反復しようとしています。以前は次のようにしていた。

subreddit = reddit.subreddit('LandscapePhotography')
for submission in subreddit.submissions(None, time.time()):
    print("Submission Title: {}".format(submission.title))

しかし、今やろうとすると、次のエラーが発生します。

AttributeError: 'Subreddit' object has no attribute 'submissions'

ドキュメントを見ると、これを行う方法がわかりません。私ができる最善は:

for submission in subreddit.new(limit=None):
    print("Submission Title: {}".format(submission.title))

ただし、これは最初の1000件の送信のみに制限されています。

最初の1000だけでなく、すべての送信でこれを行う方法はありますか?

6
Curtwagner1984

反復ループを使用して、pushshift.ioからすべてのデータを取得できます。開始日を現在のエポック日として設定し、1000アイテムを取得してから、リストの最後のアイテムのcreated_utcをbeforeパラメータとして入力して、次の1000アイテムを取得し、戻りがなくなるまで続行します。

以下は、詳細情報に役立つリンクです: https://www.reddit.com/r/pushshift/comments/b7onr6/max_number_of_results_returned_per_query/ここにリンクの説明を入力してください

1
Nez

プッシュシフトはプライベートサブレディットに対しては機能しません。その場合、これから一度に1000件のデータベースを作成できます(遡及的ではありません)。

できるだけ多くの送信が必要な場合は、さまざまな並べ替えメソッドtop、hot、new、およびそれらを組み合わせてみてください。

0
Alex Cooper