Weibo(微博)API:キーワード検索、コメント、リポスト連鎖、英語翻訳
2026-10-25 時点の仕様スナップショットに基づく
要点
Weibo API は、キーワード検索の結果、1 件の投稿のコメントとリポストを非同期タスクで収集し、リポストからリポスト連鎖を遡ることもできます(depth は既定 3、最大 10)。翻訳はキーワード購読方式です。英語キーワードで購読すると、システムが直近 30 日分の投稿を遡って取得して英語の機械翻訳を付け、/weibo/translate/search、/weibo/translate/pushs、/weibo/translate/reposts で翻訳済みの投稿・コメント・リポストを取得できます。データは Weibo で公開されているコンテンツをウェブクローラーで収集したものです。
取得できるデータ
フィールドは 2026-10-25 時点の仕様スナップショットに基づきます。検索結果の投稿フィールドはスナップショットに列挙されていないため、「サンプル」と記した行は下のサンプルデータから取っています。正式なフィールドはトライアルデータでご確認ください。また、post_id や parent_id などの関連フィールドはスナップショットで必須とされていないため、実際の有無もトライアルデータでご確認ください。
| データ | フィールド | エンドポイント |
|---|---|---|
| キーワード検索の投稿(サンプル) | url, author, author_id, content, tm, datetime, metadata_tags, sentiment, like_count, comment_count, share_count | GET /weibo/search/task/{task_id} |
| 投稿のコメント | id, post_id, author, author_id, content, push_type, sentiment, tm, tm_crawler, region | GET /weibo/pushs/task/{task_id} |
| 投稿のリポスト | id, parent_id, url, author, author_id, content, datetime, tm, like_count, comment_count, share_count, sentiment, region | GET /weibo/reposts/task/{task_id} |
| リポスト連鎖(起点から元の投稿の方向へ) | data, depth, post_url, status, task | GET /weibo/repost/parent/task/{task_id} |
| 公開アカウントの投稿タイムライン | profile, timelines, task | GET /weibo/users/task/{task_id} |
| 翻訳済み投稿 | data, total_count | POST /weibo/translate/search |
| 翻訳済みコメント | id, post_id, author, author_id, content, push_type, sentiment, tm, tm_crawler, region | POST /weibo/translate/pushs |
| 翻訳済みリポスト | id, parent_id, url, author, author_id, title, content, sentiment, tm, tm_crawler, region | POST /weibo/translate/reposts |
エンドポイント一覧
Base URL は https://api.infominer.io/api/v2 です。API キーは auth-header リクエストヘッダーで送信します。* の付いたパラメーターは必須です。
| メソッド | パス | 説明 | 主なパラメーター |
|---|---|---|---|
| POST | /weibo/search/task |
キーワード検索タスクを作成します。期間と最大取得ページ数を指定できます。 | keyword* end_date max_pages start_date |
| GET | /weibo/search/task/{task_id} |
検索タスクをポーリングします。DONE になると投稿と total_count をページ単位で返します。 | task_id* page pageSize |
| POST | /weibo/pushs/task |
投稿 URL からコメント収集タスクを作成します。並び順と第 2 階層の返信を指定できます。 | post_url* crawl_second_layer get_all order_type |
| GET | /weibo/pushs/task/{task_id} |
コメントタスクをポーリングします。DONE になるとコメントを 1 ページ最大 1000 件で返します。 | task_id* page pageSize |
| POST | /weibo/reposts/task |
投稿 URL からリポスト収集タスクを作成します。 | post_url* |
| GET | /weibo/reposts/task/{task_id} |
リポストタスクをポーリングします。DONE になると parent_id 付きのリポストを返します。 | task_id* page pageSize |
| POST | /weibo/repost/parent/task |
リポストから上位へ連鎖を遡ります。未保存の上位投稿は自動で取得します。 | post_url* depth |
| GET | /weibo/repost/parent/task/{task_id} |
リポスト連鎖タスクをポーリングします。DONE または PARTIAL でその時点までの連鎖と投稿数を返します。 | task_id* |
| POST | /weibo/users/task |
アカウント ID と期間を指定して、公開アカウントの投稿タイムラインのタスクを作成します。 | author_id* endDate* startDate* |
| GET | /weibo/users/task/{task_id} |
タイムラインタスクをポーリングします。DONE になると profile と timelines を返します。 | task_id* |
| POST | /weibo/translate/search |
購読キーワードの翻訳済み投稿を、期間・並び順・ページを指定して検索します。 | endDate* page* sorted* startDate* dateType keywords pageSize request_id |
| POST | /weibo/translate/pushs |
post_id を指定して、1 件の投稿の翻訳済みコメントを返します。 | post_id* page pageSize |
| POST | /weibo/translate/reposts |
post_id を指定して、元の投稿 1 件の翻訳済みリポストを返します。 | post_id* page pageSize request_id |
データ取得の流れ
- POST /weibo/search/task に keyword(必須)と任意の start_date、end_date、max_pages を指定します。レスポンスにはタスク id とステータス(スナップショットの例では INIT)が含まれます。
- GET /weibo/search/task/{task_id} でポーリングします。ステータスが DONE になると、同じレスポンスに投稿(data)と total_count が含まれ、page と pageSize(最大 100)でページングします。FAILED なら停止して失敗に対処します。
- 詳しく見たい投稿については、投稿 URL からコメントタスク POST /weibo/pushs/task(order_type は hot、time、both、crawl_second_layer で第 2 階層の返信を含めるか指定)またはリポストタスク POST /weibo/reposts/task を作成し、それぞれポーリングします。
- リポストの出どころを調べるには、POST /weibo/repost/parent/task に post_url と depth を指定します。データベースにない上位の投稿は自動で取得され、DONE または PARTIAL のときに、取得できた連鎖を起点から元の投稿の方向に並べて返します。
- 翻訳データ:導入時に英語キーワードの購読を設定すると、システムが直近 30 日分の投稿を遡って取得し英語に翻訳します。その後 POST /weibo/translate/search で期間と並び順を指定して翻訳済み投稿を検索し、post_id で翻訳済みコメントとリポストを取得します。
curl の例
キーワード検索タスクを作成
curl -X POST https://api.infominer.io/api/v2/weibo/search/task \
-H "auth-header: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"keyword": "手冲咖啡", "start_date": "2026-06-01", "end_date": "2026-06-30", "max_pages": 3}'
タスク ID でポーリング
curl "https://api.infominer.io/api/v2/weibo/search/task/$TASK_ID?page=1&pageSize=100" \
-H "auth-header: YOUR_API_KEY"
翻訳済み投稿を検索(購読済みキーワード)
curl -X POST https://api.infominer.io/api/v2/weibo/translate/search \
-H "auth-header: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"keywords": "coffee OR latte", "startDate": "2026-06-01 00:00:00", "endDate": "2026-06-30 23:59:59", "dateType": "post_time", "sorted": "tm", "page": 1, "pageSize": 50}'
サンプル JSON
以下は手作業で作成したサンプルデータ(架空)です。アカウントは sample_user_n、ID は明らかな仮の値で、実在の投稿ではありません。
タスク作成時のレスポンス:サンプルデータ(架空)
{
"id": "00000000-0000-4000-8000-000000000001",
"keyword": "手冲咖啡",
"status": "INIT"
}
タスク完了後のポーリングレスポンス:サンプルデータ(架空)
{
"keyword": "手冲咖啡",
"status": "DONE",
"total_count": 2,
"task": {
"id": "00000000-0000-4000-8000-000000000001",
"status": "DONE"
},
"data": [
{
"source": "weiboblog",
"platform": "weibo",
"url": "https://m.weibo.cn/detail/0000000000000001",
"author": "sample_user_1",
"author_id": "0000000000000001",
"content": "周末在巷子里的咖啡店试了新豆子,酸度很柔和,推荐给喜欢浅焙的朋友 #手冲咖啡",
"tm": 1781056800,
"datetime": "2026-06-10 10:00:00",
"type": [],
"metadata_tags": [
"手冲咖啡"
],
"sentiment": "Positive",
"like_count": 12,
"comment_count": 3,
"share_count": 1
},
{
"source": "weiboblog",
"platform": "weibo",
"url": "https://m.weibo.cn/detail/0000000000000002",
"author": "sample_user_2",
"author_id": "0000000000000002",
"content": "整理了三间适合下午工作的咖啡店,插座和座位都在文末清单",
"tm": 1781060400,
"datetime": "2026-06-10 11:00:00",
"type": [],
"metadata_tags": [
"咖啡店",
"下午茶"
],
"sentiment": "Neutral",
"like_count": 5,
"comment_count": 0,
"share_count": 0
}
]
}
投稿とコメントの関連付け
コメントとリポストのタスクはどちらも投稿 URL(post_url)から作成します。コメントレコードは post_id フィールドで所属する投稿を、リポストレコードは parent_id フィールドでリポスト元の投稿を指します。リポスト連鎖タスクは逆方向で、1 件のリポストから上位へのリンクをたどって元の投稿の方向へ遡り、上位リンクがなくなるか depth の上限に達すると止まるため、元の投稿まで届くとは限りません。返す配列は起点の投稿から元の投稿の方向に並び、depth は実際に取得できた投稿数です。翻訳系エンドポイントも同じ関係を保ち、翻訳済みコメントには post_id、翻訳済みリポストには parent_id フィールドがあります。
取得期間と制限
- 翻訳はキーワード購読方式です。英語キーワードを購読すると、直近 30 日分の投稿を遡って取得し英語の機械翻訳を付けます。翻訳されるのは購読キーワードに該当する投稿のみで、任意の投稿をその場で翻訳するものではありません。
- 英語キーワードは中国語の検索語に変換してから収集し、翻訳は機械翻訳です。
- リポスト連鎖の depth は既定 3、最大 10 です。
- ページサイズの上限:検索結果とリポストは 100、コメントは 1000、翻訳済みコメントは 1000、翻訳済みリポストは 100。
- キーワード検索で遡れる期間、1 回あたりの件数、更新頻度はプロジェクトの範囲に応じて確認します。
納品形式
すべてのエンドポイントは JSON を返します。タスク型は DONE 後のポーリングレスポンスにデータが含まれ、翻訳系は検索型で data と total_count を直接返します。バッチファイルなど他の納品方法はプロジェクトの範囲に応じて確認します。
トライアルの申し込み
下のフォームで Weibo を選び、追跡したいキーワード(中国語、または翻訳購読用の英語)、コメント・リポスト・リポスト連鎖の要否、想定データ量をお知らせください。範囲を確認し、トライアルと API キーの進め方についてご連絡します。
よくある質問
- Weibo API は英語キーワードで検索できますか?
- はい、キーワード購読方式で対応します。導入時に英語キーワードを購読すると、該当する直近 30 日分の投稿を遡って取得し英語の機械翻訳を付け、/weibo/translate/search で検索できます。検索はすでに生成された翻訳データを読み出すもので、任意の投稿の翻訳を起動するものではありません。対象範囲は導入時に確認します。
- Weibo のリポストの出どころをたどるには?
- POST /weibo/repost/parent/task にそのリポストの URL と depth(既定 3、最大 10)を指定します。完了すると、取得できた連鎖をそのリポストから元の投稿の方向に並べて返します。上位リンクがなくなるか depth の上限に達すると止まります。
- コメントに第 2 階層の返信を含められますか?
- はい。コメントタスク作成時に crawl_second_layer を true にすると第 2 階層の返信も収集します。既定は false です。
- Weibo のデータはどのように収集していますか?
- Weibo で公開されているコンテンツをウェブクローラーで収集しています。ご利用目的に適するかどうかは、用途と法域に応じて買い手側の法務部門でご判断ください。収集元と収集方法の説明はご提供できます。
- Weibo のデータはどのくらい遡れますか?
- 翻訳データは購読後に直近 30 日分を遡って取得します。キーワード検索タスクの範囲はプロジェクトの範囲に応じて確認します。