R语言 rvest爬取大众点评上海商场信息(R语言&大数据分析qq群 456726635 欢迎讨论交流)

library(rvest)
library(xml2)
library(magrittr)


#点评官网
dianpingweb<-"http://www.dianping.com"
#综合商场
comshop<-"/search/category/1/20/g119p"


#  
webii<-seq(1:22)


fulldata<-data.frame()


for(i in webii)
{
  
  web<-read_html(paste0(dianpingweb,comshop,as.character(i)),encoding="UTF-8") #"http://www.dianping.com/search/category/1/20/g119"
  
  
    #商城名字
    businame<-web %>% html_nodes("div.tit")%>% html_nodes("h4")%>% html_text()
    busitag<-web %>% html_nodes("div.tag-addr")%>% html_nodes("a")%>% html_nodes("span")%>% html_text()
    temptag<-matrix(busitag,ncol=2,byrow=T)
    
    
    
    #商城类别和商城地址
    busicatog<-temptag[,1]
    
    busiaddr<-temptag[,2]
    
    #商城等级
    busideg<-web %>% html_nodes("div.comment")%>% html_nodes("span")%>%html_attr("title")
    
    #评论数
  #  reviewa<-web %>% html_nodes("div.comment")%>% html_nodes("a.review-num")%>%html_text()
    reviewnum<-web %>% html_nodes("div.comment")%>% html_nodes("a.review-num b")%>%html_text()
  #  reviewa
    
    #平均消费tempprice
    nullprice<-web %>% html_nodes("a.mean-price b")%>%html_text()
    nullprice<-gsub(pattern = "¥", replacement = "", nullprice)
    pricea<-web %>% html_nodes("a.mean-price")%>%html_text()
    jvector<-vector()
    for(j in 1:length(pricea))
    {
      pricelist=unlist(strsplit(pricea[j],split=" "))
      pricegrep<-grep(pattern = "\\¥", pricelist, value = TRUE)
      if(identical(pricegrep, character(0)))
      {
        jvector[j]=0
      }
      else jvector[j]=1
    }
    meanprice=jvector
    ii=1
    for(k in 1:length(jvector))
    {
      if(jvector[k]==1) 
        {
           meanprice[k]=nullprice[ii]
           ii=ii+1
        }
    }
    meanprice
    
  
    
    #下一层连接url
    childhtml<-web %>% html_nodes("div.pic")%>% html_nodes("a")%>%html_attr("href")
    
 
  
  
  
  
  
  print(i)
  

}


图片中是爬取的数据样例。



点击链接加入群【R语言&大数据分析】:https://jq.qq.com/?_wv=1027&k=4BQLEWp,R语言&大数据分析qq群 456726635 欢迎讨论交流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值