我正在尝试创建一个由多个 xml 页面组成的大数据框。
我能够为单个页面创建一个数据框:
library(RCurl)
US_GrossiOS200<-getURL("https://rss.itunes.apple.com/api/v1/us/ios-apps/top-grossing/all/200/explicit.rss")
library(XML)
library(plyr)
USGr200.xml<-xmlTreeParse(US_GrossiOS200)
USGr200<-ldply(xmlToList(USGr200.xml), data.frame)
我想抓取可能有数百个 URL。为了自动化这个过程,我想创建一个包含所有我想抓取的 URL 的 CSV 文件。这是 listofurls.csv 列表(2 行,1 列)的前 2 行的示例:
1 https://rss.itunes.apple.com/api/v1/us/ios-apps/new-games-we-love/all/200/explicit.rss
2 https://rss.itunes.apple.com/api/v1/us/ios-apps/top-free/all/200/explicit.rss
在这个阶段,我可以使用getURL(CSV$URL)
with在控制台(我正在使用 RStudio)上编写两个页面的内容CSV <- read.csv(listofurls.csv)
。
的输出str()
内容getURL(CSV$URL)
如下:
Named chr [1:2] "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\">\n "| __truncated__ ...
- attr(*, "names")= chr [1:2] "https://rss.itunes.apple.com/api/v1/us/ios-apps/new-games-we-love/all/200/explicit.rss" "https://rss.itunes.apple.com/api/v1/us/ios-apps/top-free/all/200/explicit.rss" ...
然后我尝试使用 xmlTreeParse(),但出现以下错误:
仅允许在文档开头的 XML 声明
文档末尾的额外内容
错误:1:仅在文档开头允许 XML 声明
2:文档末尾的额外内容
建议?