R语言爬虫实例分析-----以广西人才网为例

R语言爬虫实例分析-----以广西人才网为例

在生活中,我们常常需要浏览一些网站,并将自己喜欢的数据(ctrl+c)保存下来,可当我们想保存很多数据的时候呢??我们还需要一个一个的(ctrl+c)保存下来吗?what should I do?
答案当然不是!!so,笔者将在以下的R语言爬取网页的数据中,向你一一诉说!(若有不对,还望python大佬们指正,轻喷,谢谢!)

在这里插入图片描述
知道这些东西之后,我们开始了解网页,复制两三页网址,观察其中的不同(找不同哦)
https://s.gxrc.com/sJob?keyword=%E8%AE%A1%E7%AE%97%E6%9C%BA&schType=1&page=1
https://s.gxrc.com/sJob?keyword=%E8%AE%A1%E7%AE%97%E6%9C%BA&schType=1&page=2
通过观察
在这里插入图片描述
我们发现在page=? 就可以找到了不同网页的大致规律啦!
知道了这些东西也还不够哦!
我们再了解一些东西!!!网页节点!(这是重点,记笔记!)
我们打开上面的网址,按下F12键,打开网页控制台
如图
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020060222410666.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ4MTI0NDY1,size_16,color_FFFFFF,t_70对于小白而言,我们不应该太过于深入,只需知道笔者所说的这几点就可以了!我们以计算机方面的职业为例!
在这里插入图片描述

一般来说 class=“ ” , “ ”里的东西就是我们想要的节点,加上 . 就是代表所有同样的节点!
因此我们可以通过Rstudio编写以下代码,截取出数据
###加载以下四个包
library(xml2) ### 读取网页的包
library(rvest) ### 爬取网页的包
library(dplyr) ### 数据分析
library(stringr) ### 字符串处理包
web =
read_html(paste0(“https://s.gxrc.com/sJob?keyword=%E8%AE%A1%E7%AE%97%E6%9C%BA&schType=1&page=1”),encoding = “UTF-8”,stringsAsFactors = FALSE)

抓取招聘的岗位名称(posName)

employ_job_name_inf = web %>%
html_nodes(".posName") %>%
html_text() ############### %>% 可理解为管道
# 先连接web,再将()里的节点的内容传送到 html_text中
我们查看employ_job_name_inf 得出:
在这里插入图片描述

基于此,我们可以获取岗位的名称,招聘发布的时间,职位的介绍等等!由于笔者比较懒用手一页一页的导入保存数据,所以笔者编出了以下的for循环,读取数据,并将数据通过write.csv()保存下来。
##(别忘了加载相关包包哦)
employ_basic_inf = data.frame() ### 建立大量数据框 便于后继的数据导入
####读取100页数据
for (i in 1:100) {

导入招聘信息的网址 (广西人才网)

web =
read_html(paste0(“https://s.gxrc.com/sJob?keyword=%E8%AE%A1%E7%AE%97%E6%9C%BA&schType=1&page=”,i),encoding = “UTF-8”,stringsAsFactors = FALSE)

(1) 抓取招聘的岗位名称(posName)

employ_job_name_inf = web %>%
html_nodes(".posName") %>%
html_text() ############### %>% 可理解为管道

先连接web,再将()里的节点的内容传送到 html_text中

后继的相关符号也是一样

(2) 抓取招聘岗位的薪水(w3)

employ_salary_inf = web %>%
html_nodes(".w3") %>%
html_text()
employ_salary_inf =
str_replace_all(employ_salary_inf," “,”")
employ_salary_inf<-gsub("\r\n"," ",employ_salary_inf)
employ_salary_inf <- data.frame(employ_salary_inf)
employ_salary_inf=employ_salary_inf[-c(1,2),]
employ_salary_inf = as.character(employ_salary_inf)

(3) 抓取招聘公司的地址(w4)

employ_address_inf = web %>%
html_nodes(".w4") %>%
html_text()
employ_address_inf=data.frame(employ_address_inf)
employ_address_inf=employ_address_inf[-c(1,2),]
employ_address_inf = as.character(employ_address_inf)

(4) 抓取招聘岗位要求的学历的相关信息(经验等)(qitaUL)

employ_edu_inf = web %>%
html_nodes(".qitaUL") %>%
html_text()
employ_edu_inf =
str_replace_all(employ_edu_inf," “,”")
employ_edu_inf = gsub("\r\n"," ",employ_edu_inf)

(5)抓取招聘发布的时间(w5)

employ_time_inf = web %>%
html_nodes(".w5") %>%
html_text()
employ_time_inf = data.frame(employ_time_inf)
employ_time_inf = employ_time_inf[-c(1:10),]
employ_time_inf = as.character(employ_time_inf)

(5)抓取招聘的岗位描述(posInfo) "."表示全部的

employ_describe_inf = web %>%
html_nodes(".posInfo") %>%
html_text()

删掉大量的空格

employ_describe_inf =
str_replace_all(employ_describe_inf," “,”")

通过gsub删掉软回车(\n)、软空格(\r)、制表符(\t)

employ_describe_inf <- gsub("\r\n","",employ_describe_inf)
employ_describe_inf <- gsub("\t","",employ_describe_inf)
employ =data.frame(employ_job_name_inf,employ_salary_inf
,employ_address_inf,employ_edu_inf
,employ_time_inf,employ_describe_inf)
employ_basic_inf = rbind(employ_basic_inf,employ)
##print(employ) 打印输出 (可以打印输出,但是比较散)
}
我们查看数据:
在这里插入图片描述
数据保存到csv中:
write.csv(employ_basic_inf,file = “D://Homework//rpython//employ_basic_inf1.csv”)
在这里插入图片描述
:由于笔者能力有限,所以对于程序的编写还存在小问题,还望大佬们指正!(觉得笔者写得不错的可以评论区里留言哟!!)

  • 14
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值