問題は、テーブルの残りの部分を表示するには「すべて表示」ボタンをクリックする必要があることです。これはrvestではできません。あなたは[ヘッドレス]ブラウザを指示しているのでこのように、RSeleniumを使用してナビゲートするとrvestが
library(RSelenium)
library(rvest)
pJS <- phantom() # install PhantomJS if necessary
remDr <- remoteDriver(browserName = 'phantomjs')
remDr$open()
remDr$navigate(url)
button <- remDr$findElement(using = 'css selector', 'a#loadWholeList')
button$clickElement()
Sys.sleep(60) # or just wait a while, or rerun the following bits till they work
html <- remDr$getPageSource()
cases <- html[[1]] %>% read_html() %>%
html_node('table#cases-list') %>%
html_table()
if(nrow(cases) > 26){
remDr$close()
pJS$stop()
}
、解析するために、クリックした後のビットは、テーブルが完了した場合に応じて、あなたに25行または471行を与える可能性があり読み込み中。テーブルはかなり大きいので、通常のブラウザと同じように、読み込むにはしばらく時間がかかります。すべてが手に入らない場合は、しばらく待ってからSys.sleep
の行をもう一度実行してください。しかし忍耐で
、:
tail(cases[, 1:3])
## No. Year of initiation Short casename
## 466 466 1995 Goetz v. Burundi (I)
## 467 467 1995 Leaf Tobacco v. Albania
## 468 468 1994 Gruslin v. Malaysia (I)
## 469 469 1994 Saar Papier v. Poland (I)
## 470 470 1993 AMT v. Zaire
## 471 471 1987 AAPL v. Sri Lanka
それはあなたがRSeleniumを使用する必要がありますので、XHRリクエストURLをロードしようとしたときのjavascriptのための追加的な例とWebサーバのチェックをロードするためのXHRリクエストを使用しています。 – hrbrmstr