2017-05-04 5 views
0

私は、R package rvestを使用して、このウェブサイトの左側のパネルに表示されているように、各階層のすべてのコードとコードをスクラブします。私はこれがrvestを使用してコンテンツをスクラップすることができません

url<-"http://apps.who.int/classifications/icd10/browse/2016/en/" 
src<-read_html(url) 
ATC<-src%>%html_node("a.ygtvlabel")%>%html_text 

a.ygtvlbelをコード - 試してみましたまず

URL-- http://apps.who.int/classifications/icd10/browse/2016/en/

は、Webページ内のテキストの上にホバリング時に、私が見たクラスです。

ただし、NA_characterを返すだけです。 ページのhtmlソースには、これらのコード(外寄病)は直接含まれていませんが、代わりにすべてのコンテンツにhrefがあると思います。

どうすればこのようなページを削ることができますか?親切なアドバイス。

+4

実際のAPIを使用するb/cは悪いですか? https://cran.r-project.org/web/packages/WHO/index.html – hrbrmstr

+0

@hrbrmstrありがとうございます。 APIは実際には新しい考え方をもたらしました。ヒントから、私はRパッケージ - icdを使い、ICD10コードを特に探しているパッケージ定義変数から主要な章とサブチャプターを得ました。最も低いレベルのコードを取得できませんでした(私はVibrio cholerae 01、biovar choleraeのためA00.0 Choleraを意味します)。しかし、私はパッケージ化するAPIを使って混ざっているかどうか疑問に思います。 –

答えて

0

これらの種類のページの多くと同様に、このページはデータを含むjsonファイルのバックグラウンド要求を行います。これは、ブラウザのデバッグツールを使用してネットワーク要求を調べることで検出できます。コメントに記載されているAPIを使用することをお勧めします。

library(httr) 
library(jsonlite) 

## original url<-"http://apps.who.int/classifications/icd10/browse/2016/en/" 

json_url <- "http://apps.who.int/classifications/icd10/browse/2016/en/JsonGetRootConcepts?useHtml=false" 
json_data <- rawToChar(GET(json_url)$content) 

categories <- fromJSON(json_data) 
categories$label 
# [1] "I Certain infectious and parasitic diseases"                
# [2] "II Neoplasms"                       
# [3] "III Diseases of the blood and blood-forming organs and certain disorders involving the immune mechanism" 
# [4] "IV Endocrine, nutritional and metabolic diseases"              
# gories$label 
+0

ありがとうございます@ epi99。同意すると、私はRパッケージのデータの一部を代わりに入手しました。しかし、もし私がページ上のすべてのコンテンツを手に入れることができれば、あなたのコードを試してみたいと思うでしょう。 –

+0

は 'content(RESULTOFGET、as =" parsed ")'があなたのシステムで動作していませんか? – hrbrmstr

関連する問題