爬取海量招聘岗位信息-----R语言-----以猎聘网为例(WEB OG LIEPIN)

我们再来回顾一下 nodes、%>% 、text三者之间的关系 。如图1:

在这里插入图片描述

再者,我们将爬取的数据存入我们指定的文档中: 如图2

在这里插入图片描述

我们先简单爬取岗位信息,以猎聘网网上检索关键词老师为例: 如图3:在这里插入图片描述

第一步:
###我们先读取该关键词下的网址:
web <- “https://www.liepin.com/zhaopin/?compkind=&dqs=&pubTime=&pageSize=40&salary=&compTag=&sortFlag=&degradeFlag=0&compIds=&subIndustry=&jobKind=&industries=&compscale=&key=%E8%80%81%E5%B8%88&siTag=KVrzfgWIPAQO7Nulo8up6A%7EfA9rXquZc5IkJpXC-Ycixw&d_sfrom=search_fp&d_ckId=b196f204ca89437239283fc4441de9cd&d_curPage=9&d_pageSize=40&d_headId=b196f204ca89437239283fc4441de9cd&curPage=9”
第二步:
##获取岗位名称节点
按下键盘上的F12打开网页的控制台

如图4:在这里插入图片描述

获取岗位名称节点 job-info h3
第三步
####加载相关数据包
library(xml2) ### 读取网页的包
library(rvest) ### 爬取网页的包
library(dplyr) ### 数据分析包
library(stringr) ## 字符串处理包
##截取该网址下的相关岗位名称:

获取岗位的名称

job_name = web %>%
html_nodes(".job-info h3") %>%
html_text()
job_name = gsub("\t","",job_name) ##删掉空格
job_name = gsub("\n","",job_name)##删掉回车
job_name = gsub("\r","",job_name)##同上
###查看结果

如图5:在这里插入图片描述

####往往一种信息并不能满足我们的需要,因此,我们可以通过此方法爬取更多的信息

将两页的网址复制下来 观察其存在的规律,如图6:

在这里插入图片描述
##因此,我们就有了以下的for循环
liepin_teacher = data.frame()
#输入猎聘网的网站
for (i in 1:10) {

i代表的是页数,读者可以自行修改

1、通过对猎聘网的观察,笔者发现有其网址存在两处变化 ;

2、%>% 上一期的博客已经讲过了,起到管道的作用

3、nodes() 括号里接的是对应的节点,由于

猎聘网的网址的构成稍微复杂,通过笔者两天的观察,发现该网址存在两处变动,在此,我采用 i-1 与 i 来表示这两处变动。

4、

web =
read_html(paste0(‘https://www.liepin.com/zhaopin/’,
‘?compkind=&dqs=&pubTime=&pageSize=40&salary=’,
‘&compTag=&sortFlag=&degradeFlag=0&compIds=&subIndustry=’,
‘&jobKind=&industries=&compscale=&key=%E8%80%81%E5%B8%88&siTag=’,
‘KVrzfgWIPAQO7Nulo8up6A%7EfA9rXquZc5IkJpXC-Ycixw&d_sfrom=’,
‘search_fp&d_ckId=b196f204ca89437239283fc4441de9cd&d_curPage=’,i-1,
‘&d_pageSize=40&d_headId=b196f204ca89437239283fc4441de9cd&curPage=’,i),
encoding = “UTF-8”,stringsAsFactors = FALSE)

对于过长的网站,应该用 ‘’ 分节包裹,以免后继的错误

(1) 岗位的名称

company_name = web %>%
html_nodes(".job-info h3") %>%
html_text()
job_name = gsub("\t","",job_name) ##删掉空格
job_name = gsub("\n","",job_name)##删掉回车
job_name = gsub("\r","",job_name)##同上

(2) 工作的薪水

job_money = web %>%
html_nodes(".text-warning") %>%
html_text()
##(3) 公司的地点
company_area= web %>%
html_nodes(".area") %>%
html_text()

(4) 岗位的要求

job_edu = web %>%
html_nodes(".edu") %>%
html_text()
###(5)公司的名称
company_name = web %>%
html_nodes(".company-name") %>%
html_text()
company_name = gsub("\t","",company_name)
company_name = gsub("\r","",company_name)
company_name = gsub("\n","",company_name)

(6) 公司的类型

company_form = web %>%
html_nodes(" p.field-financing") %>%
html_text()
company_form = gsub("\t","",company_form)
company_form = gsub("\r","",company_form)
company_form = gsub("\n","",company_form)
####(7) 月工资 学历要求 反馈时间
job_basic= web %>%
html_nodes(".job-info") %>%
html_text()
job_basic = gsub("\t","",job_basic)##删掉空格
job_basic = gsub("\n","",job_basic)##删掉回车
job_basic = gsub("\r","",job_basic)##同上
######将以上信息通过数据框拼接起来
company = data.frame(job_name,job_money,
company_area,job_edu,
company_name,company_form,job_basic)
liepin_teacher = rbind(liepin_teacher,company)
######最后通过rbind简单的接起来
}
#####查看结果
head(liepin_teacher)##查看头部
tail(liepin_teacher)##查看尾部

如图7:

在这里插入图片描述

write.csv(liepin_teacher,file = “D://Homework//python//liepin_teacher.csv”)
####如果还有需要的话我们可以将爬取的数据保存至我们喜欢的文件夹中。
最后,感谢大家观看。(还请python大佬们轻喷)觉得笔者写得还可以的,可以在评论区收藏点赞评论转发哟!!!谢谢啦!!!!!
在这里插入图片描述

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值