AI Social API
更新於 2026-10-10 · Chad · 主題:香港論壇

LIHKG 爬蟲冇官方文件:分台列表/關鍵字搜尋/單帖留言三種模式要分開刻,自己寫 vs 用現成 actor

一句話: LIHKG 冇官方 API 文件,自己刻 lihkg 爬蟲之前,要先搞清楚分台列表、關鍵字搜尋、單帖留言三種模式各自嘅輸入輸出同分頁機制完全唔一樣,唔係一套邏輯就打得三種端點——定係直接用已經處理好呢啲坑嘅現成 actor。

本文含 Apify 推薦連結(不影響你的費用)。文中的成本與比較都據實列出,包含 Apify 不划算的情況。

連登冇官方 API 文件,你面對嘅係乜

連登(LIHKG)作為香港最大嘅討論區之一,一直都冇發布過正式嘅開發者 API 文件。開發者社群要攞資料,靠嘅係逆向工程佢個未公開支援嘅 api_v2 JSON 端點——GitHub 上就有人專門紀錄點計算佢驗證要求嘅 x-li-digest signature,而且討論中途已經改過一次計算方式,即係話舊方法隨時可能失效,冇任何官方承諾會保持穩定。

目前公開讀取主題列表、搜尋同留言呢幾個端點唔需要帳號或驗證 header,但呢個狀態冇保證——連登隨時可能加上 X-LI-DEVICE 之類嘅驗證要求,或者乾脆擋資料中心出口 IP。想自己刻一套 lihkg 爬蟲嘅開發者,第一步要先搞清楚自己要攞嘅係哪一種資料形狀,因為三種模式嘅坑完全唔同,唔可以一套分頁邏輯打三種端點。

三種模式,資料形狀完全唔同

分台列表(thread-list)關鍵字搜尋(search)單帖留言(thread)
輸入catIds(分台ID,可填 all 展開全部 37 個可發文分台)keywords(送去全站搜尋查詢)threadIds / threadUrls
輸出主題列表,content 為 null,只有標題與元資料搜尋結果,格式同列表一樣但不限分台主文全文 + 全部留言(留言用 floor 樓層編號)
排序/過濾可用 keywords 做標題過濾(不擴大範圍)order:最新回覆/最新發文/相關度三選一可用 maxReplies 限制每串抓幾個樓層
計費search-listing,$0.002/篇search-listing,$0.002/篇主文 product-detail $0.008/篇 + 留言 review-item $0.003/則
用途掃描指定分台有咩新主題跨分台監控品牌/產品關鍵字深挖單一熱門討論串嘅完整對話

最容易搞混嘅係 keywords 呢個欄位喺兩個模式入面行為完全唔同:search 模式送去連登全站搜尋,回傳嘅係搜尋結果;thread-list 模式嘅 keywords 只係喺已經攞到嗰個分台列表裡面做標題過濾,唔會幫你擴大到其他分台。自己刻嘅時候,呢兩個同名唔同義嘅參數好容易寫錯。

自己刻 vs 用現成 actor,差喺邊幾樣

想自己刻,以下幾樣係避唔開嘅工程問題:

分頁停止判斷——連登嘅列表同搜尋端點都要翻頁攞齊資料,但唔可以無限翻到底:翻到舊資料、重複資料就應該停,否則會空轉燒 request、甚至觸發限流。排程監控時仲要配合時間過濾(例如只要「呢個時間之後有新動靜」嘅主題),一過咗門檻就提早停止翻頁,唔使逐次由頭攞晒。

樓層編號唔連續——單帖留言模式攞返嘅留言用 floor(樓層)編號,但刪咗嘅留言唔會喺輸出入面出現,所以「攞頭 N 個樓層」唔等於「攞到 N 則留言」,實際筆數可能略少於 N。自己刻嘅時候如果假設樓層數等於回覆總數,計費同資料量都會估錯。

HTML 要自己清理——留言原始內容夾雜 <br>、<img>、<span> 之類嘅 HTML 標籤同埋 HTML 實體(&amp;、&lt;),要自己寫邏輯剝標籤、解碼實體先變成乾淨嘅純文字,唔係直接拎到就係可讀文字。

未來反爬風險冇得預先解決——連登目前對公開讀取端點冇要求驗證 header,但呢個狀態可以隨時改變;GitHub 上已經有人逆向工程過佢私有 API 用嘅 x-li-digest 簽名機制,可見連登本身有能力加驗證層。自己刻嘅爬蟲一旦遇到呢種升級,要重新逆向工程;靠現成 actor 嘅好處係有人持續盯緊呢個風險,壞咗會第一時間知道,唔用自己日日去查連登有冇改版。

