RCurl的三大函数:
getURL()
getForm()
postForm()
1.R的cat函数:
Concatenate and Print
连接和打印
2.移除变量:rm(target)
3.ctrl+L:清屏命令,查看数据类型:typeof(),sep是指默认隔开符
4.c(), 这个函数会生成一个向量
5.解析url地址组成
c=c(“https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=monline_dg&wd=RCurl&oq=R%26lt%3Burl&rsv_pq=d2e2cf8b000352bc&rsv_t=e78a3WSXg%2BPlTFBabIO8jFBgRgIoAAn%2BxQxuv8Gf68lAlih1ynRBuSgu0ndxB2B%2FSA&rqlang=cn&rsv_enter=0&rsv_sug3=32&rsv_sug1=15&rsv_sug7=100&rsv_sug4=1925&rsv_sug=1“)
getFormParams(c)
6.替换百度搜素关键字:英文没有问题,输入中文无法出现正确的页面url=getForm(“http://www.baidu.com/s“,ie=
+ “utf-8”,
+ f=
+ “8”,
+ rsv_bp=
+ “1”,
+ tn=
+ “monline_dg”,
+ wd =
+ “RCurl”,
+ oq =
+ “R%26lt%3Burl” ,
+ rsv_pq =
+ “d2e2cf8b000352bc” ,
+ rsv_t =
+ “e78a3WSXg%2BPlTFBabIO8jFBgRgIoAAn%2BxQxuv8Gf68lAlih1ynRBuSgu0ndxB2B%2FSA” ,
+ rqlang=
+ “cn” ,
+ rsv_enter=
+ “0” ,
+ rsv_sug3=
+ “32” ,
+ rsv_sug1=
+ “15” ,
+ rsv_sug7=
+ “100” ,
+ rsv_sug4=
+ “1925” ,
+ rsv_sug=
+ “1” )
write.table(url,”url.txt”) //写入txt文件
7.新浪模拟登录
讲的有点含糊不清,学到了一个函数,base64decode,BASE64不是加密,他只是把数据以16进治的形势表现出来而已,使用base64_decode函数反编译被BASE64编码的内容。
8.curl部分参数设置:
9.使用getBinaryURL()下载文件
url=”http://www.zzrsks.com.cn/UploadFiles/File/2012%E5%B9%B4%E8%81%8C%E7%A7%B0%E5%A4%96%E8%AF%AD%E8%80%83%E8%AF%95%E5%90%88%E6%A0%BC%E4%BA%BA%E5%91%98%E5%90%8D%E5%8D%95.xls”
temp<-getBinaryURL(url)
note<-file(“hellodata.xls”,open=”wb”)
writeBin(temp,note)
close(note)
10.批量下载
unlist(strsplit(as.character(Sys.time()),’ ‘))[2] #分割系统时间,unlist——解除list,as.character——转换为字符串
[1] “11:52:39”
paste()是连接字符串,lapply()是对list中的每一个元素做出function的处理,返回一个list
html=getURL(“http://rfunction.com/code/1202/“)
temp=strsplit(html,”
-
查看doc的内容时显示有乱码,但没关系,table的解析结果没有乱码
tables <-readHTMLTable(doc,header=F)
14.XPath
15.爬取大众点评电影团购
myheader <- c(
“User-Agent”=”Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.6) “,
“Accept”=”text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8”,
“Accept-Language”=”en-us”,
“Connection”=”keep-alive”,
“Accept-Charset”=”GB2312,utf-8;q=0.7,*;q=0.7”
) #伪装成浏览器,否则读不到网页
temp=getURL(“http://t.dianping.com/movie/guangzhou#nav“,httpheader=myheader)
k=htmlParse(temp)
getNodeSet(k,’//ul[@class=”tg-floor-list Fix tg-floor-list-freak”]//a[@class=”tg-floor-title”]’)#路径是xpath路径,可用viewxpath来检验正确性,注意是单引号,不是双引号youhui=sapply(getNodeSet(k,’//ul[@class=”tg-floor-list Fix tg-floor-list-freak”]//a[@class=”tg-floor-title”]’),xmlValue) #[]里的属性一定要用双引号,单引号不能识别
读取后面的页面信息
urllist=0
youhui2=0
page=1:5
urllist[page]=paste(“http://t.dianping.com/movie/guangzhou/tab_deal?pageno=“,page,sep=”“)
for(url in urllist)
{cat(url,”\n”)
temp=getURL(url,httpheader=myheader)
k=htmlParse(temp)
youhui=sapply(getNodeSet(k,’//ul[@class=”tg-floor-list Fix tg-floor-list-freak”]//a[@class=”tg-floor-title”]’),xmlValue)
youhui2<-c(youhui2,youhui) #添加向量元素
}
youhui2=youhui2[-(1)] #去除开始youhui2初始的位于1的0值。16.字符串处理基础
,collapse是针对向量的:
mychar=”dataguru”
list<-c(“data”,”duru”,”haha”)
substr(mychar,1,2)
[1] “da”substr(mychar,c(1,2),4)
[1] “data”
substring(mychar,c(1,2),4) #substr和substring的区别,substring可以检测到c(1,2)然后分别输出,substr只能从最小的数字开始输起
[1] “data” “ata”
substring(mychar,c(1,2),c(2,4) )
[1] “da” “ata”
match(“haha”,list) #返回匹配的位置 ,完全匹配
[1] 3
pmatch(“ha”,list) #不完全匹配
[1] 317.正则表达式
sub和gsub的区别在于,sub只替换第一个符合的,gsub替换所有符合的。
regexec,gregexpr返回匹配的位置。