利用RCurl包完成自己感兴趣的团购信息【批量】抓取

library(RCurl)
library(XML)
#读取拉手深圳美食搜索
start_url = "http://shenzhen.lashou.com/cate/meishi"
#构造请求头
cust_header =c("User-Agent"="Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0",
"Accept"="text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language"="en-us",
"Connection"="keep-alive")
#读取PageSouce
pagesource <- getURL(start_url,httpheader=cust_header,.encoding="utf-8")
#解析页数
parseTotalPage <- function(pagesource){
  doc <- htmlParse(pagesource)  
  as.numeric(sapply(getNodeSet(doc, '//div[@class="page"]/a[last()-1]/text()'), xmlValue))
}
#解析页面内容,获取门店名称、描述、优惠价,门店价
parseContent <-  function(pagesource){
  doc <- htmlParse(pagesource)
  goods_name <- sapply(getNodeSet(doc, '//div[contains(@class,"goods")]//a[@class="goods-name"]//text()'), xmlValue)
  goods_text <- sapply(getNodeSet(doc, '//div[contains(@class,"goods")]//a[@class="goods-text"]//text()'), xmlValue)
  price <- sapply(getNodeSet(doc, '//div[contains(@class,"goods")]//span[@class="price"]/text()'), xmlValue)
  org_price <- sapply(getNodeSet(doc, '//div[contains(@class,"goods")]//span[@class="money"]/del/text()'), xmlValue)
  result <- data.frame(goods_name, goods_text, price, org_price)
}
#获取总页数和第一页内容
total_page <- parseTotalPage(pagesource)
pageresults <- parseContent(pagesource)
#生成2-n页url
page = 1:(total_page -1)
url_list = ""
url_list[page] = paste0("http://shenzhen.lashou.com/cate/meishi/page",page +1)
#循环读取url,并进行下载解析
for (url in url_list){
  pagesource <- getURL(url,httpheader=cust_header,.encoding="utf-8")
  pageresult <- parseContent(pagesource)
  pageresults <- rbind(pageresults,pageresult)
}
#输出结果到文件
write.table(pageresults,"result.txt",row.names=FALSE)


# 部分结果:

"goods_name" "goods_text" "price" "org_price"
"【龙岗中心区】钰花溪" "休闲单人餐,无需预约" "12.5" "28"
"【前海】顺德佬(前海店)" "10人餐," "498" "867"
"【国贸】青蓬西餐厅" "单人自助晚餐,节假日通用" "88" "158"
"【新城市广场】王子厨房" "西式双人餐" "129" "506"
"【龙岗中心区】皇朝印象酒店西餐厅" "浪漫情侣双人餐," "99" "384"
"【华侨城】四海一家(南山中心区)" "单人自助周末晚餐券1张" "170" "198"
"【科技园】食全食美" "单人自助午餐,节假日通用" "128" "198"
"【国贸】潮泰轩贵宾楼(彭年店)" "现金抵用,可免费停车" "58" "100"
"【19店通用】安琪饼屋" "蛋糕1个,团团圆圆蛋糕/鲜果杏仁蛋糕2选1,约4磅" "139" "228"
"【西乡】青年宾馆自助火锅城" "单人烤肉自助餐,午晚夜宵通用" "36" "43"
"【东门商业圈】皇室派对KTV" "单人自助餐,男女不限" "69" "89"
"【松岗】绿元素主题中西餐厅" "双人餐,免费WIFI,免费车位" "69" "199"
"【欢乐海岸】上本台湾涮涮锅(欢乐海岸店)" "上本台湾涮涮锅(欢乐海岸店):现金抵用1次" "68" "100"
"【东门商业圈】第1佳大鸡排" "单人餐,免费wifi" "22.8" "31"
"【龙岗中心区】隐秀山居酒店西餐厅" "单人自助午餐" "146" "182"
"【东门商业圈】CC手工蛋糕(东门店)" "现金抵用1次,可叠加使用" "29" "50"
"【2店通用】懿品肥牛火锅" "懿品肥牛火锅单人自助晚餐" "42" "58"
"【东门商业圈】第1佳大鸡排" "单人餐,免费wifi" "15.8" "21"
"【西乡】中天美景大酒店" "单人自助晚餐,免费wifi" "118" "168"
"【2店通用】丽阳果业" "红心奇异果礼盒1份(约5斤),支持快递包邮" "99" "268"
"【南油】元太祖火烤两吃" "单人自助餐,午餐晚餐通用" "75" "88"
"【龙岗中心区】隐秀山居酒店中餐厅" "10人餐,免费WiFi" "888" "2998"
"【创业天虹】旺轩海鲜酒家" "8-10人餐,节假日通用" "398" "1040.6"
"【观澜】黄记煌" "现金抵用1次" "69" "100"
"【东门商业圈】第1佳大鸡排" "单人餐,免费wifi" "19.8" "27"
"【皇岗】巴适烤鱼" "双人餐,提供免费WiFi" "78" "135"
"【龙岗中心区】隐秀山居酒店中餐厅" "4人餐,免费WiFi" "328" "896"
"【蛇口】MINI COUPLE" "饮品1杯,免费WiFi" "28" "39"
"【皇岗】巴适烤鱼" "2-3人餐,提供免费WiFi" "108" "134"
"【车公庙】POPS COOL" "冰棒2根,纯手工精心制作" "11.2" "16"
"【新安】鑫兴东北饺子馆" "4人餐,节假日通用" "118" "164"
"【平湖】好麦坊" "蛋糕1个,平湖,寮步镇可配送,3选1,约6磅" "158" "298"
"【车公庙】POPS COOL" "冰棒4根,纯手工精心制作" "29.9" "46"
"【梅林】汇丰源黄焖鸡米饭" "单人餐,免费WIFI" "17.8" "20.5"
"【南油】聚点串吧" "4人餐,免费wifi" "128" "175"
"【沙井】星铂酒店星雅轩花园餐厅" "单人自助晚餐" "78" "138"
"【梅林】汇丰源黄焖鸡米饭" "单人餐,免费WIFI" "15" "17.5"
"【南油】聚点串吧" "6-8人餐,免费wifi" "258" "357"
"【平湖】好麦坊" "水果蛋糕1个,3选1,约4磅" "108" "238"
"【海岸城/保利】研磨时光咖啡店" "单人餐,免费WiFi" "29.9" "43"

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jiabiao1602

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值