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"

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

  1. 项目实战 | 利用seurat包标记感兴趣的细胞群(再次分析)

    之前分析的,和老师讨论之后,还是有问题.明天,要向唐老师汇报这件事(既然交给我,我就要把它认认真真的完成.) ##########################加载完成数据############# ...

  2. ios 团购信息客户端demo(三)

    接上二篇的内容,今天我们就来介绍一下如何将解析出来的数据放入AQGridView中显示出来,因为我们的工程中已经将AQGridView导入了,所以我们在KKFirstViewController中直接 ...

  3. ios 团购信息客户端demo(一)

    团购信息客户端,主要整合了ASIHTTPREQUEST,KISSXML,AQGridView,MBProgressHUD这几个主要流行的IOS开发库,我们先来看一下效果图 首先我们新建一个IOS工程, ...

  4. Python利用bs4批量抓取网页图片并下载保存至本地

    Python利用bs4批量抓取网页图片并下载保存至本地 使用bs4抓取网页图片,bs4解析比较简单,需要预先了解一些html知识,bs4的逻辑简单,编写难度较低.本例以抓取某壁纸网站中的壁纸为例.(b ...

  5. [iPhone中级] iPhone团购信息客户端的开发 (三)

    接上二篇的内容,今天我们就来介绍一下如何将解析出来的数据放入AQGridView中显示出来,因为我们的工程中已经将AQGridView导入了,所以我们在KKFirstViewController中直接 ...

  6. [iPhone中级] iPhone团购信息客户端的开发 (一)

    因为工作的原因,已经很久没有更新博客了,这次我们就来完成一个稍显复杂的一个团购信息客户端,主要整合了ASIHTTPREQUEST,KISSXML,AQGridView,MBProgressHUD这几个 ...

  7. 糯米团—重制“iPhone团购信息客户端”(零)源代码与跳的那些坑和思考

    前言 早就盼望着这一天发布博客记录我写程序的路程!是的,是第一个写在csdn上的app制作笔记!终于完成这个程序!!虽然有bug且功能单一,作为一个练手的app做出还是很有成就感,故拿出来和同样的新手 ...

  8. 糯米团—重制“iPhone团购信息客户端”(一)

    前言 因为是重制的客户端,作者博客中写到的很详细的内容相同的这里不会再写,但会给出提示,对照查看. iPhone团购信息客户端的开发 目录结构 由于原作没有按照分层架构设计,所以这里我按照自己想法进行 ...

  9. [iPhone中级]iPhone团购信息客户端的开发 (二)

    接上一篇,这篇我们对我们的客户端加入KissXML,MBProgressHUD,AQridView这几个库,首先我们先加入KissXML,这是XML解析库,支持Xpath,可以方便添加更改任何节点.先 ...

最新文章

  1. 比特币现金网络会看到什么样的代币?
  2. Oracle连接odbc数据源
  3. Java Lambda表达式forEach无法跳出循环的解决思路
  4. Redisson--------基础入门
  5. ios 内存使用陷阱
  6. vue-day04-vue前端交互
  7. 来自我的破船大大的博客,记录他的iOS成长之路,与君同勉!
  8. python-OpenCV图像的基本运算
  9. python简单计算器下载安装到手机_python简单计算器
  10. C/C++指针 引用
  11. python 隐藏excel的列和行
  12. java 回溯法总结,回溯算法(JAVA)
  13. here-document at line 40 delimited by end-of-file (wanted `EOF‘)
  14. Shell 字符串转数组的三种方式
  15. 数据结构与算法A 查找
  16. php 绘制商品海报
  17. Mysql之常见可视化管理工具
  18. Ubuntu操作系统位数及版本
  19. 贴片汽车级TVS二极管SM8S40ATHE3/I国产替代料号:SM8S40A
  20. MySQL ERROR 1153 解决办法

热门文章

  1. 第七届全国大学生工程训练大赛智能+赛道生活垃圾分类垃圾训练步骤(win10+yolov4-tiny)
  2. 数字化“虚拟电厂”,精准管控助推节能减碳(一)
  3. 量子通信和量子计算机 龙头股,量子通信概念股龙头股有哪些?量子通信概念股一览...
  4. 使用python绘制折线图
  5. 终端神器 iterm
  6. java操控easyexcel读取excel表格数据为null或部分字段为null
  7. C# Net6开发Linux守护进程(后台服务程序,类似Windows服务)案例
  8. java 买票 多线程_java多线程买票问题
  9. openswan中ISAKMP交互过程关键函数接口
  10. [译]坦克的对比:德鲁伊 VS 战士