Web中的WebScraping动态页面

时间:2017-08-09 08:35:58

标签: r scrape

我会更改网站,以便更好地解决这个问题。仍然面临类似问题,只能使用rvest软件包,并且使用RSelenium可能更容易获得答案。网站:http://ravimaailma.fi/cg/tulokset/20/我希望从主要文章中获取链接,这些链接可以指导我个人比赛结果。链接看起来像这样:http://ravimaailma.fi/article/tulokset/pori-18-11-2017-tulokset/8718/

我试图使用简单的Rvest作为这里所需要的一切。 SelectorGadget将链接CSS作为.article-title a,因此我的代码只是

url %>%
  read_html() %>% 
  html_nodes(".article-title a") %>% 
  html_text()

这将不会返回任何内容。当您向下滚动时,网站会加载更多结果,但我认为我至少会得到第一个结果。下面给出了一些链接和链接28:32看起来很有希望,但我认为它们是侧边栏的链接,而不是文章。

url %>%
  read_html() %>% 
  html_nodes("a") %>% 
  html_attr("href")

我在这里做错了什么,RSelenium可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

这是我的部分答案,仍然没有全部,但也许可以帮助一些人。代码将返回第一个结果的1个链接。不知道为什么它不能全部给它们。我正在使用

library(RSelenium)
rD <- rsDriver(port = 4444L,  browser = "chrome")

remDr <- rD[["client"]]
remDr$navigate("http://ravimaailma.fi/cg/tulokset/20/")

elem <- remDr$findElement(using="css selector", value=".article-title a")
elemtxt <- elem$getElementAttribute("href")

#Click button to load more results
#button <- remDr$findElement(using="id", value="loadmore")
#button$clickElement()

remDr$close()

我还没有使用按钮点击,但似乎它也运行良好。唯一的问题是我无法从网站获得所有结果。

答案 1 :(得分:0)

[我还没有(允许)写评论,所以我选择让这篇文章成为答案] RSelenium并不总是必要的,您也可以直接使用PhantomJS与网站互动(参见例如this example)。

如果您提供了网站上的示例,而不是.pdf的本地链接,我可以尝试找出如何检索数据。