微博 API:關鍵字搜尋、留言、轉發鏈與英譯資料
依 2026-10-25 規格快照
快速解答
微博 API 以非同步任務蒐集關鍵字搜尋結果、單則貼文的留言與轉發,並可由一則轉發往上回溯轉發鏈(depth 預設 3、最多 10)。英譯資料採關鍵字訂閱:以英文關鍵字訂閱後,系統回補近 30 天的貼文並提供英文機器翻譯,再以 /weibo/translate/search、/weibo/translate/pushs、/weibo/translate/reposts 查詢英譯貼文、留言與轉發。資料以網路爬蟲蒐集微博公開發布的內容。
可取得的資料
欄位依 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,每個請求以 auth-header 標頭帶 API 金鑰。主要參數中標示 * 者為必填。
| 方法 | 路徑 | 說明 | 主要參數 |
|---|---|---|---|
| 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 |
以貼文網址建立留言蒐集任務,可選排序與是否含第二層回覆。 | post_url* crawl_second_layer get_all order_type |
| GET | /weibo/pushs/task/{task_id} |
輪詢留言任務;DONE 時回傳留言,每頁最多 1000 筆。 | task_id* page pageSize |
| POST | /weibo/reposts/task |
以貼文網址建立轉發蒐集任務。 | 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 取得一則貼文的英譯留言。 | post_id* page pageSize |
| POST | /weibo/translate/reposts |
以 post_id 取得一則主貼文的英譯轉發。 | 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 時停止並處理失敗。
- 對要深入的貼文,以貼文網址建立留言任務 POST /weibo/pushs/task(order_type 可選 hot、time、both,crawl_second_layer 決定是否連同第二層回覆)或轉發任務 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
}
]
}
貼文與留言如何關聯
留言與轉發任務都以貼文網址 post_url 建立。留言紀錄以 post_id 欄位指回所屬貼文,轉發紀錄以 parent_id 欄位指回被轉發的主貼文。轉發鏈任務方向相反:從一則轉發沿著上層連結往原文方向回溯,沒有上層連結或達到 depth 上限時停止,因此不保證一定回溯到原文;回傳陣列由起點貼文往原文方向排列,depth 欄位是實際取得的貼文數。英譯端點沿用同樣的關聯,英譯留言有 post_id 欄位,英譯轉發有 parent_id 欄位。
歷史範圍與限制
- 英譯資料採關鍵字訂閱:以英文關鍵字訂閱後,系統回補近 30 天的貼文並提供英文機器翻譯。只有已訂閱關鍵字涵蓋的貼文有英譯,不是對任意貼文隨選翻譯。
- 英文關鍵字會先轉成中文檢索詞再蒐集;翻譯為機器翻譯。
- 轉發鏈回溯的 depth 預設 3、最多 10。
- 分頁上限:搜尋結果與轉發 pageSize 最多 100,留言 pageSize 最多 1000;英譯留言最多 1000、英譯轉發最多 100。
- 關鍵字搜尋可回溯的期間、每次可取得的數量與更新頻率,依專案範圍確認。
交付格式
所有端點回傳 JSON。任務型端點在 DONE 後由輪詢回應帶回資料;英譯端點是查詢型,直接回傳 data 與 total_count。批次檔案或其他交付方式,依專案範圍確認。
申請試用
在下方表單勾選微博,說明要追的關鍵字(中文或英文訂閱)、是否需要留言、轉發與轉發鏈,以及預估資料量。我們會確認範圍,並回覆試用與 API 金鑰的安排。
常見問題
- 微博 API 可以用英文關鍵字查詢嗎?
- 可以,採關鍵字訂閱:開通時以英文關鍵字設定訂閱,系統回補近 30 天的相關貼文並提供英文機器翻譯,之後以 /weibo/translate/search 查詢。查詢只讀取已產生的英譯資料,不會對任意貼文觸發翻譯;可涵蓋的範圍於開通時確認。
- 怎麼追一則微博轉發是從哪裡轉來的?
- 以 POST /weibo/repost/parent/task 帶該轉發的網址與 depth(預設 3、最多 10),完成後回傳已取得的轉發鏈,由這則轉發往原文方向排列;沒有上層連結或達到 depth 上限時停止。
- 留言可以包含第二層回覆嗎?
- 可以。建立留言任務時把 crawl_second_layer 設為 true,即一併蒐集第二層回覆,預設為 false。
- 微博資料是怎麼蒐集的?
- 以網路爬蟲蒐集微博公開發布的內容。是否適用於您的用途,依用途與法域由買方法務評估,我們可提供來源與蒐集方式說明。
- 微博資料可以回溯多久?
- 英譯資料為訂閱後回補近 30 天;關鍵字搜尋任務的回溯範圍依專案範圍確認。