我试图从以下网址
http://live.reuters.com/Event/rss.aspx?id=70335的RSS提要中提取数据.基本上我想使用此帖中列出的代码提取每个帖子的标题和日期:
Parse RSS feed using XML packagin R
代码本身就是
library(XML) library(RCurl) ###Extracting Data from Reuters xml.url <- "http://live.reuters.com/Event/rss.aspx?id=70335" script <- getURL(xml.url) doc <- xmlParse(script) titles <- xpathSApply(doc,'//item/title',xmlValue) pubdates <- xpathSApply(doc,'//item/pubDate',xmlValue) reuters<-cbind(titles,pubdates) reuters_data<-data.frame(reuters) #Exporting as a csv write.csv(reuters_data,file = "reuters_post.csv")
代码几乎完全符合我的要求.但是,我遇到的问题是它只提取前45个帖子.我知道有近1000个帖子.这与rss.aspx格式有关吗?是否有一个解决方法,以便我可以获得RSS提要中的所有帖子,而不仅仅是前45个?任何帮助都将非常感谢,因为我是数据抓取的新手.
谢谢,
托马斯
解决方法
它解决了RSS / Atom提要的问题,它不允许检索历史信息,请参阅
How Do I Fetch All Old Items on an RSS Feed?
但是,我们可以使用非官方的Google Reader API GoogleReaderAPI Wiki.
library(RCurl) library(RJSONIO) N <- 100 # Number of items to fetch url <- paste("http://www.google.com/reader/api/0/stream/contents/feed/http://live.reuters.com/Event/rss.aspx%3Fid=70335?n=",N,sep="") json <- getURL(url) # Fetches data list <- fromJSON(json) # JSON to list df <- as.data.frame(do.call(rbind,list$items)) # list to data.frame title <- unlist(df$title) # Title datetime <- as.POSIXlt(unlist(df$published),origin="1970-01-01",tz="GMT") # Publication date reuters <- data.frame(title,datetime) # Output data.frame write.csv(reuters,file = "reuters_post.csv") # Writes CSV
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。