Zum Lesen der N-TEN Zeile eines Geparsten html-Code in R
Die readLines-Funktion werden alle Inhalte der Quell-Seite in einer Zeile.
con = url("target_url_here")
htmlcode = readLines(con)
readLines-Funktion verkettet alle Zeilen der Quell-Seite in einer Zeile. Es gibt also keinen Weg, ich kann navigieren Sie zu der 15ten Zeile in der ursprünglichen html-Quelltext-Seite.
Nächste Ansatz ist, zu versuchen, analysieren Verwendung von XML-Paket oder httr-Paket.
library("httr")
html <- GET("target_url_here")
content2 = content(html,as="text")
parsedHtml = htmlParse(content2,asText=TRUE)
Durch den Druck aus der parsedHtml, behält Sie sich das html-format und zeigt alle Inhalte, wie es sein kann gesehen in der source-Seite.
Jetzt angenommen, ich möchte zum extrahieren der Titel, so wird die Funktion
xpathSApply(parsedHtml,"//title",xmlValue)
geben Sie die Titel.
Aber meine Frage ist, wie kann ich navigieren Sie zu einer beliebigen Zeile sagen, die 15 Linie von der html-Seite? In anderen Worten, wie kann ich Sie behandeln den html-Code als Vektor von Zeichenketten, wobei jedes element des Vektors wird eine separate Zeile in die html-Seite/parsed html-Objekt.
readLines
liest Zeile für Zeile, so dass htmlcode[15]
sollte Ihnen die 14 Zeile in deinem 1. Beispiel.Ja, das wird funktionieren. Aber gibt es irgendeinen Weg zu gehen, um das 15th line in einem geparsten HTML-Objekt ?
Vielleicht konvertieren Charakter und die Aufteilung auf Zeilenwechsel in den Venen der
strsplit(as(parsedHtml, "character"), "\n")[[1]][15]
.InformationsquelleAutor Novneet Nov | 2014-08-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben einen besseren Blick auf docs für die
readLines()
, die es tatsächlich gibt:Also in deinem Fall:
können Sie ganz einfach tun
htmlCode[15]
Zugriff auf das 15th - Zeile in der ursprünglichen html-Quelltext-Seite.InformationsquelleAutor Marius Butuc
In Antwort auf Ihren Kommentar
Gibt es ein paar verschiedene Möglichkeiten, dies zu tun. Man erwähnt von lukeA in die Kommentare. Eine andere ist die Verwendung
capture.output()
um die geparsten html-Dokument Zeile für Zeile, wie ein Charakter-Vektor. Dieses Beispiel verwendet die Beispieldaten aus?htmlParse
Parsen eines html-Dokuments:
Ansicht das Analysierte Dokument als Zeichen-Vektor:
Erhalten (z.B.) die 5. Zeile:
InformationsquelleAutor Rich Scriven