日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
R語(yǔ)言中如何使用RCurl包

這篇文章主要介紹“R語(yǔ)言中如何使用RCurl包”的相關(guān)知識(shí),小編通過(guò)實(shí)際案例向大家展示操作過(guò)程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“R語(yǔ)言中如何使用RCurl包”文章能幫助大家解決問(wèn)題。

創(chuàng)新互聯(lián)是一家專(zhuān)注于成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),夏邑網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:夏邑等地區(qū)。夏邑做網(wǎng)站價(jià)格咨詢(xún):18980820575

這一段時(shí)間在研究R里面的數(shù)據(jù)抓取相關(guān)包,時(shí)不時(shí)的能發(fā)掘出一些驚喜。

比如今天,我找到了一個(gè)自帶請(qǐng)求器的解析包,而且還是嵌入的pantomjs無(wú)頭瀏覽器,這樣就不用你再傻乎乎的再去裝個(gè)selenium驅(qū)動(dòng),也不用借助任何請(qǐng)求器(RCurl或者h(yuǎn)ttr)包就可以自動(dòng)解析帶有js腳本的HTML文檔。

耳聽(tīng)為虛,眼見(jiàn)為實(shí),還記得之前講解表格數(shù)據(jù)抓取的那一節(jié),遇到的天氣數(shù)據(jù)表格,里面的數(shù)據(jù)拿不到,有些棘手。害得我動(dòng)用了RSelenium調(diào)用了plantomjs才得以解決,但是!

R語(yǔ)言中如何使用RCurl包

今天講解的這個(gè)包將所有的任務(wù)量縮減到一句代碼!

library("rvest")
URL<-"https://www.aqistudy.cn/historydata/monthdata.php?city=北京" %>% xml2::url_escape(reserved ="][!$&'()*+,;=:/?@#")

大家可以試一試使用普通的請(qǐng)求方法是否可以成功獲取里面的表格(要是成功了算我輸?。。。?/p>

使用RCurl包請(qǐng)求!

header<-c("User-Agent"="Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36")
mytable <- getURL(URL,httpheader=header,.encoding="UTF-8") %>% htmlParse(encoding ="UTF-8") %>% readHTMLTable(header=TRUE)
$`NULL`
NULL

這是多大仇多大怨啊~_~

使用rvest試一試:

mytable <- URL %>%  read_html(encoding ="UTF-8") %>% html_table(header=TRUE) %>% `[[`(1)
[1] 月份     AQI      范圍     質(zhì)量等級(jí) PM2.5    PM10     SO2      CO       NO2      O3

恩,對(duì),這次進(jìn)步了,拿到了表頭,可是這有什么卵用!?。?/p>

使用selenium驅(qū)動(dòng)瀏覽器

#java -jar D:/selenium-server-standalone-3.3.1.jar
#system("java -jar D:/selenium-server-standalone-3.3.1.jar",intern=FALSE)

start_session(root="http://localhost:4444/wd/hub/",browser ="phantomjs")   post.url(URL) mytable<-page_source() %>% stri_conv(from="utf-8") %>% read_html() %>% html_table() quit_session()

R語(yǔ)言中如何使用RCurl包

這次總算拿到了!數(shù)一數(shù)寫(xiě)了多少字的代碼!

有木有更加快捷的方法呢,當(dāng)然有啦!

接下來(lái)瞪大眼睛看這一款神器!

使用rdom包:

stopifnot(Sys.which("phantomjs") != "")
#以上代碼檢測(cè)系統(tǒng)路徑中是否含有phantomjs瀏覽器
#如果沒(méi)有下載過(guò)phantomjs瀏覽器或者下載過(guò)但是沒(méi)有加入系統(tǒng)路徑,
#記得從新操作一下,否則一下函數(shù)無(wú)法運(yùn)行!devtools::install_github("cpsievert/rdom")
#安裝rdom包(如果總是提示timeout的話(huà),記得加載一下curl包)


library("rdom")
tbl <- rdom(URL) %>% readHTMLTable(header=TRUE)  %>% `[[`(1)

R語(yǔ)言中如何使用RCurl包

有木有看清楚什么情況,沒(méi)有,已經(jīng)完事兒,真的是只有一行代碼!

似不似,有點(diǎn)兒驚訝,rdom后臺(tái)調(diào)用了plantomjs瀏覽器渲染了整個(gè)html目標(biāo)文檔(包含里面的所有script標(biāo)簽里面的js動(dòng)態(tài)腳本),所以readHTMLTable函數(shù)才有機(jī)會(huì)提取里面的表格(而這個(gè)過(guò)程,普通請(qǐng)求器比如RCurl或者h(yuǎn)ttr都沒(méi)有權(quán)限辦到!),是不是很膩害呀!

下面這一句只是稍微修復(fù)一下編碼!

names(tbl) <- names(tbl) %>% stri_conv(from="utf-8")
DT::datatable(tbl)

R語(yǔ)言中如何使用RCurl包

R語(yǔ)言中如何使用RCurl包

rdom是一個(gè)很小眾的包,但是它的設(shè)計(jì)理念有點(diǎn)兒逆天,整個(gè)包只有一個(gè)函數(shù)——rdom,和包名相同,它的工作只有一個(gè),就是按照真實(shí)瀏覽器渲染HTML文檔的模式去渲染整個(gè)HTML文檔。在后臺(tái)調(diào)用plantomjs來(lái)處理渲染的過(guò)程,之后你可以自由的使用其他R中的高效快捷函數(shù)進(jìn)行元素提取。

關(guān)于“R語(yǔ)言中如何使用RCurl包”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。


本文名稱(chēng):R語(yǔ)言中如何使用RCurl包
本文路徑:http://www.dlmjj.cn/article/gpjesd.html