2012-11-20 20 views
5

Próbuję skrobać i parsować następujący kanał RSS http://www.huffingtonpost.com/rss/liveblog/liveblog-1213.xml Przyjrzałem się innym zapytaniom dotyczącym R i XML i nie byłem w stanie zrobić żadnego postępu w moim problemie. Kod XML dla każdego wpisuParsowanie kanału RSS przy użyciu XML packageagin R

 <item> 
    <title><![CDATA[Five Rockets Intercepted By Iron Drone Systems Over Be'er Sheva]]></title> 
    <link>http://www.huffingtonpost.co.uk/2012/11/15/tel-aviv-gaza-rocket_n_2138159.html#2_five-rockets-intercepted-by-iron-drone-systems-over-beer-sheva</link> 
    <description><![CDATA[<a href="http://www.haaretz.com/news/diplomacy-defense/live-blog-rockets-strike-tel-aviv-area-three-israelis-killed-in-attack-on-south-1.477960" target="_hplink">Haaretz reports</a> that five more rockets intercepted by Iron Dome systems over Be'er Sheva. In total, there have been 274 rockets fired and 105 intercepted. The IDF has attacked 250 targets in Gaza.]]></description> 
    <guid>http://www.huffingtonpost.co.uk/2012/11/15/tel-aviv-gaza-rocket_n_2138159.html#2_five-rockets-intercepted-by-iron-drone-systems-over-beer-sheva</guid> 
    <pubDate>2012-11-15T12:56:09-05:00</pubDate> 
    <source url="http://huffingtonpost.com/rss/liveblog/liveblog-1213.xml">Huffingtonpost.com</source> 
    </item> 

dla każdego wpisu/post chcę nagrać "Data" (pubDate), "title" (tytuł), "Opis" (pełny tekst oczyszczone). Próbowałem użyć pakietu xml w R, ale przyznaję, że jestem trochę początkującym (mało doświadczenia w pracy z XML, ale trochę doświadczenia R). Kod pracuję off i donikąd ze jest:

library(XML) 

xml.url <- "http://www.huffingtonpost.com/rss/liveblog/liveblog-1213.xml" 

# Use the xmlTreePares-function to parse xml file directly from the web 

xmlfile <- xmlTreeParse(xml.url) 

# Use the xmlRoot-function to access the top node 

xmltop = xmlRoot(xmlfile) 

xmlName(xmltop) 

names(xmltop[[ 1 ]]) 

    title   link description  language  copyright 
    "title"  "link" "description" "language" "copyright" 
category  generator   docs   item   item 
    "category" "generator"  "docs"  "item"  "item" 

Jednak, gdy staram się manipulować i próbować manipulować „tytuł” ​​lub „Opis” informacja, że ​​nieustannie pojawiają się błędy. Każda pomoc w rozwiązywaniu tego kodu będzie najbardziej doceniana.

Dzięki, Thomas

Odpowiedz

10

używam doskonałą bibliotekę Rcurl i xpathSApply

Jest to skrypt daje 3 listy (tytuł, pubdates i opis)

library(RCurl) 
library(XML) 
xml.url <- "http://www.huffingtonpost.com/rss/liveblog/liveblog-1213.xml" 
script <- getURL(xml.url) 
doc  <- xmlParse(script) 
titles <- xpathSApply(doc,'//item/title',xmlValue) 
descriptions <- xpathSApply(doc,'//item/description',xmlValue) 
pubdates <- xpathSApply(doc,'//item/pubDate',xmlValue) 
+0

uzyskać więcej informacji, xpathSApply w bibliotece XML –