通常read_html
コマンドを使用してhtmlテーブルをスクラップするのに問題はありませんが、特定のWebサイトで問題が発生しています。どんな助けでも大歓迎です。私のワークフローは以下の通りです:R's rvestパッケージとRSeleniumを使用したWebスクラブ
#Dependencies
library(rvest)
library(pipeR)
#Scrape table from site
url2 <- "http://priceonomics.com/hotels/rankings/#airbnb-apartments-all"
data2 <- url2 %>%
read_html() %>%
html_nodes(xpath='//*[@id="airbnb-apartments-all"]/table') %>%
html_table(fill = TRUE)
data2<-data2[[1]]
最終的には、正しい見出しは付いていますが、データはありません。私はそのサイトの2番目のテーブルを掻きたい。
data2
[1] Rank City $
<0 rows> (or 0-length row.names)
xpathを識別するためにGoogle Chromeを使用しました。私はまた、次のことを試してみた:
生成readHTMLTable(url2)
:
$`NULL`
NULL
$`NULL`
NULL
$`NULL`
NULL
は最後に、ウェブサイトは、Javaを使用している場合には、私はRのRSelenium
パッケージを使用してみましたが、私は接続できないようですサーバーに正しく:
library(RSelenium)
checkForServer()
startServer()
remDr <- remoteDriver(browserName="firefox", port=4444)
remDr$open(silent=T)
Undefined error in RCurl call.Error in queryRD(paste0(serverURL, "/session"), "POST", qdata = toJSON(serverOpts)) :
私は助言したいと思います...データを破壊的に割り当てるのではなく、別の名前を割り当てることです。 'data%read_html()' –
ありがとうございましたか、それとも私が従うかわかりませんが、単に "data2"の名前を変更することをお勧めしますか? –
破壊的な割り当てを行うと、中間結果を振り返ることはできません。 –