PRAW は「Python Reddit API Wrapper」の頭字語で、Reddit の API に簡単にアクセスできるようにする Python パッケージです。 PRAW は使いやすさを目指しており、内部的には Reddit のすべての API ルールに従っています。 PRAW を使用すると、コードにsleep
コールを導入する必要がありません。クライアントに適切なユーザー エージェントを提供すれば準備は完了です。
PRAW は Python 3.8 以降でサポートされています。 PRAW をインストールする推奨方法は、pip 経由です。
pip install praw
PRAW の最新開発バージョンをインストールするには、代わりに次を実行します。
pip install --upgrade https://github.com/praw-dev/praw/archive/master.zip
Python と pip のインストール手順については、「Python ヒッチハイク ガイド」インストール ガイドを参照してください。
スクリプト タイプの OAuth アプリケーションの認証情報をすでに持っていると仮定すると、次のように PRAW のインスタンスをインスタンス化できます。
import praw
reddit = praw . Reddit (
client_id = "CLIENT_ID" ,
client_secret = "CLIENT_SECRET" ,
password = "PASSWORD" ,
user_agent = "USERAGENT" ,
username = "USERNAME" ,
)
reddit
インスタンスを使用すると、Reddit と対話できるようになります。
# Create a submission to r/test
reddit . subreddit ( "test" ). submit ( "Test Submission" , url = "https://reddit.com" )
# Comment on a known submission
submission = reddit . submission ( url = "https://www.reddit.com/comments/5e1az9" )
submission . reply ( "Super rad!" )
# Reply to the first comment of a weekly top thread of a moderated community
submission = next ( reddit . subreddit ( "mod" ). top ( time_filter = "week" ))
submission . comments [ 0 ]. reply ( "An automated reply" )
# Output score for the first 256 items on the frontpage
for submission in reddit . front . hot ( limit = 256 ):
print ( submission . score )
# Obtain the moderator listing for r/test
for moderator in reddit . subreddit ( "test" ). moderator ():
print ( moderator )
PRAW でできることのその他の例については、PRAW のドキュメントを参照してください。
非同期環境 (discord.py、asyncio など) で PRAW を使用する予定がある場合は、Async PRAW を使用することを強くお勧めします。これは PRAW の公式の非同期バージョンであり、その使用方法は PRAW と似ており、同じ機能を備えています。
Python を初めて使用する人、または自分を Python 初心者だと考えている人は、r/learnpython サブレディットで質問することを検討してください。一般的な Python や単純な PRAW 関連の質問に答えてくれる素晴らしい人たちがいます。
それ以外の場合は、PRAW について質問できる公式の場所がいくつかあります。
r/redditdev は、Reddit 上で PRAW 関連の質問をするのに最適な場所です。このサブレディットは Reddit API 関連のすべてのディスカッションを対象としているため、投稿には[PRAW]のタグを付けてください。まずサブレディットで検索を実行して、同様の質問をしている人がいないか確認してください。
リアルタイム チャットは、PRAW Slack 組織経由で実行できます (招待リンクの有効期限が切れている場合は、問題を作成してください)。
特に指示がない限り、Reddit、電子メール、または Slack を介して投稿者に直接メッセージを送信しないでください。他の人の質問に協力することを強くお勧めします。
最初に検索して、同様の問題がまだ提出されていないことを確認した後、バグや機能リクエストを GitHub に問題として提出してください。そのような問題がすでに存在する場合は、高く評価してください。追加情報を含む問題へのコメントは大歓迎です。
注記
このプロジェクトは、貢献者の行動規範とともにリリースされています。このプロジェクトに参加すると、その規約に従うことに同意したことになります。
PRAW のドキュメントは https://praw.readthedocs.io/ にあります。
2010 年 8 月: Timothy Mellor がreddit_api
という github プロジェクトを作成しました。
2011 年 3 月: Python パッケージreddit
が登録され、pypi にアップロードされました。
2011 年 12 月: Bryce Boe がreddit
パッケージのメンテナを引き継ぎました。
2012 年 6 月: Bryce はプロジェクトPRAW
名前を変更し、リポジトリは GitHub 上に新しく作成された praw-dev 組織に移動されました。
2016 年 2 月: Bryce は PRAW を完全に書き直した PRAW4 の作業を開始しました。
PRAW のソース (v4.0.0+) は、Simplified BSD License に基づいて提供されています。
PRAW の以前のバージョンは GPLv3 に基づいてリリースされました。