专栏名称: EasyCharts
EasyCharts,易图表,我们将定期推送各种数据可视化与分析教程,包括Excel(Power BI)、Origin、Sigmaplot、GraphPad、R、Python、Matlab、Tableau、D3.js等。
目录
相关文章推荐
前端早读课  ·  【早阅】JavaScript 注册表背后的故事 ·  3 天前  
前端大全  ·  用了组合式 (Composition) ... ·  5 天前  
前端早读课  ·  【早阅】了解Next.js ... ·  6 天前  
前端早读课  ·  【第3388期】React 组件设计-避免条件渲染 ·  6 天前  
奇舞精选  ·  即将出现在CSS中的11个新特性与功能 ·  1 周前  
奇舞精选  ·  即将出现在CSS中的11个新特性与功能 ·  1 周前  
51好读  ›  专栏  ›  EasyCharts

R爬取智联招聘

EasyCharts  · 公众号  · 前端  · 2017-05-08 21:56

正文

这篇博文为大家分享如何使用R包爬取智联招聘的信息,以上海市目前数据分析师岗位为例,愿为即将找工作的你提供帮助。


1、爬取主界面信息

library(rvest)
library(stringr)

url1='http://sou.zhaopin.com/jobs/searchresult.ashx?jl=%e4%b8%8a%e6%b5%b7&kw=%e6%95%b0%e6%8d%ae%e5%88%86%e6%9e%90&isadv=0&sg=d916c075b66b48249d6dba31c11b39e0&p='
zhiwei=company=salary=adress=time=zwhref=NULL
for( i in 1:10){
  url=paste(url1,i,sep = '')
  web = read_html(url)
  zhiwei1=web %>% html_nodes('td.zwmc')%>% html_nodes('a')%>%html_text()
  zhiwei = c(zhiwei,zhiwei1[str_length(zhiwei1) !=0])
  company1= web %>% html_nodes('td.gsmc')%>% html_nodes('a')%>%html_text()
  company = c(company,company1[str_length(company1) !=0])
  salary=c(salary,web %>% html_nodes('td.zwyx')%>% html_text())
  adress=c(adress,web %>% html_nodes('td.gzdd')%>% html_text())
  time=c(time,web %>% html_nodes('td.gxsj')%>% html_nodes('span')%>%html_text())
  zhiwei_href=web %>% html_nodes('td.zwmc')%>%
    html_nodes('a')%>%html_attr('href')
  zwhref=c(zwhref,zhiwei_href[str_length(zhiwei_href) > 40])
}
zhiliang=data.frame(职位=zhiwei,公司=company,月薪=salary,
                      地址=adress,日期=time,链接=zwhref)
DT::datatable(zhiliang)

一共爬取10页600个工作岗位。


2、爬取二级页面信息

为了获取更多的信息,我们对每个职位的主页进行了爬取,主要涉及下图中的所有信息。


yuexin = didian=shijian=xingzhi=jingyan=xueli =
num=leibie=guimo =leixing=hangye=xxt1=xxt2=NULL
xnn=length(zwhref)
for(i in 1:xnn){
  url=zwhref[i]
  hweb = read_html(url)
  txt=hweb %>% html_nodes('ul.terminal-ul> li> strong')%>% html_text()
  yuexin = c(yuexin,str_trim(txt[1]))
  didian=c(didian,txt[2])
  shijian=c(shijian,txt[3])
  xingzhi=c(xingzhi,txt[4])
  jingyan=c(jingyan,txt[5])
  xueli = c(xueli,txt[6])
  num=c(num,txt[7])
  leibie=c(leibie,txt[8])
  guimo = c(guimo,txt[9])
  leixing=c(leixing,txt[10])
  hangye=c(hangye,txt[11])
  xxt=hweb %>% html_nodes('div.tab-cont-box> div')%>%  html_text()
  xxt1=c(xxt1,str_trim(str_split(str_trim(xxt)[1],'\\r\\n')[[1]][1]))
  xxt2=c(xxt2,str_trim(str_split(str_trim(xxt)[1],'\\r\\n')[[1]][6]))
}
zhilian1=data.frame(职位=zhiwei,公司=company,yuexin = yuexin,didian=didian,shijian=shijian,xingzhi=xingzhi,
                    jingyan=jingyan,xueli =xueli,num=num,leibie=leibie,guimo =guimo,
                    leixing=leixing,hangye=hangye,xxt1=xxt1,xxt2=xxt2,
                    超链接=zwhref)
names(zhilian1)=c('职位','公司','职位月薪','工作地点','发布日期','工作性质','工作经验',
                  '最低学历','招聘人数','职位类别','公司规模','公司性质',
                  '公司行业','职位描述','工作地址','超链接')
DT::datatable(zhilian1)
write.csv(zhilian1,'D:/上海.csv')



欢迎关注魔方学院QQ群