七种之网络爬虫rcurl语言_第1页
七种之网络爬虫rcurl语言_第2页
七种之网络爬虫rcurl语言_第3页
七种之网络爬虫rcurl语言_第4页
七种之网络爬虫rcurl语言_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

RCurl作者RCurl的概述HTTP协议RCurl三大函数RCurlU.CDavis致力于借助统计整合进行的探RCurlTheRCurlpackageisanR-interfacetothelibcurllibrarythatprovidesHTTPfacilities.ThisallowsustodownloadfilesfromWebservers,postforms,useHTTPS(thesecureHTTP),usepersistentconnections,uploadfiles,usebinarycontent,handleredirects,passwordauthentication,etc.RCurlRlibcurl库的接口,HTTP的一些功能。例如,服务器文件保持连接上传文件采用二进制格式句柄重定向 认证等等curl:利用URLcurlHTTP协议传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)Web服务器传送到HTTP/1.1URLscheme指定低层使用的协议(例如:http,https,ftp)hostHTTPIP地址或者port#HTTP服务器的默认端口是80,这种情况下端可以省略path资源的路query-stringhttpanchor-请求Path-to-resource表示请求的资源Http/version-numberHTTP协议的版本号HostAccept浏览器端可以接受的类型Accept-encodingAccept-language浏览器自己接收的语User-agent 最重要的请求报头的成分,为了辨别用户、进行session而在用RefererConnectionHTTP/version-numberHTTP协议的版本号status-codemessage表示状态码以及状态信息HTTP客户端,HTTPHTTP/1.15类状态码,状态码由三位数字组成,第一个数字定义了响应的类1XX-表示请求已被成功接收,2XX-表示请求已被成功接收,理解,3XX-4XX-5XX-服务器未能实现合法的请求ServerDateLast-ModifiedContent-typeConnectionX-Powered-By表示是什么技术开发的,如Content-LengthSet-响应最重要的一个header,用于把发给相应的浏览器,每一个写入都会生成一个set-RCurlurl [1]ddebugGatherer(verboseTRUE这时候,d$value()tmp<-getURL(url=" ",debugfunction=d$update,verbose=TRUE)#[1]"text" "headerOut""dataIn" "sslDataIn""sslDataOut"cat(d$value()[1])#服务器地址及端cat(d$value()[2])#服务器返回的头信息cat(d$value()[3]提交给服务器的头信息d$reset()#d$value()d$value(#textheaderInheaderOutdataIn dataOutsslDataIns#"" h<-txt<-getURL(url="ht ",headerfunction=#[1]"Date" "Content-Type""Content-Length""Last-Modified""Connection"#[6] #[11]"Server" "Cache-control""BD #[16]"BDUSERID" "Accept-Ranges""status" h<-txt<-getURL("ht ",headerfunction=h$uNULL#[1]"HTTP/1.1200OK\r\nDate:Mon,23Feb201515:18:28MT\r\nContent-Type:text/html\r\nContent-Length:14613\r\nLast-Modified:Wed,03Sep201402:48:32GMT\r\nConnection:Keep-Alive\r\nVary:Accept-Encoding\r\nSet- :BAID -Dec-3723:55:55GMT;max- ; : AAFF56096E;expires=Thu,31-Dec-3723:55:55GMT;max-;:BDSVRTM=0;path=/\r\nP3P:CP=\"OTIDSPCORIVAOURINDCOM;nServer:BWS/1.1\r\nPragma:no-cache\r\nCache-control:no-cache\r\nBDPAGETYPE:1\r\nBDQID:0xc1ae773200820725\r\nBDUSERID:0\r\nAccept-Ranges:bytes\r\n\r\n"cat(h$value()catHTTP/1.1200Date:Mon,23Feb201515:18:28Content-Type:text/htmlContent-Length:14613Last-Modified:Wed,03Sep201402:48:32GMTConnection:Keep-AliveVary:Accept-Set-: 1;expires=Thu,31-Dec-3723:55:55GMT;max-7; : pires=Thu,31-Dec-3723:55:55GMT;max-age= ;pat :BDSVRTM=0;P3P:CP="OTIDSPCORIVAOURINDCOMServer:BWS/1.1Pragma:no-cacheCache-control:no-cacheBDPAGETYPE:1BDQID:0xc1ae773200820725BDUSERID:0Accept-Ranges:bytes#查看url请求的信息curl<-txt<-getURL(url="ht ",curl=curl)[1]"effective.url"[4]"namelookup.time"[7]"size.upload"[10]"speed.upload"[13]"ssl.verifyresult"[16]"content.length.upload" [19]"redirect.time" [22]"http.connectcode" [25]"os.errno" [28]" [31]"redirect.url" [34]"certinfo" #[1][1] [1][1][1]headerihponeMacOSmyheader<-c("User-Agent"="Mozilla/5.0(;U;CPUOS4_0_1likeMacOSX;ja-jp)AppleWebKit/532.9(KHTML,likeGecko)Version/4.0.5/8A306Safari/6531.22.7",)d<-tmp<-getURL(url="ht ",httpheader=myheader,debugfunction=d$update,verbose=T)cat(d$value()[3]GET/User-Agent:Mozilla/5.0(;U;CPUOS4_0_1likeMacOSX;ja-jp)AppleWebKit/532.9(KHTML,likeGecko)Version/4.0.5/8A306Safari/6531.22.7Accept:Accept-Language:en-usverbose输出的交互信httpheader设置信息报.encoding=”UTF-8”debugfunction,headerfunction,.paramsdirlistonly仅 ,这个在ftp的网页,非常好followlocationmaxredirs174[165] getForm()#在里面搜索“rcurl”的url为(浏览器为url<- wd=rcurl[1] [10] "rsv_enter"tmp<- /s",ie="utf-8",="8",rsv_bp="1",rsv_idx="2",ch="",tn="SE_hldp02870_0v135xhf",bar="",wd="rcurl",rsv_spt="1",rsv_pq="a3ed162a0088df8f",rsv_t="43d18gWNyd6HWpqDiKov7Dm548s4HY4cgcJlXc8ujpzRW9Okec2aOb5screzftZo5DJ60Cp7aILvRK2Q",rsv_enter="1",getForm函数不稳定(原因还不知道)23次,才能[1]"<html><body><scripttype=\"text/javascript\">function =n+'=;in='+b+';expires=Mon,01-Jan-197300:00:01GMT';}}}(function(){vara=..split(';');for(var[0])}})();(function(u){if(window.navigate&&typeofnavigate=='function')navigate(u);varua=navigator.userAgent;if(ua.match(/applewebkit/i)){varh= (h);varevt=.createEvent('MouseEvents');evt.initEvent('click',true,true);h.dispatchEvent(evt);}else{docum+u+'\">');}})('ht #getBinaryURL()一个文url<-"ht tmp<-getBinaryURL(url)note<-file("120103.R",open="wb")writeBin(tmp,note)#getBinaryURL()批量文url<- tmpRCurl::getURL(urlhttpheadermyheadertmp_files<-strsplit(x=tmp,split="<li><ahref=\"")[[1]]tmp_files1<-strsplit(tmp_files,split="\"")tmp_files2<-lapply(X=tmp_files1,function(file){filefiles<-unlist(tmp_files2)files<-files[c(-1,-2)]baseURL<-"ht for(iin1:length(files)){fullURL<-paste(baseURL,files[i],sep="")tmp<-getBinaryURL(fullURL)note<-file(paste("1202-",files[i],sep=""),open="writeBin(tmp,note)Sys.sleep(22}XMLwindows下对中文支持不理想(ubuntu下也不理想url<- _quickdata_new.jspurl<-uakes_p001.jspwp<-dochtmlParse(wpasTextTRUEencodingtablesreadHTMLTable(docheader=Fwhich2) Origintime(CST)Lat(°)Long(°)Depth(km)22012/01/0814:20:08.0 7.0M5.0NORTHERN,32012/01/0113:27:55.5 31.40138.30 360.0M7.0SOUTHEASTOFHONSHU,JAPAN42011/12/2723:21:58.5 10.0M7.0SOUTHWESTERNSIBERIA,RUSSIA52011/12/1413:04:56.2 -7.50146.80 120.0M7.2EASTERNNEWGUINEAREG.,P.N.G.62011/12/1209:42:34.0 39.60118.20 5.0M3.2NORTHEASTERNxmlXPath设置@:表示选择某个属性R语**语\.^$*+?方括号[],代表可以匹配其中任何一个字符。而^在[]中代表“非代表“之间[qjk]:q,j,k[^qjk]:q,j,k[a-z]:a至z[^a-z]:az小写字符的其它字符(可以是大写字符[a-z]+:|特别注意:\来转义表示\w:任意字母(包括下划线)[a-zA-Z0-\W:\w[^a-zA-Z0-\d:[0-\D:\d[^0-\s:任意一个空格,spacetab,newline\S:\s的反义,grep:返回匹配的id,agrep:返回匹配的id,正则替换:sub和gsubbgsub(pattern="b",recement="B",x=[1]gsub(pattern="b",recement="B",x=c("abcb","boy",[1]"aBcB""Boy"sub(pattern="b",recement="B",x=[1]sub(pattern="b",recement="B",x=c("abcb","baby[1]"aBcb"regexpr:返回一个数字,1表示匹配,-1表示不匹配,以及两个属性,gregexpr:list,useBytesR语言编写函数——豆瓣评分查R里头就可以批量查分了,恩,走起来。movieScore<-function(x){#提交搜索豆瓣表单search<- search_text=searchwebhtmlParse(search)#解析搜索结果页面resnodes<-getNodeSet(searchweb,ifreturn(NULL)elseresurl<-xmlGetAttr(resnodes[[1]],=resweb<-getURL(resurl,.encoding="UTF-8")content<-htmlParse(resweb,encoding="UTF-8")resnodes<-getNodeSet(content,namenodes<-getNodeSet(content,score<-xmlValue(resnodes[[1]])name<-return(list(name=name,score=}看看这部大烂片多少分####[1]"·富春山居图"####[1]APIAPI来调取分数,函movieScoreapi<-function(x)api<-"http url<-paste(api,x,"}",sep="")res<-getURL(url)reslist<-fromJSON(res)name<-score<-reslist$subjects[[1]]$rating$averagereturn(list(name=name,sco

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论