R网络爬虫

网上关于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")
#将此网页的元素装进temp
k=strsplit(temp,"\r\n")[[1]]
#将取出的网页按行划分,此时k有一个元素(属性),此属性有很多行,[[1]]为取出第一个元素
#k[4]  #测试:取出第四行元素

#########################时间###########################
timeadr=k[grep("a target='_blank'",k)+1]
#根据正则表达式“a target='_blank'”定位要抓取的字符串,由于定位行的下一行时间比较好取,所以+1
time=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)
}

fprices
fprices=as.numeric(fprices)
#########################最高价###########################
topadr=k[grep("a target='_blank'",k)+4]
ftop=gregexpr(">\\d+",topadr)
ftops=topadr
for(i in 1:length(topadr))
{
  tempp=ftop[[i]]
  ftops[i]=substring(topadr[i],tempp+1,tempp+attr(tempp,'match.length')+3)
}
ftops
ftops=as.numeric(ftops)
#########################收盘价###########################
cpriceadr=k[grep("a target='_blank'",k)+5]
cprice=gregexpr(">\\d+",cpriceadr)
cprices=cpriceadr
for(i in 1:length(cpriceadr))
{
  tempp=cprice[[i]]
  cprices[i]=substring(cpriceadr[i],tempp+1,tempp+attr(tempp,'match.length')+3)
}
cprices
cprices=as.numeric(cprices)
#########################最低价###########################
lowadr=k[grep("a target='_blank'",k)+6]
flow=gregexpr(">\\d+",lowadr)
flows=lowadr
for(i in 1:length(lowadr))
{
  tempp=flow[[i]]
  flows[i]=substring(lowadr[i],tempp+1,tempp+attr(tempp,'match.length')+3)
}
flows
flows=as.numeric(flows)
#########################交易量###########################
sumadr=k[grep("a target='_blank'",k)+7]
fsum=gregexpr(">\\d+",sumadr)
fsum_2=gregexpr("\\d<",sumadr)
#数字长度不同,用fsum和fsum_2截断
fsums=sumadr
for(i in 1:length(sumadr))
{
  tempp=fsum[[i]]
  tempp_2=fsum_2[[i]]
  fsums[i]=substring(sumadr[i],tempp+1,tempp_2)
}
fsums
fsums=as.numeric(fsums)
#########################交易额###########################
moneyadr=k[grep("a target='_blank'",k)+8]
fmoney=gregexpr(">\\d+",moneyadr)
fmoneys=moneyadr
for(i in 1:length(moneyadr))
{
  tempp=fmoney[[i]]
  fmoneys[i]=substring(moneyadr[i],tempp+1,tempp++10)
}
fmoneys
fmoneys=as.numeric(fmoneys)

##########################################################
bank=cbind(time,fprices,ftops,cprices,flows,fsums,fmoneys)
bank
时间: 2024-10-29 18:13:54

R网络爬虫的相关文章

在python3中使用urllib.request编写简单的网络爬虫

Python官方提供了用于编写网络爬虫的包 urllib.request, 我们主要用它进行打开url,读取url里面的内容,下载里面的图片. 分以下几步: step1:用urllib.request.urlopen打开目标网站 step2:由于urllib.request.urlopen返回的是一个http.client.HTTPResponse object,无法直接读取里面的内容,所以直接调用该对象的方法read(),获取到页面代码,存到html里 step3:构建正则表达式,从页面代码里

利用Python编写网络爬虫下载文章

#coding: utf-8 #title..href... str0='blabla<a title="<论电影的七个元素>——关于我对电影的一些看法以及<后会无期>的一些消息" target="_blank" href="http://blog.sina.com.cn/s/blog_4701280b0102eo83.html"><论电影的七个元素>——关于我对电…</a>' impo

【转】网络爬虫获取网站图片

