R 爬虫入门

library(xml2)
library(rvest)
site1 <- "https://www.zhipin.com/c101280600/h_101280600/?query=%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90&page=";
site2 <- "&ka=page-";
page <- 1;
total<-data.frame(name=character(),salary=character(),city=character(), experience=character(),degree=character());
for(page in 1:30){
  site <- paste(site1,page,site2,page,sep="");
  html <- read_html(site);
  #jobName<-html_nodes(html,"div.info-primary>h3.name")%>%html_text(trim=T);
  #temp<-strsplit(jobName," ");
  #后来发现这样处理不行,因为有些职务名称里本身就带有空格
  job<-html_nodes(html,"div.info-primary>h3.name")
  job<-gsub("<h3 class=\"name\">","",job);
  jobName<-gsub("<(span.*?)(class.*?)>(.*?)</h3>"," ",job);
  jobName
  salary<-html_nodes(html,"div.info-primary>h3.name>span.red")%>%html_text(trim=T);
  salary
  df1 <- data.frame(jobName,salary);
  jobMsg<-html_nodes(html,"div.info-primary>p");
  jobMsg<-gsub("<(em.*?)(class.*?)></em>"," ",jobMsg);
  jobMsg<-gsub("<(.?p)>","",jobMsg);
  temp<-strsplit(jobMsg," ");
  df2 <- data.frame(matrix(unlist(temp), nrow=15, byrow=T));
  df<-data.frame(df1,df2);
  total<-rbind(total,df);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值