R-大数据分析挖掘(2-R爬虫)

RCurl作者:

==RCurl、XML、RSPython、Rmatlab

个人主页:http://anson.ucdavis.edu/~duncan/

(一)什么是curl

curl:利用URL语法在命令行的方式下工作的开元文件传输工具

curl背后的库就是libcurl

功能为:获得页面,有关认证,上传下载,信息搜索

(二)Http协议目前使用的是HTTP/1.1

它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器

(三)Rcurl三大函数

1.install.packages("RCurl")

2.

  • getUrl()
  • getForm()
  • postForm()

利用getUrl查看相关信息  url.exists()

(1)

实验代码:

(2)

(3)

实验:

(4)

myheader <- c(
"User-Agent"="Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.6) ",
"Accept"="text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Language"="en-us",
"Connection"="keep-alive",
"Accept-Charset"="GB2312,utf-8;q=0.7,*;q=0.7")

注:

(5)

(三)curl部分参数设置

(四)XMLParse

需要安装:XML

表格、 网页节点

对标准 XML 文件的解析函数xmlParse

对html的解析函数htmlTreeParse

下载表格:

(五)

抓取地震数据:

url <-" http://data.earthquake.cn/datashare/datashare_more_quickdata_new.jsp";
wp <- getURL(url)

doc <-htmlParse(wp,asText = TRUE)

tables <- readHTMLTable(doc,header=F)

参数which:

出错::

(六)Xpath

综合实例:R抓取CSDN数据

crawler<-function(url,xpath,content="text"){
    num_url<-length(url)
    result<-data.frame(url=0,vari=0)
    i<-1#记录第几个url
    tmp<-1#
    for(i_url in url){
        i_url_parse<-htmlParse(i_url,encoding="UTF-8")#读取url网页数据,并使用htmlParse转化。(xml文件使用xmlParse)
        node<-getNodeSet(i_url_parse,xpath)#通过xpath找到相应变量的xpath结点

        if(length(node)==0){#未爬取到数据,说明xpath有误
            result[tmp,1]<-i
            result[tmp,2]<-NA
            print(paste("注意:变量未能在第",i,"个页面中找到,我们会把该数据写为空值"))
            tmp<-tmp+1
        }else{

            for(j in 1:length(node)){
                result[tmp,1]<-i
                if(content=="text"){#欲爬取变量的内容
                    result[tmp,2]<-xmlValue(node[[j]])

                }else{#欲爬取变量的属性

		    print(node[[j]])
                    result[tmp,2]<-xmlGetAttr(node[[j]],content)

                }
                tmp<-tmp+1
            }
        }
        i<-i+1
    }
    result
}

url1<-"http://www.csdn.net/tag/"
xpath<-"//div[@class=‘overflow‘]/a"
content<-"text"
crawler(url1,xpath,content)

注意:

1.抓取地震数据
2.爬虫的多线程
  1. 爬取任务的管理问题:
     需要先将爬取的url列表,分成一些task,不同的task由不同的r程序进行处理
     任务的处理状态,需要r 更新到任务的维护列表
     出现任务挂掉时,需要可以读取上次任务爬取的点,数据库
     如果量很大:可以通过redis
  2.爬取程序,需要写成r程序脚本
     linux: crontab
     windows: 计划任务
3.爬取动态ip的问题
  1.爬虫的动态代理
    1.先获取一个iP池,百度搜索ip代理
    2.在程序中,动态的换 http 的ip属性
爬的过程要保持一个间隔,4秒

时间: 2024-08-11 05:44:47

R-大数据分析挖掘(2-R爬虫)的相关文章

大数据分析挖掘全流程实战视频教程:电商市场与销售趋势预测

大数据分析挖掘全流程实战视频教程:电商市场与销售趋势预测资源下载:https://pan.baidu.com/s/1VPydETNHqhDDcJ1Lpko1AA 提取码:o9mk 课程特色:特色一:一套课程,搞定企业级数据分析与挖掘全栈技术特色二:基于Linux+Windows两套系统手把手教你搭建企业数据分析/挖掘开发环境,带你从0~1特色三:电商企业经典数据分析与挖掘项目全程贯穿,教你从1~100 课程目标:1.掌握预测分析的理论基础,一些数据分析挖掘软件的使用技巧2.通过掌握的分析技术及软

天律的云端大数据分析挖掘之旅

随着数据爆炸式的增长,我们正被各种数据包围着,最为平常的使用网络.手机.各种电子设备,每天都在产生各种新的数据.大部分的企业和机构都面临着这样一个问题,需要从海量的历史.实时数据中寻找规律,从而为决策者提供科学的依据.但不可否认的是,现代所产生的信息量过于庞大,传统的业务软件已经远远不能满足这样的要求,而构建大规模数据处理中心对于大部分企业来讲都是一笔过于庞大的开支.这就迫切需要一种新颖的.高效的.成本低廉的技术来支撑对数据的挖掘工作,云计算无疑是最佳选择. 信息时代,一寸数据一寸金 IT环境已

