如何利用爬虫获取58同城招聘页面的实时数据?
爬取58同城招聘信息时,常常遇到一个难题:页面显示的申请人数和浏览人数实时更新,但网页源代码却显示为0。然而,浏览器开发者工具(F12)中的Elements面板却显示了正确的数据。这是因为58同城使用了ajax技术异步加载数据。本文将指导您如何获取这些动态数据。
问题分析
以北京某医疗岗位为例,页面实时显示申请和浏览人数,但源代码中数据始终为0,而F12的Elements面板数据与页面一致。直接从源代码提取数据行不通。
解决方法
页面数据通过AJAX请求异步加载,我们需要找到并抓取这些请求的json数据。
经分析,58同城使用特定API接口提供这些数据。例如:
https://statisticszp.58.com/position/totalcount/?infoId=27988...
该接口返回JSON数据,例如:
{ "deliveryCount": 1141, "commentCount": 0, "infoCount": 4, "resumeReadPercent": 0, "referUrl": "", "nextUrl": "null" }
其中”deliveryCount”代表申请人数,”infoCount”代表浏览人数。
操作步骤
- 定位AJAX请求: 使用浏览器开发者工具(F12),在Network面板中找到与页面动态数据相关的AJAX请求。
- 发送API请求: 使用爬虫工具(例如python的requests库)发送GET请求到上述API接口。
- 解析JSON数据: 从返回的JSON数据中提取”deliveryCount”和”infoCount”字段,即为实时申请人数和浏览人数。
通过以上步骤,即可成功获取58同城招聘页面实时申请和浏览人数数据。 请注意,infoId参数需要根据目标招聘页面进行替换。 为了避免对服务器造成过大压力,请控制爬取频率。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END