如何在爬取58同城工作頁面時獲取正確的申請人數和瀏覽人數?

如何在爬取58同城工作頁面時獲取正確的申請人數和瀏覽人數?

58同城招聘信息爬取:解決申請人數和瀏覽人數數據不一致問題

在爬取58同城招聘頁面時,經常遇到一個棘手的問題:網頁源代碼顯示的申請人數和瀏覽人數與頁面實際顯示的數據不符,源代碼中往往顯示為0,而頁面實時更新的數據卻與瀏覽器開發者工具(F12)中的Elements內容一致。 這篇文章將探討如何解決這個問題,獲取準確的申請人數和瀏覽人數。

問題分析:

58同城為了防止數據被惡意爬取,采用了動態加載數據的方式。 頁面上的申請人數和瀏覽人數并非直接從html源代碼中獲取,而是通過JavaScript異步加載的。因此,直接解析HTML源代碼無法獲得正確的數據。

解決方案:

要獲取正確的申請人數和瀏覽人數,需要找到58同城提供的API接口。 通過分析網絡請求,我們可以發現一個用于獲取招聘信息統計數據的API接口,其URL類似于以下格式:

https://statisticszp.58.com/position/totalcount/?infoId=27988...

其中infoId參數代表具體的職位ID,需要根據目標招聘頁面的URL進行提取。

API返回數據示例:

API接口返回的json數據包含了我們需要的信息:

{   "deliveryCount": 1141,  // 申請人數   "commentCount": 0,   "infoCount": 4,       // 瀏覽人數   "resumeReadPercent": 0,   "referUrl": "",   "nextUrl": "null" }

deliveryCount字段表示申請人數,infoCount字段表示瀏覽人數。

實現步驟:

  1. 獲取職位ID (infoId): 分析目標招聘頁面的URL,找到職位ID對應的參數值。 這可能需要使用正則表達式或其他字符串處理方法。

  2. 構造API請求URL: 將提取到的infoId替換到API URL模板中,形成完整的API請求URL。

  3. 發送API請求: 使用python的requests庫或其他HTTP客戶端發送GET請求到API URL。

  4. 解析JSON數據: 將API返回的JSON數據解析成Python字典,提取deliveryCount和infoCount的值,即為正確的申請人數和瀏覽人數。

通過以上步驟,即可繞過58同城網頁的動態加載機制,準確獲取招聘頁面的申請人數和瀏覽人數數據。 請注意,API接口的地址和參數名稱可能會有變化,需要根據實際情況進行調整。 同時,請遵守58同城的robots.txt規則,避免對服務器造成過大壓力。

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享