用R语言的RCurl和正则表达式爬团购网的旅游团购数据

2 篇文章 0 订阅
2 篇文章 0 订阅

用R里的包Rcurl和正则表达式,代码如下

url1='http://www.dianping.com/search/category/2/10/g110'

web=readLines(url1,encoding='UTF-8');  #逐行读取网页源文件

data_name<-web[grep("data-name",web)];#找出含字符data-name的行
shop_name<-substr(data_name,regexpr('data-name=\"',data_name)+12,nchar(data_name)-28)  #仔细看网页源文件,算出具体的字符位置

> shop_name
 [1] "滋味港式粥火锅(工体店)"                 "宴山自助火锅(大悦城店)"                
 [3] "簋小山城(亚运村店)"                     "女队长重庆火锅(工体店)"                
 [5] "一湖重庆老火锅(燕莎桥店)"               "色煮艺 • 私房火锅(蓝色港湾汇中天恒店)" 
 [7] "女队长重庆火锅(望京店)"                 "格老灶火锅(悠唐店)"                    
 [9] "娘火锅(亚运村店)"                       "只耳冷锅鱼(保利店)"                    
[11] "野菜日式火锅"                           "坊胜利饭店(四道口店)"                  
[13] "军涮(广外店)"                           "火UFO芝士排骨&即席年糕火锅(南锣鼓巷店)"
[15] "林串串香(东直门簋街店)"                 "格老灶火锅(石景山店)"                  
[17] "方格火锅"                               "道火锅运动主题餐厅(天阶店)"            
[19] "塘火锅"                                 "坊胜利饭店(大成路店)"                  
[21] "簋小山城(簋街二店)"  


主要函数注释:

grep("goods-name",web):在web行文件中,寻找含有字符”goods-name”内容的行,返回行号

position <- regexpr('_',a):regexpr()函数对字符的定位很有用,返回值position为特定字符的位置,如字符串a中’_’的位置

nchar(a):返回a的字符个数

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值