用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的字符个数
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。