您的位置:首页 > 理论基础 > 计算机网络

一个RCurl抓取美团网信息的实例

2015-05-31 20:04 357 查看
最近忽然想尝试用R做一个简单的网络爬虫,看了不少资料,查了不少技术牛人的代码,总算成功抓取了一份美团的团购信息,代码寄上,请行内人士多多指教。

library(RCurl)
library(XML)

urllist=0
 page=1:5
urllist[page]= paste0("http://t.dianping.com/list/guangzhou-category_0?pageIndex=",1:5)         #随便选取广州城市的团购信息,这里象征性的抓取5页
美食<-c()   #构建相应的存储向量并初始化
团购信息<-c()
优惠价<-c()
原价<-c()
销售量<-c()
for(url in urllist)

{

temp=getURL(url,httpheader=myheader,encoding="UTF-8")
 doc<-htmlTreeParse(temp, useInternal =TRUE)
food<-sapply(getNodeSet(doc,'//div[@class="tg-floor-item-wrap"]/a[@class="tg-floor-title"]/h3'),xmlValue)   #抓取美食
美食<-c(美食,food)
tuangou<-sapply(getNodeSet(doc,'//div[@class="tg-floor-item-wrap"]/a[@class="tg-floor-title"]/h4'),xmlValue)  #抓取团购信息
团购信息<-c(团购信息,tuangou)
 youhui<-sapply(getNodeSet(doc,'//div/span[@class="tg-floor-price"]/span[@class="tg-floor-price-new"]'),xmlValue)  #抓取优惠价
优惠价<-c(优惠价,youhui)
oldprice<-sapply(getNodeSet(doc,'//div/span[@class="tg-floor-price"]/span[@class="tg-floor-price-old"]'),xmlValue)   #抓取原价
原价<-c(原价,oldprice)
quantity<-sapply(getNodeSet(doc,'//div/span[@class="tg-floor-sold"]'), xmlValue)  #抓取销售量
销售量<-c(销售量,quantity)
}
广州美食<-data.frame(美食,团购信息,优惠价,原价,销售量)
       # 合成一个数据框
write.csv(广州美食,file="广州美食.csv")         
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息