2016-12-04 2 views
1

私はすべてのコメントとユーザーの詳細で過去2ヶ月間の/ r/politics投稿をすべて取得しようとしていました。 PRAWを使ってどうすればいいですか?PRAWを使用して、特定のサブデリートから過去2か月間のすべての投稿を取得していますか?

get_hot()に投稿してください。これについてどうやって行くかについてのアイデア?私が利用できるタイムスタンプ方法はありますか?

+0

まだ解決策を探しています。私は何を使うべきか分からない。 – nighthowler

+0

PRAW 3または4を使用していますか? – Aurora0001

+0

私は4.0に移植していないが、私は計画している。だから4.0私は推測する。 – nighthowler

答えて

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>を検索し、結果がなくなるまで繰り返します。

+0

サブレッジも同様に指定できますか? – nighthowler

+0

'reddit.subreddit( 'test')'行のsubredditを好きなものに変更するだけで、同様にうまくいくはずです。 – Aurora0001

+0

私はこれに取り組み始めます。 UIを使用できるように、先月のトップ1000の投稿を得る方法があるのだろうか? PRAW 3.6では、 'submissions = r.get_subreddit( 'politics')。get_top(limit = 1000)'のようなことをします。先月を指定するために他のパラメータを追加できますか? – nighthowler

1

タイムスタンプを検索するのに最適な方法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) 
関連する問題