Reddit Scraping
JA

ホームドキュメント

アーカイブ検索のルートと応答を正しく扱う

GETルート、二つの認証ヘッダー、UTCの日付、ページ上限と合計の意味を解説。HTTP 400、401、402、429の対応と課金の違いも確認できます。

最初のリクエスト

サーバーからリクエストを送信し、APIキーを非公開にしてください。

cURL
curl --fail-with-body \
  -H "Authorization: Bearer ${REDDIT_API_KEY}" \
  "https://api.redditscraping.com/v1/posts?subreddit=webscraping&limit=3"

APIリファレンス

↔ 表を横にスクロールできます

APIエンドポイント

メソッドエンドポイントパラメータ
GET/v1/searchq, subreddit, author, kind, from, to, min_score, limit, page
GET/v1/postsq, subreddit, author, kind, from, to, min_score, limit, page
GET/v1/commentsq, subreddit, author, kind, from, to, min_score, limit, page
GET/v1/itemid
GET/v1/subredditsprefix, limit
GET/v1/status—

クエリパラメータ

パラメータ値・型・範囲
qtext
subredditkeyword
authorkeyword
kindpost | comment
fromISO date
toISO date
min_scoreinteger
limit1–100
page1–100
iditem ID
prefixsubreddit prefix

ルートと認証を選ぶ

ベースURLはhttps://api.redditscraping.comです。GET /v1/searchは投稿とコメントの検索、/v1/postsは投稿、/v1/commentsはコメントの取得に使います。GET /v1/item?id=...は識別子で一件を要求するルートです。idはitem専用であり、postsやcommentsのクエリには使用しません。GET /v1/subreddits?prefix=...はコミュニティ名の先頭部分で検索し、limitで要求件数を制限できます。

取得リクエストにはAuthorization: Bearer YOUR_API_KEYまたはX-API-Key: YOUR_API_KEYを送信してください。どちらも利用できます。実際のキーを公開例やURLに含めず、サーバー側の秘密設定から読み込みます。アカウントパネルのSecure HttpOnlyセッションCookieは別の用途であり、取得用ヘッダーの代わりにはなりません。キーはこのドメイン専用です。

GET /v1/statusは公開されており、クレジットを消費しません。固定のサービス範囲の説明と、HTTPアプリケーションが応答することを示します。アーカイブの接続先、記録の有無、クエリの動作、残高は検査しません。statusが成功しても、実際のデータ取得の成功を予測する根拠にはできません。取得リクエスト自体の応答を個別に処理してください。

絞り込みとページ処理

検索、投稿、コメントのクエリではq、subreddit、author、kind、from、to、min_score、limit、pageを使って条件を指定できます。kindの値はpostまたはcommentです。日付はUTC基準のYYYY-MM-DD形式で、toに指定した日を含みます。min_scoreは最低スコアのフィルターであり、並べ替え指定ではありません。parent_idとlink_idはクエリフィルターとして使用できません。

一回に最大100件、一つのクエリで最大100ページまで要求できます。各ページは個別のリクエストです。結果はアーカイブ文書順で、時系列、関連度順、スコア順ではありません。期間を細かく区切ることは作業の整理に役立つ場合がありますが、全件取得や一意な結果の証明にはなりません。保存したページと条件は、クライアント側で記録してください。

合計はページ数ではなく記録数を表します。eqは正確な合計、gteは下限、unknownやnullは信頼できる合計がないことを示します。正確な合計があっても、クライアントが全件を保存できたことまでは証明しません。コミュニティ集計の件数も全体に対して正確とは限りません。分析では、実際に受信した記録の範囲と合計の意味を分けて説明する必要があります。

応答は平坦な記録です。読む、数える、分類するといった処理に会話ツリーの構築は必須ではありません。関係を調べる場合は、parent_idやlink_idが存在するときにローカルでまとめることができます。ただし任意の処理であり、欠落した親やコメントを復元するものではありません。フィールドの存在から完全な会話を得られるとは判断しないでください。

エラーとクレジットを区別する

HTTP 400ではパラメーターの形式や値を確認します。HTTP 401はキーの不足または無効、HTTP 402は残高不足、HTTP 429はリクエスト頻度の制限を示します。原因ごとに設定を修正するか送信を待つかを判断してください。同じリクエストを直ちに繰り返すだけでは、無効なキーや不正な条件は解決しません。

空の結果を含め、成功した取得は一クレジットを消費します。不正なリクエストは引き落とされず、上流の障害時は予約分が戻されます。一方、クライアントの通信切断では、サーバー側の有料の成功を見落とす場合があります。その後の成功した再試行は別途課金されます。クライアントに表示された通信エラーだけで、費用が発生していないと判断しないでください。