許多網頁爬蟲開發者都遇到過這樣一個難題:網頁源代碼與實際顯示內容不符。58同城招聘頁面就是一個典型的例子。 你可能會發現,直接爬取源代碼得到的申請人數和瀏覽人數為0,而頁面上卻顯示著實時更新的數字,且這些數字與瀏覽器開發者工具(F12)中的Elements標簽頁內容一致。這是因為58同城使用JavaScript動態加載數據。
解決方法是分析網絡請求。
步驟:
-
刷新頁面: 刷新58同城招聘頁面,觀察網絡請求。你會發現一個指向類似 https://statisticszp.58.com/position/totalcount/?infoId=27988… 的URL的請求。這個請求返回的數據包含了實時申請和瀏覽人數。 (注意:infoId 部分會根據具體職位而變化)。
-
分析json數據: 該請求返回的是JSON格式的數據,例如:
{ "deliveryCount": 1141, "commentCount": 0, "infoCount": 4, "resumeReadPercent": 0, "referUrl": "", "nextUrl": "null" }
其中,”deliveryCount” 代表申請人數,”infoCount” 代表瀏覽人數。
- 編寫爬蟲代碼: 你的爬蟲代碼需要:
- 發送請求到 https://statisticszp.58.com/position/totalcount/?infoId=… (替換 … 為實際的 infoId)。
- 解析返回的JSON數據。
- 提取 “deliveryCount” 和 “infoCount” 字段的值。
通過這種方法,你的爬蟲就能獲取到58同城招聘頁面上準確的、實時的申請和瀏覽人數,有效避免了直接爬取源代碼帶來的數據不準確問題。 記住,infoId 是動態變化的,你需要根據你目標職位的頁面信息找到正確的 infoId 值。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END