首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

知乎爬蟲系列(三):登錄請求分析與 Follower API 逆向

     編輯:Java 綜合教學

知乎爬蟲系列(三):登錄請求分析與 Follower API 逆向

承接上篇流程設計,本文實戰分析知乎登錄接口、_xsrf Token 獲取、驗證碼處理,以及 Follower/Followee 列表 API 的參數構造與認證機制。

工具鏈

  • 瀏覽器 DevTools (F12) Network 面板
  • Fiddler / Charles 抓包分析 HTTPS 請求

登錄接口分析

  1. 打開 https://www.zhihu.com/signin,開啟 Network 面板。
  2. 輸入帳號密碼驗證碼點擊登錄,捕獲 POST 請求:
    URL: https://www.zhihu.com/login/email
    Method: POST
    Form Data: _xsrf=xxx&password=xxx&captcha=xxx&email=xxx
  3. 錯誤碼示例:
    郵箱不存在 → {"r":1, "msg":"用戶不存在"}
    密碼錯誤 → {"r":1, "msg":"密碼錯誤"}
    登錄成功 → 返回 JSON 包含用戶信息與 Cookie。

_xsrf Token 獲取

登錄頁面源碼中隱藏表單域:

<input type="hidden" name="_xsrf" value="xxxxxxxxxxxxxxxx">

每次登錄前需解析頁面獲取最新 _xsrf,或從 Cookie _xsrf 讀取。

Follower/Followee API 逆向

用戶主頁:https://www.zhihu.com/people/{url_token}/followers

滾動觸發異步請求:

GET https://www.zhihu.com/api/v4/members/{url_token}/followers?
    per_page=10&
    include=data[*].employments,cover_url,answer_count,articles_count,follower_count,gender,is_followed,badge[?(type=best_answerer)].topics&
    limit=10&
    offset=30

關鍵參數:

  • include:指定返回字段,支援 GraphQL 風格選擇器。
  • limit/offset:分頁控制。
  • 返回 JSON 包含 paging.next(下一頁 URL)與 data[](用戶列表)。

認證陷阱

直接攜帶 Cookie 請求 API 會返回 {"message":"身份未經過驗證","code":100}。
原因:請求頭多了 x-zse-83 等簽名頭,需從用戶主頁 Cookie 中提取 d_c0 等關鍵字段構造合法簽名,或使用 Selenium/Playwright 模擬瀏覽器上下文。

下一步

下篇將實現完整登錄流程、驗證碼自動識別(OCR/打碼平台)、簽名算法還原與分散式爬蟲調度。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved