招聘网站分析-猎聘网的爬虫设计与实现

时间:2024-09-30 22:46:17

爬取文件

原理:

1.需求分析
猎聘网需要设计简单反爬虫策略,可通过配置请求头、下载延迟、动态用户代理缓解,猎聘网职位搜索列表页和详情页如图所示。

图1 猎聘网职位职位搜索列表页
在这里插入图片描述

图2 猎聘网职位职位搜索详情页
在这里插入图片描述

2.爬虫数据存储设计
对于爬虫来说,最重要的是爬取下来的数据,所以爬虫项目在开发前需要考虑数据的保存格式以及保存的数据项。前期预估网站爬取的数据在 10 万以内,数据量较小,所以考虑采用 CSV 等文本格式或 MySQL 数据库进行存储。
如果采用 CSV 文本格式进行存储,在数据清洗前还要考虑数据合并。
结合需求分析中的数据分析目标,分析前程无忧、猎聘网、智联招聘三个招聘网站的岗位的数据,确定数据采集项。利用数据库中的表结构设计形式进行展示每个数据项的含义及作用。
最后进行数据库设计,在mysql数据库实现表的创建。
内容:
1.分析招聘网站每条招聘信息的内容,确定爬虫数据项,以数据库表结构形式进行展示。
2.确定数据存储格式,在scrapy项目中编写数据存储的相关代码。

页面分析

猎聘网爬虫分析的重点是确认网页数据来源以及分页规律。招聘网站列表页、详情页以及分页功能的实现可能会采用动态网页技术(如前后端分离的Ajax或DHTML)也可能会采用静态网页技术。猎聘网采用的是静态网页技术,只需要确定XPath表达式即可。猎聘网反爬策略不敏感,即使IP被封,几天后依然会自动解除。针对猎聘网的反爬策略可通过配置请求头、下载延迟、动态用户代理缓解。
下面开始数据来源分析。打开浏览器开发者工具,切换到“Network”,在图3的搜索框中输入检索关键字,点击“搜索”按钮,查看拦截到的网络请求。如图3所示。

图3 猎聘网职位搜索请求分析
在这里插入图片描述

点击“Preview”预览响应页面,如图4所示。从预览效果可以看出页面采用静态网页技术,不需要进一步分析,爬取时只需要确定XPath表达式即可。
在这里插入图片描述

图4 猎聘网职位搜索响应页面预览
由于列表页的Request url请求参数过长,可以尝试简化。简化后的列表页请求url地址格式为“/zhaopin/?key=检索关键字&curPage=页码”。需要注意的是页码索引从0开始。
最后来概括分页规律,使用浏览器开发者工具查看“下一页”按钮的html结构,如图5所示。“下一页”按钮的href属性为新页面地址,但是缺少域名。当翻到末页时的“下一页”按钮的href属性为“javascript;;”,以此来作为分页条件。
在这里插入图片描述
图5 猎聘网职位搜索分页html结构

2.爬虫编写
猎聘网爬虫实现思路和前程无忧招聘网相同。整体分为start_requests、parse、parse_detail三个函数分别用于处理请求发送、列表页解析和详情页解析。
首页路由:
在这里插入图片描述

详细页路由:
在这里插入图片描述

数据库展示

在这里插入图片描述