【项目实战】【多处注释说明!】scrapy爬虫,爬取招聘网站招聘岗位信息

本文介绍了使用scrapy爬虫抓取华为招聘网站的社招和校招岗位信息,包括需求分析、项目结构、数据处理(Excel、MySQL、MongoDB)及PyCharm工具的使用。
摘要由CSDN通过智能技术生成

一、项目背景

最近学习了爬虫的一些基础知识,尝试自己去爬取招聘网站的招聘岗位信息,因此就做了这个项目。过程中参考了很多百度回来的知识,怕自己忘了,通过此项目总结记录下学习笔记,也方便后续索引。

二、项目介绍

此项目是通过scrapy做了两个爬虫,一个爬取社招,一个爬取校招,爬取了huawei招聘网站的校招跟社招的招聘岗位(JD)信息,通过管道文件进行数据处理,包括三种数据处理方式。

  1. 导出到excel
  2. 保存到mysql数据库
  3. 保存到mongodb数据库

三、需求分析

  1. 首先谷歌浏览器打开huawei校招招聘网址http://career.huawei.com/reccampportal/portal5/campus-recruitment.html,看下需要爬取的信息,随便点击一个岗位会新打开一个岗位详情页。
    我需要爬取的数据主要是一级页面的岗位名称,工作地点,招聘类型,工作类型,二级页的岗位职责,岗位要求.
  2. 在postman中测试下huawei校招招聘网址,随便搜了下页面上的岗位名称,并没有在html文件中,所以判断这些岗位信息都是通过接口获取到的
    在这里插入图片描述
  3. 回到谷歌浏览器,F12打开调试,点击network,点击clear图标,清空掉所有网络请求
    在这里插入图片描述
  4. 刷新页面,或者点击下一页(建议点下一页,因为刷新会重新加载整个页面,会加载太多东西),点击XHR(一般来说都在这里),点击preview,在这些文件中搜索下具体的岗位名称,发现可以找到了,就证明是通过这个请求获取到的数据,并且可以获取到数据结构
    在这里插入图片描述
  5. 再点击左侧的headers,可以看到请求地址跟请求类型(get还是post),
    在这里插入图片描述
    6.再次清空请求,再点击下一页,再看下一页的这个文件的headers的url,将步骤5跟6的两个url比较一下,就知道哪些参数不一样了。
    我这里是通过把Beyond Compare进行比较,可以看到差异点就是curPage
    在这里插入图片描述
  6. 看网站结构知道是有分应届生,实习生,留学生,海外本地的,所以通过同样的方式,点击下,看下请求,对比下url,就知道差异点了,总结出一级页面规律如下:
url1 = "http://career.huawei.com/reccampportal/services/portal/portalpub/getJob/page/10/{curPage}?curPage={" \
       "curPage}&pageSize=10&{jt}&jobFamClsCode=&searchText=&deptCode=&graduateItem=&reqTime" \
       "=1619578489924&orderBy=ISS_STARTDATE_DESC_AND_IS_HOT_JOB "

在这里插入图片描述

  1. 点击一个具体的岗位进入到二级页,看到二级页的网址是http://career.huawei.com/reccampportal/portal5/campus-recruitment-detail.html?jobId=142915,通过同样的方式,总结二级页面规律如下:
url2 = "http://career.huawei.com/reccampportal/services/portal/portalpub/getJobDetail?jobId={jobId}"
  1. 通过同样的方式,得到社招的相关url信息。

四、新建项目

我是windows系统,用pycharm来做的项目,所以新建了一个jdhunter的项目,然后在terminal中新建scrapy项目

$ scrapy startproject jdhunter  # 新建scra
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值