Chrome DevTools Network 頁面登入請求「一閃而過」,抓不到 POST 資料。
| 工具 | 特點 | 適用場景 |
|---|---|---|
| Fiddler Classic / Everywhere | Windows/macOS/Linux,系統級代理,可解密 HTTPS,支援斷點修改、重播 | 最通用、教學資源最多 |
| Charles Proxy | 跨平台,UI 友善,序列化/重播強大 | Mac 開發者首選 |
| mitmproxy | 命令列/互動式,Python 腳本擴充,免費開源 | 自動化測試、CI/CD 整合 |
| Chrome DevTools (Preserve log + 按發起者分組) | 免安裝,但無法攔截修改 | 快速檢視 |
127.0.0.1:8888 (或用 Fiddler 自動設定)。POST /login/...,點選 Inspectors → WebForms 查看表單欄位,Raw 查看完整 Header/Body。import requests
from urllib.parse import urlencode
session = requests.Session()
session.headers.update({
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
'Referer': 'https://www.zhihu.com/signin',
'Origin': 'https://www.zhihu.com'
})
# 1. 取得 _xsrf / 驗證碼 / 簽名 等動態參數 (需分析具體流程)
# 知乎現行登入極複雜 (加密簽名、滑塊、設備指紋),建議改用 Selenium/Playwright
# 2. 發送登入 POST (僅示範結構)
login_url = 'https://www.zhihu.com/api/v3/oauth/sign_in'
payload = {
'client_id': 'c3cef7c66a1843f8b3a9e6a1e3160e20',
'grant_type': 'password',
'username': 'your_phone_or_email',
'password': 'your_password',
'source': 'com.zhihu.web',
'lang': 'zh-Hant',
'ref_source': 'homepage',
# 'captcha': ..., 'signature': ..., 等動態欄位
}
r = session.post(login_url, data=payload)
print(r.status_code, r.json())
# Playwright (推薦,無頭瀏覽器,自動處理 JS/驗證碼)
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=False)
page = browser.new_page()
page.goto('https://www.zhihu.com/signin')
page.fill('input[name="username"]', 'your_account')
page.fill('input[name="password"]', 'your_password')
page.click('button:has-text("登入")')
# 處理滑塊/短信驗證碼...
page.wait_for_url('https://www.zhihu.com/**')
cookies = page.context.cookies()
print(cookies)
browser.close()