首页 > 解决方案 > 使用 rvest 进行网页抓取适用于网站的第一页,但不适用于其他网页

问题描述

这是我用来获取网站下一页链接的代码。

url <- 'https://uws-community.symplicity.com/index.php?s=student_group'
webpage <- read_html(url)
next_link <- html_nodes(webpage,".paging_nav a") %>% html_attr('href')

然后,使用该链接,我试图在那之后获得下一页。

url2 <- paste0("https://uws-community.symplicity.com/index.php", 
next_link)

webpage2 <- read_html(url2)
next_link2 <- html_nodes(webpage2,".paging_nav a") %>% html_attr('href')

第二部分为我提供了 next_link2 的“字符(空)”。为什么是这样?为什么相同的方法在第一页上有效,而在第二页上无效?

标签: rweb-scrapingrvest

解决方案


该站点设置了一些 cookie,您需要在下一次抓取时重复使用它们。

library(rvest)

url <- 'https://uws-community.symplicity.com/index.php?s=student_group'
page <- html_session(url)

page2 <- page %>% follow_link(css = ".paging_nav a:last-child")
page3 <- page2 %>% follow_link(css = ".paging_nav a:last-child")

page3 %>% html_nodes(".grpl-grp")

这将从第三页返回表格。


推荐阅读