決定點揀,睇呢三樣:

  1. 規模——一次性、單一分台、小量資料,自己寫幾個鐘通常搞得掂,冇必要為咗一次性需求去維護一套爬蟲。
  2. 頻率——要長期排程、監控多個分台或多個關鍵字,上面四個坑全部要自己處理一次,仲要長期維護。
  3. 反爬容忍度——如果連登升級驗證機制,自己刻嘅方案要自己重新逆向工程;用現成工具嘅話呢層風險由工具方持續監控。

實際要花多少

三種模式分項計費:

事件單價適用
search-listing(列表/搜尋每篇)$0.002分台列表、關鍵字搜尋
product-detail(單帖主文每篇)$0.008單帖留言模式嘅主文
review-item(留言每則)$0.003單帖留言模式嘅每則回覆

熱門長帖留言數可以過千,單帖留言模式嘅花費會跟住留言數上升——如果只想要一個大概印象、唔需要全部留言,先用分台列表或搜尋模式掃一輪,再揀真正值得深挖嘅主題跑單帖留言,比每個主題都全文全留言攞一次划算。

三條路,挑一條開始

FAQ

LIHKG 有冇官方公開嘅 API? 冇。連登官方從來沒有發布正式嘅開發者 API 文件,開發者社群長期要靠逆向工程佢個 api_v2 JSON 端點攞資料——GitHub 上甚至有人專門紀錄點計算佢驗證用嘅 x-li-digest signature,而嗰套計算方式討論中途已經改過一次,舊方法隨時可能失效。

分台列表、關鍵字搜尋、單帖留言三種模式,輸入輸出有咩唔同? 分台列表(thread-list)填分台 ID(catIds),攞返主題列表,content 欄位係 null,淨係得標題同元資料;關鍵字搜尋(search)填 keywords,送去連登全站搜尋查詢,回傳格式同列表一樣但唔限分台;單帖留言(thread)填 threadIds 或 threadUrls,攞返主文全文加全部留言,留言用 floor 樓層編號,呢個同前兩種模式嘅資料形狀完全唔同。

search 模式嘅 keywords 同 thread-list 模式嘅 keywords 有咩分別? search 模式嘅 keywords 係送去連登全站搜尋嘅查詢字,回傳嘅係搜尋結果,唔限分台;thread-list 模式嘅 keywords 只係喺已經攞到嗰個分台列表裡面做標題過濾,唔會擴大搜尋範圍,兩個名字一樣但行為完全唔同,自己刻嘅時候好容易混埋一齊。

自己刻 lihkg 爬蟲一定會踩到咩坑? 幾個:幾時停止翻頁先唔會空轉燒 request;單帖留言嘅樓層編號因為刪帖會唔連續,唔可以假設樓層數等於回覆總數;留言 content 原始 HTML 要自己剝標籤同解碼實體先變純文字;仲有連登官方隨時可能加驗證 header 或者開始擋資料中心 IP 嘅風險,呢個冇得預先解決,只能靠持續監控同備援方案。

三種模式點計費? 分台列表同關鍵字搜尋都係每篇 $0.002;單帖留言模式嘅主文每篇 $0.008,留言另外每則 $0.003,熱門長帖留言數可以過千,計費會跟住留言數上升;另外平台對每次 run 收一次性嘅啟動費 $0.005,呢個係 Apify 自動收嘅,唔係 actor 程式碼自己計。

咩時候應該自己刻,咩時候直接用現成 actor? 一次性、單一分台、小量研究,自己刻幾個鐘通常做得到;但要排程長期監測多個分台或多個關鍵字,自己刻就要重新處理翻頁停止判斷、樓層去重、HTML 清理,仲要自己承擔未來連登加反爬驗證嘅升級風險;現成 actor 已經處理呢堆工程問題,而且每日有 canary 監控,壞咗會第一時間知道。

延伸閱讀


作者 Chad 實際經營 30 多隻上架 Apify actor(含本文用到嘅 LIHKG-scraper),文中關於連登 api_v2 冇官方文件同社群逆向工程嘅說法對照 GitHub 上公開嘅逆向工程紀錄,actor 嘅模式、欄位與計費數字對照 actor 自己嘅 input schema 與 store 頁,查不到來源嘅嘢呢篇唔會寫。