2017-06-03 3 views
0

私はいくつかのオンラインチュートリアルに続き、29はhtmlコードであるところにある。しかし、このRコードrvestをウェブクロールに正しく使用するには?

url<- read_html("http://www.funda.nl/en/koop/leiden/") 

url %>% html_nodes("#pagination-number.pagination-last") %>% html_attr("data- 
pagination-page") %>% as.numeric() 

を書いたことが29である示すことができる最大のページを取得するには、このページhttp://www.funda.nl/en/koop/leiden/ウェブクロールにしてみてください私が得たものはnumeric(0)です。 as.numeric()を削除すると、character(0)と表示されます。

これはどのように行われますか?

+0

代わりにこれを試してみてください: '%%%% html_nodes(" a.pagination-number.pagination-last ")' – Dave2e

答えて

0

私はあなたのhtmlの識別とhtmlの解析が間違っていると思います。 CSS IDの名前を簡単に見つけるには、Selector Gadgetというクロム拡張機能を使用できます。あなたのケースでは、それはまた、str_extract_all()関数で達成されたいくつかの解析を必要とします。

url <- read_html("http://www.funda.nl/en/koop/leiden/") 

pagination.last <- url %>% 
    html_node(".pagination-last") %>% 
    html_text() %>% 
    stringr::str_extract_all("[:number:]{1,2}", simplify = TRUE) %>% 
    as.numeric() 

> pagination.last 
[1] 29 

あなたは役に立つだけでなく、この他の質問を見つけるかもしれない:私は同じ問題を扱ってきたR: Rvest - got hidden text i don't want

+0

あなたの答えをありがとうが、結果を再現できないようです。コードをコピーし、NAを生成します。すべてのパッケージとRstudioは最新です。このステップでは、%>%html_node( "。ページネスト - ラスト")%>%html_text()というURLを使用します。すでにNAを生成していますが、何が起こったのですか?私は何か見落としてますか? – Lazar

+0

試し '> STR(URL)'と、それはこれを出力した場合参照:2 $ノードの 一覧: $ドキュメント: - ATTR(*、 "クラス")= CHR [1:2] "xml_documentを" "xml_node" もしそうでなければ、何かがhtmlを読む最初のステップで間違っています – ZLevine

0

を、これは私の仕事:

これは動作します

> url = "http://www.funda.nl/en/koop/leiden/" 
> last_page <- 
+ last(read_html(url) %>% 
+   html_nodes(css = ".pagination-pages") %>% 
+   html_children()) %>% 
+ html_text(trim = T) %>% 
+ str_extract("[0-9]+") %>% 
+ as.numeric() 
> last_page 
[1] 23 
関連する問題