中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

R語言中如何使用RCurl包

發布時間:2022-03-28 10:16:28 來源:億速云 閱讀:982 作者:iii 欄目:大數據

這篇文章主要介紹“R語言中如何使用RCurl包”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“R語言中如何使用RCurl包”文章能幫助大家解決問題。

這一段時間在研究R里面的數據抓取相關包,時不時的能發掘出一些驚喜。

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

耳聽為虛,眼見為實,還記得之前講解表格數據抓取的那一節,遇到的天氣數據表格,里面的數據拿不到,有些棘手。害得我動用了RSelenium調用了plantomjs才得以解決,但是!

R語言中如何使用RCurl包

今天講解的這個包將所有的任務量縮減到一句代碼!

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

大家可以試一試使用普通的請求方法是否可以成功獲取里面的表格(要是成功了算我輸!!!)

使用RCurl包請求!

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      范圍     質量等級 PM2.5    PM10     SO2      CO       NO2      O3

恩,對,這次進步了,拿到了表頭,可是這有什么卵用!!!

使用selenium驅動瀏覽器

#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語言中如何使用RCurl包

這次總算拿到了!數一數寫了多少字的代碼!

有木有更加快捷的方法呢,當然有啦!

接下來瞪大眼睛看這一款神器!

使用rdom包:

stopifnot(Sys.which("phantomjs") != "")
#以上代碼檢測系統路徑中是否含有phantomjs瀏覽器
#如果沒有下載過phantomjs瀏覽器或者下載過但是沒有加入系統路徑,
#記得從新操作一下,否則一下函數無法運行!devtools::install_github("cpsievert/rdom")
#安裝rdom包(如果總是提示timeout的話,記得加載一下curl包)


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

R語言中如何使用RCurl包

有木有看清楚什么情況,沒有,已經完事兒,真的是只有一行代碼!

似不似,有點兒驚訝,rdom后臺調用了plantomjs瀏覽器渲染了整個html目標文檔(包含里面的所有script標簽里面的js動態腳本),所以readHTMLTable函數才有機會提取里面的表格(而這個過程,普通請求器比如RCurl或者httr都沒有權限辦到!),是不是很膩害呀!

下面這一句只是稍微修復一下編碼!

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

R語言中如何使用RCurl包

R語言中如何使用RCurl包

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

關于“R語言中如何使用RCurl包”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

承德县| 张家口市| 康平县| 武川县| 广宗县| 运城市| 吕梁市| 庆阳市| 安龙县| 宣汉县| 嵊泗县| 潞西市| 滨州市| 张家川| 荔波县| 苏尼特右旗| 获嘉县| 阿合奇县| 砀山县| 祥云县| 南皮县| 义马市| 柯坪县| 鸡西市| 上饶市| 太和县| 邹城市| 巧家县| 宁强县| 阳朔县| 天等县| 吴川市| 沅江市| 阳谷县| 辉南县| 襄汾县| 宜兰县| 黄石市| 句容市| 丽江市| 濉溪县|