0

我正在使用以下网站: http ://www.crowdrise.com/skollsechallenge

特别是在此页面上,有 57 个众筹活动。每个众筹活动都有文字,详细说明了他们想要筹集资金的原因、迄今为止筹集的资金总额以及团队成员。一些活动还指定了筹款目标。我想编写一些 R 代码,从 57 个站点中的每个站点中抓取和组织这些信息。

现在,我正在尝试删除导致 57 个不同活动的 57 个链接中的每一个。下面是我试过的代码:

    library("RCurl")
    library("XML")
    library("stringr")

    url <- "http://www.crowdrise.com/skollSEchallenge"
    cat("URL:", url)
    url.data <- readLines(url) 
    doc <- htmlTreeParse(url.data, useInternalNodes=TRUE)
    xp_exp   <- "//a[@href]"
    links <- xpathSApply(doc, xp_exp,xmlValue)

变量

     links

但是,不包含指向 57 个网站的链接......我有点困惑......有人可以帮助我吗?

谢谢,

4

2 回答 2

0

以此为例:

xpathApply(doc, '//*[@id="teams-results"]/div/div/div/h4/a'
           ,xmlGetAttr,'href')

您将获得第一页的 16 个链接。但是您仍然有激活 javascript 代码背后的问题(显示更多团队)以查看其余链接。

于 2013-10-16T02:49:26.907 回答
0

这个非常丑陋的解决方案得到了 32 个,非常非常冗长,但它不需要评估 javascript。

library(httr)
x <- as.character(GET("http://www.crowdrise.com/skollSEchallenge"))
x <- unlist(strsplit(x, split = "\n", fixed = TRUE))

x <- gsub("\t", "", grep('class="profile">', x, value = TRUE, fixed = TRUE))
x <- unlist(strsplit(x, split = 'class="profile">', fixed = TRUE))[-1]

x <- gsub("\r<div class=\"content\">\r<a href=\"/", "", x, fixed = TRUE)
x <- substr(x, 1, as.integer(regexpr('\"><img', x)) - 1)
x <- paste("www.crowdrise.com/", x, sep = '')
于 2013-10-16T03:01:37.833 回答