我有一个包含网址列表的文件
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
我想使用R,特别是rvest用于网页抓取https://blog.rstudio.org/2014/11/24/rvest-easy-web-scraping-with-r/。我基本上需要收集SPECS下的所有字段,如
htmlpage <- read_html("http://www.programmableweb.com/api/swrve-events")
text1 <- html_nodes(htmlpage, ".field")
问题:
如何阅读文件? 当我执行read.csv(filename)或read.table(filename)然后使用read_html时,它说
no applicable method for 'read_xml' applied to an object of class "data.frame"
如何迭代文件?
答案 0 :(得分:0)
shared_ptr<class T>
答案 1 :(得分:0)
尝试从.csv文件导入的表中读取URL时,我收到了相同的错误消息。我注意到通过读取.csv文件创建的表是错误的类型。即,导入的具有10个URL的表“URL”具有以下属性:
> typeof(URLs)
[1] "list"
> length(URLs)
[1] 1
与此同时,我希望它是:
> typeof(URLs)
[1] "character"
> length(URLs)
[1] 10
因此我做了以下解决方法:
a<-character()
for (i in 1:10) {
a[i]<-as.character(URLs[i,1])
}
现在我可以看到“a”为:
> typeof(a)
[1] "character"
> length(a)
[1] 10
read_html命令最终有效:
> htmlpage <- read_html(a[i])
> show(htmlpage)
{xml_document}
<html lang="en">
[1] <head>\n<style>\r\n#headerlocal {\r\n position: fixed;\r\n z-index: 999;\r\n top: 0;\r\n height ...
[2] <body style="background-color:#eeeeee;"> \r\n\r\n\r\n\r\n\t\t<script type="text/javascript">\r\n\t\t\tcheck ...