R语言爬虫如何爬取招聘网站的招聘信息

63次阅读
没有评论

共计 2403 个字符,预计需要花费 7 分钟才能阅读完成。

R 语言爬虫如何爬取招聘网站的招聘信息,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

R 语言爬取招聘网上的招聘信息,虽然 R 做爬虫确实没 python 专业,但是有一个包 rvest 我觉得还不错,我尝试爬取 58 同城招聘网上的数据。

rvest 包, 用到的函数有:

read_html(),

html_nodes(),

html_text(),

html_attr();

具体源代码如下:

##### 加载相关包 ############

library(xml2)

library(rvest)

library(base)

下面获得每个子网站的地址

#58 同城主网站网址

url – http://jingzhou.58.com/?utm_source=market spm=b-31580022738699-pe-f-829.hao360_101

web -read_html(url,encoding = utf-8)

xpath – div.col3 a

############# 子网站网址 ###########

title -web% %html_nodes(xpath)% %html_text()

link -web% %html_nodes(xpath)% %html_attr(href)

########## 对子网站翻页 ########

id -c(1:20)

pn -paste0(pn ,id, /)# 下载的网址有规律地缺失 paste0() 是字符串连接函数

########### 清理网址中的缺失值 #########

for (http in 1:length(link)) {

  httplink -substr(link[http],1,4)

  if(httplink== http){link[http] -substr(link[http], ,link[http])}

}

link -na.omit(link)

filename – E:\\ 工作簿 1.csv #本地文件路径,用以存储下载的数据

job – 职位 company – 公司 location – 地域 time – 发布时间

data -data.frame(job,company,location,time)

len -max(length(job),length(company),length(location),length(time))

######## 从子网站爬取数据 ##########

for (i in 1:length(link)) {

  link0 -paste0(http://jingzhou.58.com ,link[i],pn, utm_source=market spm=b-31580022738699-pe-f-829.hao360_101 PGTID=0d100000-00d9-7474-25a7-e93482a12861 ClickID=xxxx )

  link1 -paste0(http://jingzhou.58.com ,link[i],pn, ?utm_source=market spm=b-31580022738699-pe-f-829.hao360_101 PGTID=0d100000-00d9-7fce-21b0-b8956617e76f ClickID=xxxx )

##### 网址最后的变化 ###########

   for (j in 1:length(link)) {

    link0 -gsub(xxxx ,j,link0)

    link1 -gsub(xxxx ,j,link1)

##### 网站名的两种类型用 trycatch() 消除错误 #####

    for (k in 1:length(pn)) {

    tryCatch(

      {web -read_html(link0[k],encoding = utf-8 )},

      error={web -read_html(link1[k],encoding = utf-8 )})

########### 提取需要的变量 ###########

  job_path – dt a #获取职位节点

  company_path – dd.w271 a #获取公司节点

  location_path – dd.w96 #获取地域节点

  time_path – dd.w68 #获取发布时间节点

  job -web% %html_nodes(job_path)% %html_text();

  company -na.omit(web% %html_nodes(company_path)% %html_text());

  location -web% %html_nodes(location_path)% %html_text();

  time -web% %html_nodes(time_path)% %html_text();

  job -job[1:len];company -company[1:len];location -location[1:len];time -time[1:len]# 长度一致 #

  data1 -data.frame(job,company,location,time);

 if(length(data 0)){

  data -na.omit(rbind(data,data1))}

  else

  {data1 -rep(NA,len);data -na.omit(rbind(data,data1))}

    }

  }

  Sys.sleep(3)# 每隔 3 秒钟停一次,防止反爬虫

  print(i)

  print(sleep end,download start!)

}

data -data[-1,]

write.csv(data,file = filename)

就是这样了,自己实操一遍才好。

关于 R 语言爬虫如何爬取招聘网站的招聘信息问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注丸趣 TV 行业资讯频道了解更多相关知识。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-25发表,共计2403字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)