zoukankan      html  css  js  c++  java
  • 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工具包成功抓取到数据,在此也仅仅是给对数据相关分析感兴趣的朋友提供一丝参考而已。

  • 相关阅读:
    XML实例入门2
    XML入门
    XML实例入门1
    C语言复合梯形公式实现定积分
    一些界面库比较以及如何选择界面库
    网络阅读开篇
    vs2008 edit spin 十六进制实现
    jquery操作cookie
    Excel导入到DataTable
    SQL 查找某个字段的首字母
  • 原文地址:https://www.cnblogs.com/SeaSky0606/p/4589715.html
Copyright © 2011-2022 走看看