rvest - 查找 html-node 最后页码
rvest - find html-node with last page number
我正在学习网络抓取并为自己创建了一个小练习来抓取食谱网站的所有标题:https://pinchofyum.com/recipes?fwp_paged=1. (I got inspired by this post: https://www.kdnuggets.com/2017/06/web-scraping-r-online-food-blogs.html)。
我想抓取最后页码的值,即(在撰写本文时)编号 64。您可以在底部找到页数。我看到它存储为 "a.facetwp-page last",但由于某种原因无法访问该节点。我可以看到页码值存储为 'data-page',但我无法通过 'html_attrs'.
获取此值
我认为 parent 节点是 "div.facetwp-pager",我可以按如下方式访问该节点:
library(rvest)
pg <- read_html("https://pinchofyum.com/recipes")
html_nodes(pg, "div.facetwp-pager")
但据我所知。我想我遗漏了一些小东西,但无法弄清楚它是什么。我知道 Rselenium,但我想知道是否以及如何使用 rvest 获取最后一页值 (64)。
有时使用 rvest 抓取无效,尤其是当网页是使用 java 脚本动态生成时(我也无法使用 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"
我正在学习网络抓取并为自己创建了一个小练习来抓取食谱网站的所有标题:https://pinchofyum.com/recipes?fwp_paged=1. (I got inspired by this post: https://www.kdnuggets.com/2017/06/web-scraping-r-online-food-blogs.html)。
我想抓取最后页码的值,即(在撰写本文时)编号 64。您可以在底部找到页数。我看到它存储为 "a.facetwp-page last",但由于某种原因无法访问该节点。我可以看到页码值存储为 'data-page',但我无法通过 'html_attrs'.
获取此值我认为 parent 节点是 "div.facetwp-pager",我可以按如下方式访问该节点:
library(rvest)
pg <- read_html("https://pinchofyum.com/recipes")
html_nodes(pg, "div.facetwp-pager")
但据我所知。我想我遗漏了一些小东西,但无法弄清楚它是什么。我知道 Rselenium,但我想知道是否以及如何使用 rvest 获取最后一页值 (64)。
有时使用 rvest 抓取无效,尤其是当网页是使用 java 脚本动态生成时(我也无法使用 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"