2017-05-04 4 views
0

Ich freue mich auf Web-Scrape alle Codes und die Codes unter jeder Hierarchie wie auf der linken Seite von dieser Website mit R-Paket Rvesti gesehen.Unable to Web Schrott Inhalt mit rvest

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

mit I Zunächst versuchte diese code-

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

a.ygtvlbel die Klasse ich sehe, wenn auf den Text in der Web-Seite schweben.

Es gibt jedoch nur NA_character zurück. Ich sehe, dass die HTML-Quelle für die Seite, nicht direkt diese Codes (Ex- parasitäre Krankheiten) enthält, aber stattdessen hat es wahrscheinlich eine href zu allen Inhalten.

Wie kann ich eine solche Seite scrapen? Freundlicher Hinweis.

+4

b/c mit der tatsächlichen API wld sein schlecht? https://cran.r-project.org/web/packages/WHO/index.html – hrbrmstr

+0

Danke @hrbrmstr. Die API gab tatsächlich eine neue Richtung des Denkens. Aus dem Hinweis habe ich das R-Paket - icd verwendet und die Hauptkapitel und Unterkapitel von den Paket-definierten Variablen erhalten, während ich gezielt nach ICD10-Codes suche. Konnte nicht die niedrigsten Level-Codes bekommen (ich meine A00.0 Cholera wegen Vibrio cholerae 01, biovar cholerae). Aber ich frage mich, ob ich die API mit dem Paket verwechselt habe, werde mehr erkunden. –

Antwort

0

Wie bei vielen dieser Arten von Seiten wird auf dieser Seite eine Hintergrundanforderung für eine JSON-Datei mit den Daten gestellt. Dies kann mithilfe von Browser-Debug-Tools und mit Blick auf die Netzwerkanforderungen ermittelt werden. Die Verwendung einer API wie in Kommentaren erwähnt ist eine bessere Wahl

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

Vielen Dank @ Epi99. Zustimmen, ich habe stattdessen einen Teil der Daten aus dem R-Paket bekommen. Trotzdem würde ich gerne Ihren Code ausprobieren, wenn er mir helfen kann, alle Inhalte auf der Seite zu bekommen. –

+0

ist der Inhalt (RESULTOFGET, as = "parsed") nicht auf Ihrem System? – hrbrmstr