R语言之RCurl实现文件批量下载
前言:
RCurl工具包的作者是由Duncan Temple Lang现任加州大学 U.C. Davis分校副教授。他曾致力于借助统计整合进行信息技术的探索。使用者通过RCurl可以轻易访问网页,进行相关数据的抓取以及下载,为数据分析提供原始素材。近年RCurl在数据分析业界中使用也越来越流行。
Step1:安装RCurl
install.packages(‘RCurl‘)
Step2:代码实现
===========================
1 #利用RCurl包批量下载(抓取)文件 2 3 library(‘RCurl‘) 4 5 html=getURL("http://rfunction.com/code/1202/") 6 7 #查看网页源码,之后确定抓取信息的“代码字串”特征 8 9 temp=strsplit(html,"<li><a href=\"")[[1]] #列表 10 11 files=strsplit(temp,"\"") #转义字符“\” 12 13 files=lapply(files,function(x){x[1]}) 14 15 #可通过命令“?lapply”查看该函数具体用法 16 17 files 18 19 class(files) 20 21 files=unlist(files) #二维转一维 22 23 files=files[-(1:2)] #剔除特定元素 24 25 26 27 #---------------- 28 29 #设置下载目录,循环遍历 30 31 setwd(‘G:\\R_Project\\RCurl抓取的文件‘) #注意‘\\’转义 32 33 dir() 34 35 i=1 36 37 base="http://rfunction.com/code/1202/" 38 39 for(i in 1:length(files)){ 40 41 url=paste(base,files[i],sep=‘‘) #拼接url 42 43 temp=getBinaryURL(url) #获取网页内容 44 45 note=file(paste("1202",files[i],sep=‘.‘),open="wb") #文件属性 46 47 writeBin(temp,note) #文件写入内容 48 49 close(note) #关闭文件 50 51 }
Step3:抓取结果
注意:
1)若出现RCurl无法正常安装,请升级R版本。
2)为了防止因频繁访问该网站而被拉进黑名单,建议采用sleep()间隔访问。具体实现方式仅需要在上述代码最后的循环内部加入如下一行代码:
Sys.sleep(2)
结语:
爬虫其实也就这么回事儿~本文利用R语言的RCurl工具包成功抓取到数据,在此也仅仅是给对数据相关分析感兴趣的朋友提供一丝参考而已。
时间: 2024-10-21 10:29:31