许多网页爬虫开发者都遇到过这样一个难题:网页源代码与实际显示内容不符。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