前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言之RCurl实现文件批量下载

R语言之RCurl实现文件批量下载

作者头像
云海谷天
发布2022-08-09 13:46:45
1.7K0
发布2022-08-09 13:46:45
举报
文章被收录于专栏:技术一点点成长

前言:

   RCurl工具包的作者是由Duncan Temple Lang现任加州大学 U.C. Davis分校副教授。他曾致力于借助统计整合进行信息技术的探索。使用者通过RCurl可以轻易访问网页,进行相关数据的抓取以及下载,为数据分析提供原始素材。近年RCurl在数据分析业界中使用也越来越流行。

Step1:安装RCurl

代码语言:javascript
复制
install.packages('RCurl')

Step2:代码实现

===========================

代码语言:javascript
复制
 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()间隔访问。具体实现方式仅需要在上述代码最后的循环内部加入如下一行代码:

代码语言:javascript
复制
Sys.sleep(2)  

结语:

  爬虫其实也就这么回事儿~本文利用R语言的RCurl工具包成功抓取到数据,在此也仅仅是给对数据相关分析感兴趣的朋友提供一丝参考而已。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-06-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Step1:安装RCurl
  • Step2:代码实现
  • Step3:抓取结果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档