0
我剛剛編輯我的問題,使其更一般: 「如何使用r刮臉,當格式不包括在任何r功能?」刮臉並不總是很容易
首先,我應該如何知道格式是否匹配rvest
可以提取的r函數?
其次,假設我嘗試了所有可用的抓取功能並且失敗了,我該如何繼續?自己寫一個解析函數?有沒有更簡單的方法來做到這一點?
如果readHTMLTable
不能爲這個實例工作,除了解析一個巨大的字符串操作中的html代碼之外,我還應該追求哪些其他選項?
我剛剛編輯我的問題,使其更一般: 「如何使用r刮臉,當格式不包括在任何r功能?」刮臉並不總是很容易
首先,我應該如何知道格式是否匹配rvest
可以提取的r函數?
其次,假設我嘗試了所有可用的抓取功能並且失敗了,我該如何繼續?自己寫一個解析函數?有沒有更簡單的方法來做到這一點?
如果readHTMLTable
不能爲這個實例工作,除了解析一個巨大的字符串操作中的html代碼之外,我還應該追求哪些其他選項?
我認爲這個問題的一般答案是「用任何語言刮臉往往是脖子上的疼痛」。這是因爲人們隨意地將東西放在網上,糟糕的格式很難讓機器解析。
我不會做大量的抓取,也沒有比「在頁面源視圖中查找,使用反覆試驗」更好的答案。
它看起來像表格結構嚴重;如果你嘗試提取<tr>
(錶行)你收到垃圾...
Weblink <- "http://hmofs.northwestern.edu/hc/crystals.php"
library(rvest)
rr <- read_html(Weblink)
tab2 <- html_nodes(rr,"table")[4] ## get 4th table
vals <- html_text(html_nodes(tab2,"td")) ## get *all* elements in 4th table
現在只拿數值 - 表的第7列是下載的信息,並得到丟棄這樣
vals <- suppressWarnings(na.omit(as.numeric(vals)))
matrix(vals,byrow=TRUE,ncol=6)
閱讀FM:幫助示例首先讀取文檔:'doc = htmlParse(url); tableNodes = getNodeSet(doc,「// table」); tb = readHTMLTable(tableNodes [[2]])' –
此外,它看起來不像HTML表格。可能看起來像一張桌子,但實際上有不同的結構。 –
嘗試使用面向XML的函數進行閱讀。 –