网页搜索与rvest

时间:2016-10-07 00:07:21

标签: r web-scraping rvest

我尝试使用rvest来获取此网站上的所有471个案例,但每次只能获得25个案例(无论列表是否扩展)。任何帮助将不胜感激。

library("rvest")
url <- "http://investmentpolicyhub.unctad.org/ISDS?status=100"
cases <- url %>%
read_html() %>%
html_nodes(xpath='//*[@id="cases-list"]') %>%
html_table()
View(cases)

谢谢。

1 个答案:

答案 0 :(得分:5)

问题是你必须点击&#34;显示全部&#34;按钮显示表格的其余部分,你可以用rvest做。因此,使用RSelenium进行导航和rvest解析,

prev

因为你指导[无头]浏览器,点击后的位可能会给你25行或471行,具体取决于表是否已完成加载。该表非常大,因此加载需要一段时间,就像在普通浏览器中一样。如果你没有得到所有东西,请等待一段时间再次在library(RSelenium) library(rvest) pJS <- phantom() # install PhantomJS if necessary remDr <- remoteDriver(browserName = 'phantomjs') remDr$open() remDr$navigate(url) button <- remDr$findElement(using = 'css selector', 'a#loadWholeList') button$clickElement() Sys.sleep(60) # or just wait a while, or rerun the following bits till they work html <- remDr$getPageSource() cases <- html[[1]] %>% read_html() %>% html_node('table#cases-list') %>% html_table() if(nrow(cases) > 26){ remDr$close() pJS$stop() } 之后运行这些行。

耐心地说:

Sys.sleep