R语言之RCurl实现文件批量下载
前言:
RCurl工具包的作者是由Duncan Temple Lang现任加州大学 U.C. Davis分校副教授。他曾致力于借助统计整合进行信息技术的探索。使用者通过RCurl可以轻易访问网页,进行相关数据的抓取以及下载,为数据分析提供原始素材。近年RCurl在数据分析业界中使用也越来越流行。
Step1:安装RCurl
install.packages('RCurl')
Step2:代码实现
===========================
 #利用RCurl包批量下载(抓取)文件
 library('RCurl')
 html=getURL("http://rfunction.com/code/1202/")
 #查看网页源码,之后确定抓取信息的“代码字串”特征
 temp=strsplit(html,"<li><a href=\"")[[]]   #列表
 files=strsplit(temp,"\"")   #转义字符“\”
 files=lapply(files,function(x){x[]}) 
 #可通过命令“?lapply”查看该函数具体用法
 files
 class(files)
 files=unlist(files)    #二维转一维
 files=files[-(:)]     #剔除特定元素
 #----------------
 #设置下载目录,循环遍历
 setwd('G:\\R_Project\\RCurl抓取的文件')     #注意‘\\’转义
 dir()
 i=
 base="http://rfunction.com/code/1202/"
 for(i in :length(files)){
 url=paste(base,files[i],sep='')    #拼接url
 temp=getBinaryURL(url)    #获取网页内容
 note=file(paste("",files[i],sep='.'),open="wb")   #文件属性
 writeBin(temp,note)     #文件写入内容
 close(note)         #关闭文件
 }
Step3:抓取结果

注意:
1)若出现RCurl无法正常安装,请升级R版本。
2)为了防止因频繁访问该网站而被拉进黑名单,建议采用sleep()间隔访问。具体实现方式仅需要在上述代码最后的循环内部加入如下一行代码:
Sys.sleep(2)
结语:
爬虫其实也就这么回事儿~本文利用R语言的RCurl工具包成功抓取到数据,在此也仅仅是给对数据相关分析感兴趣的朋友提供一丝参考而已。
R语言之RCurl实现文件批量下载的更多相关文章
- C#子线程中更新ui-----c# 多线程多文件批量下载
		
c# 多线程多文件批量下载 废话少说,先演示一张效果图 简单说下过程喽 开发过程中其实总是会碰到项目想应用下载文件~ 看其他语言有很多封装好的类库可以使用~~ 作为小白的我并没有找到很多c#的案例 ...
 - SQL 横转竖 、竖专横 (转载)  使用Dapper.Contrib 开发.net core程序,兼容多种数据库  C# 读取PDF多级书签  Json.net日期格式化设置  ASPNET 下载共享文件  ASPNET 文件批量下载  递归,循环,尾递归   利用IDisposable接口构建包含非托管资源对象 《.NET 进阶指南》读书笔记2------定义不可改变类型
		
SQL 横转竖 .竖专横 (转载) 普通行列转换 问题:假设有张学生成绩表(tb)如下: 姓名 课程 分数 张三 语文 74 张三 数学 83 张三 物理 93 李四 语文 74 李四 数学 84 ...
 - Jsp实现筛选并压缩文件批量下载
		
Jsp实现筛选并压缩文件批量下载 首先明确一下需求,网页端点击一下button,传递特定的参数到download.jsp网页,筛选文件,对过滤得到的文件进行压缩,然后返回前端一个压缩包下载. 以下的代 ...
 - R语言如何读取.csv文件
		
以下是我关于如何在R语言中读取.csv文件及一些需要注意的细节的总结,希望能帮助到大家~
 - js 实现多文件批量下载
		
关于兼容性问题: <a href="xxx.docx" target='_blank'></a> 下载文件时,这种写法是没有兼容性问题:但是下载图片时,IE ...
 - R语言从小木虫网页批量提取考研调剂信息
		
一.从URL读取并返回html树 1.1 Rcurl包 使用Rcurl包可以方便的向服务器发出请求,捕获URI,get 和 post 表单.比R socktet连接要提供更高水 ...
 - NET 文件批量下载
		
HTML <a class="btn btn-warning" id="btnDownload">选中下载</a> JS /* 批量下载 ...
 - java+文件批量下载
		
这篇文章主要介绍了Java实现批量下载选中文件功能,非常不错,具有参考借鉴价值,需要的朋友可以参考下 1.在action中定义变量 private List<String> downLoa ...
 - jquery-ajax实现文件批量下载
		
直接看代码: <script type="text/javascript"> //全选控制 $(document).ready(function() { $(" ...
 
随机推荐
- NOIP模拟赛 最大匹配
			
问题描述 mhy12345学习了二分图匹配,二分图是一种特殊的图,其中的点可以分到两个集合中,使得相同的集合中的点两两没有连边. 图的“匹配”是指这个图的一个边集,里面的边两两不存在公共端点. ...
 - Oracle 中 decode 函数用法(转)
			
含义解释: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下: IF 条件=值1 THEN RETURN(翻译值1) ELSIF 条件=值2 THE ...
 - 封装第三方jquery插件
			
需要自己编写 directives 的情况通常是当你使用了第三方的 jQuery 插件.因为插件在 AngularJS 之外对表单值进行更改,并不能即时反应到 Model 中.例如我们用得比较多的 j ...
 - ios开发--多台电脑共用一个开发证书的方法
			
Xcode5 以前的操作步骤是: idp证书如何给另一台机子使用 先在原电脑上用Xcode->Windows->Organizer, 再点击Developer profile, 在其最下面 ...
 - Linux 信号详解六(可靠信号与不可靠信号)
			
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h&g ...
 - jboss EAP 6.2+ 通过代码控制JNDI数据源
			
通过Jboss提供的API,可以操控JBoss,效果跟在管理控制台手动操作完全一样,下面是示例代码: 一.pom.xml添加依赖项 <dependency> <groupId> ...
 - spring注解scheduled实现定时任务
			
只想说,spring注解scheduled实现定时任务使用真的非常简单. 一.配置spring.xml文件 1.在beans加入xmlns:task="http://www.springfr ...
 - Android编译报Errors running builder 'Android Pre Compiler' on project 'XXX' java.lang.NullPointerException
			
编译android时,遇到报错:Errors occurred during the build.Errors running builder 'Android Pre Compiler' on pr ...
 - iOS搜索附近的位置(类似微博朋友圈位置)
			
说什么都是苍白的,直接上图~ 在某些情况下,我们需要获取用户周边的位置,来让用户选取.例如微信的朋友圈,在发一条朋友圈时可以选择地点,就是使用这样的功能. 基于以上的情况(其实也就是为了模仿微信),有 ...
 - 学习SQLite之路(一)
			
工作快一年了,接触的东西不是很多,学到的东西也不多.无意中看到公司的代码有一点关于sqlite3的(不是我这一层负责的代码),于是乎就学学试试. 参考: http://www.runoob.com/s ...