在大数据分析/挖掘领域,哪些编程语言应用最多?

Tim Roy ,原来我也在这里 9 人赞同 更新一下答案—— 之前我提到用R,后来我自己也觉得有点撑不住,应该是技术不行吧.还是建议往Python方向发展. Python不局限于数据分析,还有许多其他用途,有利于拓展视野.同时如果把它作为一门入门语言,它的简洁性.严格的缩进.丰富的第三方库都能帮助初学者很好地入门. 传送一个在数据分析.挖掘方面,有哪些好书值得推荐? - 书籍推荐肖大神推荐的书籍都可以参考,其中有不少优秀教材,都是以Python作为编程工具的,比Machine Learning

下载零基础数据分析与挖掘R语言实战课程(R语言)

随着大数据在各行业的落地生根和蓬勃发展,能从数据中挖金子的数据分析人员越来越宝贝,于是很多的程序员都想转行到数据分析,挖掘技术哪家强?当然是R语言了,R语言的火热程度,从TIOBE上编程语言排名情况可见一斑.于是善于学习的程序员们开始了R语言的学习之旅.对于有其他语言背景的程序员来说,学习R的语法小菜一碟,因为它的语法的确太简单了,甚至有的同学说1周就能掌握R语言,的确如此.但是之后呢?……好像进行不下去了!死记硬背记住了两个分析模型却不明其意,输出结果如同天书不会解读,各种参数全部使用缺省值,

零基础数据分析与挖掘R语言实战课程(R语言)

随着大数据在各行业的落地生根和蓬勃发展,能从数据中挖金子的数据分析人员越来越宝贝,于是很多的程序员都想转行到数据分析, 挖掘技术哪家强?当然是R语言了,R语言的火热程度,从TIOBE上编程语言排名情况可见一斑.于是善于学习的程序员们开始了R语言的学习 之旅.对于有其他语言背景的程序员来说,学习R的语法小菜一碟,因为它的语法的确太简单了,甚至有的同学说1周就能掌握R语言,的确如 此.但是之后呢?……好像进行不下去了!死记硬背记住了两个分析模型却不明其意,输出结果如同天书不会解读,各种参数全部使用缺

R简单数据分析

眼下大数据口号满天飞,今天拿我微信圈朋友一段时间内分享内容作为数据,用R包的算法实现简单分析. 由于微信没有接口获取数据,暂时只能手动记录数据,主要是做个小尝试,数据获取方式是其次. 1)我们看看微信圈活跃的朋友. PS:知道为何我们的流量烧的这么快了吧?这些小伙伴八成是运营商潜伏过来的余则成,在背后分成还要我们帮忙数钱,后续我会揪出那个人,敬请期待. 2)我们看看微信圈朋友的喜好. PS:喜欢分享链接的小伙伴一般喜欢晒图片,有木有?亲. 3)用图表讲述故事,有图有真相. 微信圈内容占比 PS:

【Hadoop大数据分析与挖掘实战】(三)----------P23~25

6.安装Hadoop 1)在Hadoop网站下,下载稳定版的并且已经编译好的二进制包,并解压缩. [[email protected] ~]$ wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz [[email protected] ~]$ tar -zxvf hadoop-2.7.3.tar.gz ~/opt [[email protected] ~]$ ~/opt/hado

R语言速成实战 R语言数据分析实战

详情请交流  QQ  709639943 00.R语言速成实战 00.R语言数据分析实战 00.Python+Django+Ansible Playbook自动化运维项目实战 00.Java深入微服务原理改造房产销售平台 00.Python3入门机器学习 经典算法与应用 00.老司机学python篇:第一季(基础速过.机器学习入门) 00.Python 从入门到精通 78节.2000多分钟.36小时的高质量.精品.1080P高清视频教程!包括标准库.socket网络编程.多线程.多进程和协程.

R语言数据分析系列六

R语言数据分析系列六 -- by comaple.zhang 上一节讲了R语言作图,本节来讲讲当你拿到一个数据集的时候怎样下手分析,数据分析的第一步.探索性数据分析. 统计量,即统计学里面关注的数据集的几个指标.经常使用的例如以下:最小值,最大值,四分位数,均值,中位数,众数,方差,标准差.极差,偏度,峰度 先来解释一下各个量得含义,浅显就不说了,这里主要说一下不常见的 众数:出现次数最多的 方差:每一个样本值与均值的差得平方和的平均数 标准差:又称均方差,是方差的二次方根.用来衡量一个数据集的