rvest - 找到最后一个页码的html节点。

问题描述 投票:2回答:1

我正在学习网络搜刮,自己制作了一个小练习,把一个菜谱网站的所有标题搜刮出来。https:/pinchofyum.comrecipes?fwp_paged=1。. (我从这个帖子中得到了启发。https:/www.kdnuggets.com201706web-scraping-r-online-food-blogs.html).

我想刮取最后一个页码的值,也就是(在写这篇文章的时候)的64号。. 你可以在底部找到页数。我看到这个值存储为 "a.facetwp-page last",但由于某些原因无法访问这个节点。我可以看到页码值存储为 "data-page",但我无法通过 "html_attrs "获取这个值。

我相信父节点是 "div.facetwp-pager",我可以通过以下方式访问这个节点。

library(rvest)
pg <- read_html("https://pinchofyum.com/recipes")
html_nodes(pg, "div.facetwp-pager")

但这是我目前所能得到的。我想我漏掉了一些小东西,但又想不出来是什么。我知道Rselenium,但我想知道是否以及如何用Rvest获取最后一页的值(64)。

html r web-scraping rvest
1个回答
1
投票

有时候用rvest刮取是行不通的,尤其是当网页是用java脚本动态生成的时候(我也没能用rvest刮取到这些信息。rvest). 在这些情况下,您可以使用 RSelenium 包。我能够像这样刮出你想要的元素。

library(RSelenium)

rD <- rsDriver(browser = c("firefox")) #specify browser type you want Selenium to open
remDr <- rD$client
remDr$navigate("https://pinchofyum.com/recipes?fwp_paged=1") # navigates to webpage

webElem <- remDr$findElement(using = "css selector", ".last") #find desired element

txt <- webElem$getElementText() # gets us the HTML

#> txt
#>[[1]]
#>[1] "64"
© www.soinside.com 2019 - 2024. All rights reserved.