rvest
是一个用于网页抓取的 R 语言包,它允许你轻松地从网页中提取数据。然而,对于动态加载的数据,rvest
本身可能无法直接获取,因为这些数据通常是通过 JavaScript 在客户端生成的。为了处理这种情况,你可以结合使用 rvest
和 RSelenium
或 splashr
等工具来模拟浏览器行为并捕获动态内容。
以下是一个使用 rvest
和 RSelenium
从 Lux 到 Lumens Calculator 获取动态数据的示例:
install.packages("rvest")
install.packages("RSelenium")
library(rvest)
library(RSelenium)
# 启动 Selenium 服务器
selServ <- selenium(port = 4444L)
# 打开浏览器并导航到目标网站
remDr <- remoteDriver(port = 4444L)
remDr$open()
remDr$navigate("https://example.com/lux-to-lumens-calculator") # 替换为实际网址
# 等待页面加载完成
Sys.sleep(5) # 根据需要调整等待时间
# 使用 rvest 提取数据
page_source <- remDr$getPageSource()[[1]]
webpage <- read_html(page_source)
# 假设我们要提取的数据在 id 为 "result" 的元素中
result_element <- webpage %>% html_nodes("#result")
result_text <- result_element %>% html_text()
# 关闭浏览器和 Selenium 服务器
remDr$close()
selServ$stop()
rvest
和 RSelenium
包。RSelenium
需要一个 Selenium 服务器来控制浏览器。你可以使用 selenium()
函数启动一个本地服务器。remoteDriver()
创建一个远程驱动程序,并使用 open()
和 navigate()
方法打开浏览器并导航到目标网站。get_pageSource()
方法获取页面源代码,然后使用 read_html()
将其转换为 xml_document
对象。接下来,你可以使用 html_nodes()
和 html_text()
方法提取所需的数据。领取专属 10元无门槛券
手把手带您无忧上云