2016-04-17 10 views
0

Ich habe eine Datei mit einer Liste von URLsLesen Liste von URLs aus einer Datei in R

http://www.programmableweb.com/api-university 
http://www.programmableweb.com/api-research 
http://www.programmableweb.com/api/facebook 
http://www.programmableweb.com/api/google-maps 

Ich mag R verwenden, insbesondere rvest für Web https://blog.rstudio.org/2014/11/24/rvest-easy-web-scraping-with-r/ Schaben. Ich brauche im Grunde alle Felder unter SPECS zu sammeln wie

htmlpage <- read_html("http://www.programmableweb.com/api/swrve-events") 
    text1 <- html_nodes(htmlpage, ".field") 

Fragen:

  1. Wie lese ich die Datei? Wenn ich read.csv (Dateiname) oder read.table (Dateiname) und dann read_html verwenden, heißt es

    no applicable method for 'read_xml' applied to an object of class "data.frame" 
    
  2. Wie kann ich über die Datei iterieren?

+0

Sie können lapply (readlines (filepath), Funktion (eachlink) ....... – chinsoon12

Antwort

0
file_urls <- readLines ("path/to/file") 
    node_data <- sapply(file_urls,function(i)read_html (i) %>% html_nodes (".field")) 
+0

@carl_boneri Danke. In welchem ​​Format node_data ist? Wie kann ich die Ausgangsdaten in einer Datei speichern ? Ich versuchte datafile <- xmlToDataFrame (node_data), aber es gab mir den Fehler: Fehler in UseMethod ("xmlSApply"): keine anwendbare Methode für "xmlSApply" angewendet auf ein Objekt der Klasse "xml_nodeset" –

+0

Das Format ist ein XML- nodeset.Es ist eine Liste von jedem HTML-Element mit der CSS-Klasse von ".field". Was speichern Sie ... Was haben Sie mit den Daten getan/was Sie mit den Daten zu tun hoffen. Lesen Sie die Dokumentation auf saveRDS. node_data ist ein Datenobjekt in Ihrem Arbeitsbereich..so können Sie jedoch speichern würde gerne –

+0

Ich nehme an, Sie wollen nur den Text ... fügen Sie "%>% html_text" in die Kette und Sie sollten eine Liste von Rohtext anstelle von HTML-Objekten haben –