前言:
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工具包成功抓取到數據,在此也僅僅是給對數據相關分析感興趣的朋友提供一絲參考而已。
