2016-08-16 8 views
0

を含むスクラップウェブサイトthis websiteからハイパーリンクを抽出したいのですが、それはデンマーク語では怖いことはありません。ハイパーリンクは右側(v15、v14、v13など)[example]にあります。 私が何らかの理由で掻き取ろうとするウェブサイトは、jquery/javascriptの検索結果を使用しています。これは私のに非常に基づいている HTMLの限られた知識と間違っている可能性があります。JS/jquery code with R

私は(私は「rvest」-packageを使用)、この事実を実行するには、次のコードができなくなります考える

sdslink="http://karakterstatistik.stads.ku.dk/#searchText=&term=&block=&institute=null&faculty=&searchingCourses=true&page=1" 
s_link = recs %>% 
read_html(encoding = "UTF-8") %>% 
html_nodes("#searchResults a") %>% 
html_attr("href") 

私は動作しますが、それは使って手動でページをダウンロードするために私を必要とする方法を発見しました"右クリック" +各ページの "名前を付けて保存"。しかし、これはハイパーリンクのために合計100ページを削りたいので、実現不可能です。

私はhttrrと組み合わせたjsonliteパッケージを使用しようとしましたが、正しい.jsonファイルを見つけることができません。

jsonliteを動作させ、「別名で保存」ソリューションまたは3番目に巧妙なパスを自動化するソリューションがあれば幸いです。

答えて

2

1つのアプローチは、RSeleniumを使用することです。ここにあなたを始めるための簡単なコードがあります。私はあなたがすでにRSeleniumとwebdriverをインストールしていると仮定します。興味のあるあなたのサイトに移動します。

webElem <- remDr$findElement("name", "submit") 
webElem$clickElement() 

保存最初の5ページ:それがあった助けのため

html_source <- vector("list", 5) 
i <- 1 
while (i <= 5) { 
    html_source[[i]] <- remDr$getPageSource() 
    webElem <- remDr$findElement("id", "next") 
    webElem$clickElement() 
    Sys.sleep(2) 
    i <- i + 1 
} 
remDr$close() 
+0

おかげでたくさんの

library(RSelenium) startServer() remDr <- remoteDriver(remoteServerAddr = "localhost", port = 4444, browserName = "chrome") remDr$open(silent = TRUE) remDr$navigate("http://karakterstatistik.stads.ku.dk/") 

は、ソースを検査することにより、submitボタンを検索**正確に私が必要なもの**。私はそれを動作させることができる前に、セレンに少し見ていた。 [この回答](http://stackoverflow.com/a/31188481/6717092)他の質問は、他の人がインストールに問題がある場合、非常に便利でした。 – ScrapeGoat

+0

あなたは歓迎です。あなたの質問が満足のいく回答であれば、回答を受け入れたものとしてマークしてください。 –

+0

完了し、ありがとうございます。私はかなり迅速な[フォローアップの質問](http://stackoverflow.com/q/38991773/6717092) – ScrapeGoat