-
-
Notifications
You must be signed in to change notification settings - Fork 1
Closed as duplicate of#5
Description
問題描述 (Problem Description)
目前,當使用 -t <username> 或 --target <username> 參數試圖抓取特定用戶的影片時,程式雖然能夠成功導航至目標用戶的個人頁面(例如 https://www.threads.net/@zuck),但後續攔截到的 GraphQL API 回應中,並未正確地只包含該用戶的貼文數據。
這導致最終抓取到的內容與預期不符,可能是首頁的推薦內容,或是空的結果,而不是目標用戶的影片。
重現步驟 (Steps to Reproduce)
- 執行程式並帶上
-t參數,例如:uv run python main.py -t zuck -s <your_session_id>
- 觀察程式執行過程與最終下載的影片。
- 檢查
downloads資料夾與threads_dlp.db資料庫。
預期行為 (Expected Behavior)
程式應該只抓取並下載指定用戶(此例中為 zuck)的影片。
目前行為 (Actual Behavior)
程式抓取到的內容並非來自指定用戶,下載了非預期的影片或沒有下載任何影片。
初步分析 (Preliminary Analysis)
根據 GEMINI.md 中的紀錄,可能的原因如下:
-
前端路由與數據載入機制變更:
- Threads 網站可能更新了其前端應用。即使瀏覽器的 URL 正確指向用戶頁面,但觸發載入該用戶專屬數據的內部 API 呼叫,可能需要額外的用戶操作(如特定的點擊)或是在 JavaScript
state中傳遞特定參數。
- Threads 網站可能更新了其前端應用。即使瀏覽器的 URL 正確指向用戶頁面,但觸發載入該用戶專屬數據的內部 API 呼叫,可能需要額外的用戶操作(如特定的點擊)或是在 JavaScript
-
GraphQL API 查詢邏輯變更:
- 後端 GraphQL API 可能不再單純依賴頁面 URL 來決定回傳哪個用戶的數據。
- 現在的 API 呼叫極有可能需要一個明確的
userID作為查詢參數。我們需要分析在瀏覽器中手動導航至用戶頁面時,是哪個graphql/query請求包含了目標的userID,以及這個userID是如何從用戶名稱 (username) 解析或轉換而來的。
後續步驟 (Next Steps)
- 深入分析瀏覽器在訪問特定用戶頁面時的網路請求,特別是
graphql/query的 payload。 - 找出
username與userID之間的轉換關係。 - 修改
scraper.py中的邏輯,以模擬正確的 API 請求來獲取特定用戶的數據。
Metadata
Metadata
Assignees
Labels
No labels