我尝试对此页面进行网页抓取http://www.funda.nl/en/koop/leiden/以获取可以显示的最大页面,即29。我按照了一些在线教程并找到了html代码中的29,写了这个R代码
url<- read_html("http://www.funda.nl/en/koop/leiden/")
url %>% html_nodes("#pagination-number.pagination-last") %>% html_attr("data-
pagination-page") %>% as.numeric()
然而,我得到的是numeric(0)
。如果我删除as.numeric()
,则会获得character(0)
。
这是怎么做到的?
答案 0 :(得分:0)
我相信你对html的识别和你对html的解析都是错误的。要轻松找到CSS ID的名称,您可以使用名为Selector Gadget的chrome扩展名。在您的情况下,它还需要一些解析,在str_extract_all()
函数中完成。
这将有效:
url <- read_html("http://www.funda.nl/en/koop/leiden/")
pagination.last <- url %>%
html_node(".pagination-last") %>%
html_text() %>%
stringr::str_extract_all("[:number:]{1,2}", simplify = TRUE) %>%
as.numeric()
> pagination.last
[1] 29
您可能会发现其他问题也很有用:R: Rvest - got hidden text i don't want
答案 1 :(得分:0)
我一直在处理同样的问题,这对我有用:
> url = "http://www.funda.nl/en/koop/leiden/"
> last_page <-
+ last(read_html(url) %>%
+ html_nodes(css = ".pagination-pages") %>%
+ html_children()) %>%
+ html_text(trim = T) %>%
+ str_extract("[0-9]+") %>%
+ as.numeric()
> last_page
[1] 23