R网络爬虫
来源:互联网 发布:逆战柯尔特宏数据 编辑:程序博客网 时间:2024/06/06 01:29
网上关于R的网络爬虫少之又少,即使找到代码,由于各方面原因总是不能成功运行。对于搞数据分析的筒子们来说,从互联网上获取数据是非常重要的,于是决定自己写一个简单的基于R的网络爬虫,然后共享出来供大家参考。
所扒的数据为新浪财经—股票---中国银行---历史信息中的第一页表格数据,连接:http://vip.stock.finance.sina.com.cn/corp/go.php/vMS_MarketHistory/stockid/601988.phtml?year=2015&jidu=2。
library(RCurl)temp=getURL("http://vip.stock.finance.sina.com.cn/corp/go.php/vMS_MarketHistory/stockid/601988.phtml?year=2015&jidu=2") #将此网页的元素装进tempk=strsplit(temp,"\r\n")[[1]] #将取出的网页按行划分,此时k有一个元素(属性),此属性有很多行,[[1]]为取出第一个元素#k[4] #测试:取出第四行元素#########################时间###########################timeadr=k[grep("a target='_blank'",k)+1] #根据正则表达式“a target='_blank'”定位要抓取的字符串,由于定位行的下一行时间比较好取,所以+1time=substring(timeadr,4,13)#获得时间#########################开盘价###########################fpriceadr=k[grep("a target='_blank'",k)+3]#获得”开盘价“定位行fprice=gregexpr(">\\d+",fpriceadr)#获得"开盘价"在行中的准确位置。用正则表达式确定数字的位置(大于号后边紧跟一个或多个数字)fprices=fpriceadr#构造一个相同大小的向量for(i in 1:length(fpriceadr)){ tempp=fprice[[i]] fprices[i]=substring(fpriceadr[i],tempp+1,tempp+attr(tempp,'match.length')+3)} fpricesfprices=as.numeric(fprices)#########################最高价###########################topadr=k[grep("a target='_blank'",k)+4]ftop=gregexpr(">\\d+",topadr)ftops=topadrfor(i in 1:length(topadr)){ tempp=ftop[[i]] ftops[i]=substring(topadr[i],tempp+1,tempp+attr(tempp,'match.length')+3)}ftopsftops=as.numeric(ftops)#########################收盘价###########################cpriceadr=k[grep("a target='_blank'",k)+5]cprice=gregexpr(">\\d+",cpriceadr)cprices=cpriceadrfor(i in 1:length(cpriceadr)){ tempp=cprice[[i]] cprices[i]=substring(cpriceadr[i],tempp+1,tempp+attr(tempp,'match.length')+3)}cpricescprices=as.numeric(cprices)#########################最低价###########################lowadr=k[grep("a target='_blank'",k)+6]flow=gregexpr(">\\d+",lowadr)flows=lowadrfor(i in 1:length(lowadr)){ tempp=flow[[i]] flows[i]=substring(lowadr[i],tempp+1,tempp+attr(tempp,'match.length')+3)}flowsflows=as.numeric(flows)#########################交易量###########################sumadr=k[grep("a target='_blank'",k)+7]fsum=gregexpr(">\\d+",sumadr)fsum_2=gregexpr("\\d<",sumadr)#数字长度不同,用fsum和fsum_2截断fsums=sumadrfor(i in 1:length(sumadr)){ tempp=fsum[[i]] tempp_2=fsum_2[[i]] fsums[i]=substring(sumadr[i],tempp+1,tempp_2)}fsumsfsums=as.numeric(fsums)#########################交易额###########################moneyadr=k[grep("a target='_blank'",k)+8]fmoney=gregexpr(">\\d+",moneyadr)fmoneys=moneyadrfor(i in 1:length(moneyadr)){ tempp=fmoney[[i]] fmoneys[i]=substring(moneyadr[i],tempp+1,tempp++10)}fmoneysfmoneys=as.numeric(fmoneys)##########################################################bank=cbind(time,fprices,ftops,cprices,flows,fsums,fmoneys)bank
0 0
- R网络爬虫
- R网络爬虫之批量下载
- R网络爬虫之表格下载
- R网络爬虫之酒店团购
- 炼数成金R七种武器之网络爬虫RCurl
- R爬虫(一)
- R语言网页爬虫
- R 爬虫入门
- R语言爬虫尝试
- 网络爬虫
- 网络爬虫
- 网络爬虫
- 网络爬虫
- 网络爬虫
- 网络爬虫
- 网络爬虫
- 网络爬虫
- 网络爬虫
- 自定义导航
- PCRE函数简介和使用示例
- CDLinux U盘刻录启动盘(亲测)
- XML解析神奇比较Jsoup or Xpath
- 批处理大全
- R网络爬虫
- IAR生成文件链接过程解析
- 为什么需要实体类
- pomelo的push机制(channel)和源码解读
- 双向选择弹出框
- smack类库介绍和使用
- Linux下遇到的问题们
- 各种坐标体系之间如何转换?
- MySQL 数据库常见操作