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

  • 相关阅读:
    HDU 1813 Escape from Tetris
    BZOJ 2276 Temperature
    BZOJ 4499 线性函数
    BZOJ 3131 淘金
    HDU 5738 Eureka
    POJ 2409 Let it Bead
    POJ 1286 Necklace of Beads
    POJ 1696 Space Ant
    Fox And Jumping
    Recover the String
  • 原文地址:https://www.cnblogs.com/SeaSky0606/p/4589715.html
Copyright © 2011-2022 走看看