Redditのスレッドを貼り付けると、投稿と上位25件のコメントを1回のリクエストで取得でき、料金は1ページ分です。Reddit APIキーも承認も不要で、読み込みに失敗したページは無料です。
無料リクエスト1,000件 · 課金は成功時のみ · 195以上の国 · Claude対応
チームについて簡単にご記入いただくと、次の内容をお届けします。
Redditのスレッドページには投稿と上位25件のコメントが載っており、Web Unlockerは1ページとして課金します。ApifyのRedditコメントスクレイパーは、投稿とすべてのコメントをそれぞれ1行として課金します。
1ページで25コメント。
4ページで100コメント。
同じスレッドをベスト、新着、トップ、古い順で開くと、順序ごとにページが1つ増え、別の25件のコメントが得られます。コメント個別のページを開くと、その返信が得られます。
コメント25件付きスレッド1,000件の料金
投稿1,000件とコメント25,000件、公開価格で
Apifyで最も使われている3つのRedditスクレイパーは、投稿とコメントをそれぞれ1行として課金します。Freeプランでは26,000行です。
RedditのパブリックAPIは2027年3月までに終了し、Redditスクレイパーはコメントごとに課金します。同じ1,000スレッドを取得する場合に、各方法で必要になるものは次のとおりです。
| 必要なもの | Reddit Data API | Apify | Bright Data | |
|---|---|---|---|---|
| Redditの承認なしで開始 | あり | なし | あり | あり |
| 課金の対象 | 1ページ | APIコール1回 | 投稿とコメントごと | レコードごと |
| コメント25件付きスレッド1,000件 | $0.98 | 契約ベースのみ | $15.53〜$104 | 1,000レコードあたり$1.50 |
| ページ全体をHTMLまたはMarkdownで | あり | なし | なし | なし |
| ビジネス利用でも無料で開始 | あり | なし | あり | あり |
Reddit以外もスクレイピングしますか?Web Unlockerなら、どのページも同じ方法、同じ料金で返します。
Web Unlockerに通知機能はありません。スクリプトがサブレディットの最新投稿を好きな頻度で取得し、1回のチェックは1ページ分です。1日96回のチェックで月$2.82になります。
Syftenの通知は月$29.95から。
自作のチェックは1回$0.001です。
サブレディットへの通常のリクエストは空で返ってきます。Redditは投稿をブラウザ上で描画するためです。Web Unlockerは本物のブラウザでページを読み込み、27件の投稿すべてを含めて返します。
上のフォームにご記入ください。キーは1営業日以内にメールで届きます。
コメントならスレッド、新着投稿なら新着順のサブレディット、キーワードなら検索を選びます。
ページ上のすべての投稿とコメントに、投稿者、スコア、時間、本文が付いています。
pip install requestsGOLOGIN_SCRAPING_API_KEY=your_key python reddit_thread.pyhttps://parsing.webunlocker.gologin.com/v1/scrapeimport html as entities
import json
import os
import re
import time
import requests
thread = "https://www.reddit.com/r/marketing/comments/1x6ko90/why_the_marketing_department_is_about_to_disappear/"
def scrape(url):
for attempt in range(3):
response = requests.get(
"https://parsing.webunlocker.gologin.com/v1/scrape",
params={"url": url, "geo": "us", "format": "json"},
headers={"apikey": os.environ["GOLOGIN_SCRAPING_API_KEY"]},
timeout=90,
)
page = response.json().get("data", {}).get("html", "") if response.ok else ""
if "<shreddit-comment" in page:
return page
time.sleep(5)
raise RuntimeError("No comments came back, try again later")
def attr(tag, name):
match = re.search(rf'\s{name}="([^"]*)"', tag)
return entities.unescape(match.group(1)) if match else None
def text(page, element_id):
start = page.find(f'id="{element_id}"')
end = page.find("</div>", start)
paragraphs = re.findall(r"<p>(.*?)</p>", page[start:end], re.S)
return "\n".join(entities.unescape(re.sub(r"<[^>]+>|\s+", " ", p)).strip() for p in paragraphs)
page = scrape(thread)
post = re.search(r"<shreddit-post\b[^>]*>", page).group(0)
comments = {}
for tag in re.findall(r'<shreddit-comment\b[^>]*thingid="t1_[^>]*>', page):
comment_id = attr(tag, "thingid")
comments[comment_id] = {
"author": attr(tag, "author"),
"score": attr(tag, "score"),
"depth": attr(tag, "depth"),
"text": text(page, f"{comment_id}-comment-rtjson-content"),
}
print(json.dumps({
"title": attr(post, "post-title"),
"score": attr(post, "score"),
"upvote_ratio": attr(post, "upvote-ratio"),
"comments_on_reddit": attr(post, "comment-count"),
"comments": list(comments.values()),
}, indent=2, ensure_ascii=False))GOLOGIN_SCRAPING_API_KEY=your_key node reddit-watch.mjshttps://parsing.webunlocker.gologin.com/v1/scrapeconst subreddit = 'SaaS';
const keywords = ['marketing', 'pricing', 'launch'];
async function scrape(url) {
for (let attempt = 1; attempt <= 3; attempt++) {
const params = new URLSearchParams({ url, render_js: 'true', wait: '5000', geo: 'us', format: 'json' });
const response = await fetch(`https://parsing.webunlocker.gologin.com/v1/scrape?${params}`, {
headers: { apikey: process.env.GOLOGIN_SCRAPING_API_KEY },
});
const page = response.ok ? (await response.json()).data?.html : '';
if (page?.includes('<shreddit-post')) return page;
await new Promise((resolve) => setTimeout(resolve, 5000));
}
throw new Error('No posts came back, try again later');
}
const page = await scrape(`https://www.reddit.com/r/${subreddit}/new/`);
const attr = (tag, name) => tag.match(new RegExp(`\\s${name}="([^"]*)"`))?.[1]?.replaceAll('&', '&').replaceAll(''', "'").replaceAll('"', '"');
const posts = new Map();
for (const [tag] of page.matchAll(/<shreddit-post\b[^>]*post-title=[^>]*>/g)) {
posts.set(attr(tag, 'permalink'), {
title: attr(tag, 'post-title'),
posted: attr(tag, 'created-timestamp'),
comments: attr(tag, 'comment-count'),
url: `https://www.reddit.com${attr(tag, 'permalink')}`,
});
}
const mentions = [...posts.values()].filter((post) => keywords.some((word) => post.title.toLowerCase().includes(word)));
console.log(`${posts.size} new posts in r/${subreddit}, ${mentions.length} mention your keywords`);
console.table(mentions);GOLOGIN_SCRAPING_API_KEY=your_key node reddit-markdown.mjshttps://parsing.webunlocker.gologin.com/v1/scrapeimport { writeFileSync } from 'node:fs';
const thread = 'https://www.reddit.com/r/marketing/comments/1x6ko90/why_the_marketing_department_is_about_to_disappear/';
async function scrape(url) {
for (let attempt = 1; attempt <= 3; attempt++) {
const params = new URLSearchParams({ url, geo: 'us', format: 'markdown' });
const response = await fetch(`https://parsing.webunlocker.gologin.com/v1/scrape?${params}`, {
headers: { apikey: process.env.GOLOGIN_SCRAPING_API_KEY },
});
const markdown = response.ok ? await response.text() : '';
if (markdown.includes('# Comments Section')) return markdown;
await new Promise((resolve) => setTimeout(resolve, 5000));
}
throw new Error('No comments came back, try again later');
}
const markdown = await scrape(thread);
const comments = markdown.slice(markdown.indexOf('# Comments Section'));
writeFileSync('thread.md', comments);
console.log(`thread.md: ${Math.round(comments.length / 1024)} KB of comments, ready for your model`);
console.log(comments.slice(0, 600));ご自身のスレッドで実行しますか?APIキーと無料リクエストを入手しましょう。
Web Unlockerが取得するのは、ページの上位25件のコメントです。Cloud BrowserはRedditを本物のブラウザで開き、クリックし続けます。5階層の深さまで、95秒で286件のコメントです。
「返信をもっと見る」をすべて自動でクリックします。1ページに25件のスレッドで、95秒で286件のコメントです。
人と同じようにサブレディットをスクロールし、90秒で576件の投稿を、2月まで遡って取得します。
プロファイルがセッションを保持するため、次の実行ではすぐにRedditが開きます。レジデンシャルIP込み。
Playwright、PuppeteerまたはClaudeから実行できます。Cloud Browserを見る。
1つのアカウント、1つのプロキシネットワーク、1つのエコシステム。用途に合った製品をお選びください。
ほかのストアもスクレイピングしますか?Amazon、eBay、Walmartのスクレイパー、またはすべてのWebスクレイピングツールをご覧ください。
RedditのページのアドレスをWeb Unlockerに送ります。スレッド、サブレディット、検索のいずれでも構いません。本物のブラウザでページを開いて返し、ページ上のすべての投稿とコメントについて、投稿者、スコア、時間、本文が取得できます。上のコードがまさにその処理です。
スレッドのページをスクレイピングします。投稿と上位25件のコメントが載っており、料金は1ページ分です。スレッドを新着、トップ、古い順で並べ替えるたびに25件ずつ追加で取得でき、コメント個別のページを開けばその返信が取得できます。
requestsライブラリでスレッドのアドレスをWeb Unlockerに送り、ページからコメントを読み取ります。上のPythonタブは完全なスクリプトで、実際のAPIでテスト済みです。
はい。スレッド、サブレディット、検索は、ログインなしで読み込める公開ページです。Web Unlockerは訪問者のブラウザと同じ見え方でページを返すため、Reddit APIキーも承認も不要です。古い.jsonアドレスと旧Redditはサインインを求めますが、通常のreddit.comのページは求めません。
登録済みの非商用アプリのみ無料です。商用利用にはRedditの承認と契約が必要です。Redditは料金を公開しておらず、最後に公表された2023年のレートは、5,000万コールで$12,000でした。
Redditに登録していないアプリは2027年1月12日からAPIにアクセスできなくなり、パブリックAPIへのアクセスは2027年3月までに終了します。Redditのページは公開されたままで、Web Unlockerはそのページを読み取ります。
公式のものはありません。Redditをコピーするアーカイブは投稿の反映が遅れ、直近の投票数を取りこぼします。Web UnlockerはReddit自体を読み取るため、投稿のスコアはスクレイピングした時点のものです。
はい、ページごとに取得します。1ページに約25件の投稿が並び、次のページは同じ料金でリクエストがもう1回増えるだけです。Redditは一覧を約1,000件で打ち切るため、それ以上は検索語や期間で分割してください。
はい。キーワードを付けたreddit.com/searchのアドレスを、新着順またはトップ順、投稿またはコメントを指定して送り、結果をページごとにたどります。
Web Unlockerが返すのは表ではなくページなので、取得前に何も削られません。CSVへの変換は数行のコードか、1回のプロンプトで済みます。Gologin scraping skillを使ってページをClaudeに渡し、CSVを依頼してください。
1,000ページあたり$1未満で、どのページも同じ料金です。上位25件のコメント付きスレッドは1ページなので、1,000スレッドで約$1です。読み込みに失敗したページは無料です。プランは50,000リクエストで月$49からです。
はい、まずは無料で試せます。Web Unlockerには1,000件の無料リクエストが付き、上位コメント付きのスレッド1,000件に相当します。
目的によります。ApifyとBright Dataは完成した行を提供し、すべての投稿とコメントに課金します。Web Unlockerは、Redditのページ全体を1つの料金で返すため、コメントはスレッドと一緒に届き、自分の方法で解析できます。
スレッド、サブレディット、検索は、ログインなしで読み込める公開ページです。Web Unlockerは訪問者のブラウザと同じようにページを読み込んで返します。何を収集し、どう使うかはお客様の判断ですので、プロジェクトに適用されるルールに照らして確認してください。
チームについて簡単にご記入いただくと、次の内容をお届けします。