转自:http://blog.csdn.net/huangxy10/article/details/8120106 备注:把项目属性中的字符集改成多字节集合? 1 // 网络爬虫.cpp : 定义控制台应用程序的入口点. 2 // 3 4 #include "stdafx.h" 5 /* 6 7 int _tmain(int argc, _TCHAR* argv[]) 8 { 9 return 0; 10 } 11 12 */ 13 14 //#include <Windows.

Python网络爬虫

http://blog.csdn.net/pi9nc/article/details/9734437 一.网络爬虫的定义 网络爬虫,即Web Spider,是一个很形象的名字. 把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛.网络蜘蛛是通过网页的链接地址来寻找网页的. 从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址, 然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止. 如果把整个互联网当成一个网站,那么

Socket网络编程--网络爬虫(1)

我们这个系列准备讲一下--网络爬虫.网络爬虫是搜索引擎系统中十分重要的组成部分,它负责从互联网中搜集网页,采集信息,这些网页信息用于建立索引从而为搜索引擎提供支持,它决定着整个引擎系统的内容是否丰富,信息是否即时,因此其性能的优劣直接影响着搜索引擎的效果.网络爬虫的基本工作原理: (1)从一个初始URL集合中挑选一个URL,下载该URL对应的页面: (2)解析该页面,从该页面中抽取出其包含的URL集合,接下来将抽取的URL集合再添加到初始URL集合中: (3)重复前两个过程,直到爬虫达到某种停止

156个Python网络爬虫资源

本列表包含Python网页抓取和数据处理相关的库. 网络相关 通用 urllib - 网络库(标准库) requests - 网络库 grab - 网络库(基于pycurl) pycurl - 网络库 (与libcurl绑定) urllib3 - 具有线程安全连接池.文件psot支持.高可用的Python HTTP库 httplib2 - 网络库 RoboBrowser - 一个无需独立浏览器即可访问网页的简单.pythonic的库 MechanicalSoup - 能完成自动网站交互的Pyth

Python网络爬虫与信息提取(中国大学mooc)

目录 目录 Python网络爬虫与信息提取 淘宝商品比价定向爬虫 目标获取淘宝搜索页面的信息 理解淘宝的搜索接口翻页的处理 技术路线requests-refootnote 代码如下 股票数据定向爬虫 列表内容 爬取网站原则 代码如下 代码优化 Python网络爬虫与信息提取 淘宝商品比价定向爬虫 股票数据定向爬虫 1. 淘宝商品比价定向爬虫 功能描述 目标:获取淘宝搜索页面的信息 理解:淘宝的搜索接口翻页的处理 技术路线:requests-re[^footnote]. 代码如下: #CrowTa

iOS开发——网络OC篇&amp;网络爬虫简单介绍

网络爬虫简单介绍 先来看看网络爬虫的基本原理: 一个通用的网络爬虫的框架如图所示: 网络爬虫的基本工作流程如下: 1.首先选取一部分精心挑选的种子URL: 2.将这些URL放入待抓取URL队列: 3.从待抓取URL队列中取出待抓取在URL,解析DNS,并且得到主机的ip,并将URL对应的网页下载下来,存储进已下载网页库中.此外,将这些URL放进已抓取URL队列. 4.分析已抓取URL队列中的URL,分析其中的其他URL,并且将URL放入待抓取URL队列,从而进入下一个循环. 以下内容均为本人个人

C++ 实现网络爬虫

吐槽 前天心血来潮, 把自己面试经历下了下来. 我觉得自己求职一路来比较心酸, 也付出了比一般人更多的汗水. 本以为写出来, 好歹可以作为一篇励志故事. 得到的评论却是, 语言只是一门工具. ||| 这句话我已经听了4年了! 我以前也是XX, 现在XXX. ||| 直到你膝盖中了一箭? 我也是用c的...只能说,重要的是一种学习的能力,会用即可. ||| 呵呵. 可能能对于你的同学,你是优秀的,但是可能对于你想工作的方向的公司来说,你会的太少,不值得一些公司去培养,所以还是建议你把基础再好好踏实