读取R中文件的URL列表

时间:2016-04-17 00:20:19

标签: r file url screen-scraping

我有一个包含网址列表的文件

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")

问题:

  1. 如何阅读文件? 当我执行read.csv(filename)或read.table(filename)然后使用read_html时,它说

    no applicable method for 'read_xml' applied to an object of class "data.frame"
    
  2. 如何迭代文件?

2 个答案:

答案 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 ...