You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用rvest抓取gbarbosa页面仅返回8个节点,求解决方案

解决gbarbosa产品页面抓取不全的问题

可能的原因及对应方案

1. CSS选择器范围过窄

你当前使用的选择器.gbarbosa-gbarbosa-components-0-x-ProductName.false强制要求元素同时包含.false类,但页面中后8个产品的名称元素可能没有这个类,或者类名存在差异。

尝试简化选择器,只保留产品名称的核心类:

library(rvest)

url <- "https://www.gbarbosa.com.br/caes/caes?_q=C%C3%A3es&map=ft,categoria&page=1"

sku <-  
 read_html(url) |>
 html_nodes(".gbarbosa-gbarbosa-components-0-x-ProductName") |>
 html_text(trim = TRUE)

如果仍未解决,可尝试通过产品卡片的父容器来定位,确保覆盖所有产品:

sku <-  
 read_html(url) |>
 html_nodes(".vtex-search-result-3-x-galleryItem") |> # 产品卡片的通用容器类
 html_node(".gbarbosa-gbarbosa-components-0-x-ProductName") |>
 html_text(trim = TRUE)

2. 页面采用滚动式动态加载

很多电商页面会在用户滚动到页面底部时才加载剩余产品,rvest只能获取初始请求返回的静态HTML,无法触发动态加载逻辑。这种情况需要使用浏览器自动化工具模拟页面滚动:

使用RSelenium的示例:

library(RSelenium)
library(rvest)

# 启动Chrome浏览器驱动(需提前安装对应版本的chromedriver)
driver <- rsDriver(browser = "chrome", port = 4567L)
remDr <- driver[["client"]]

# 打开目标页面
remDr$navigate("https://www.gbarbosa.com.br/caes/caes?_q=C%C3%A3es&map=ft,categoria&page=1")

# 模拟滚动到底部,触发剩余产品加载
for(i in 1:2){
  remDr$executeScript("window.scrollTo(0, document.body.scrollHeight);")
  Sys.sleep(2) # 等待加载完成
}

# 提取页面HTML并获取产品名称
page_source <- remDr$getPageSource()[[1]]
sku <- read_html(page_source) |>
  html_nodes(".gbarbosa-gbarbosa-components-0-x-ProductName") |>
  html_text(trim = TRUE)

# 关闭浏览器及驱动
remDr$close()
driver$server$stop()

使用playwright的示例(更轻量):

library(playwright)

# 初始化playwright
pw <- playwright$launch()
browser <- pw$chromium$launch(headless = FALSE) # 非无头模式可查看操作过程
page <- browser$new_page()

# 打开页面并滚动加载
page$goto("https://www.gbarbosa.com.br/caes/caes?_q=C%C3%A3es&map=ft,categoria&page=1")
page$evaluate("window.scrollTo(0, document.body.scrollHeight);")
page$wait_for_timeout(2000) # 等待加载完成

# 提取所有产品名称
sku <- page$eval_all(".gbarbosa-gbarbosa-components-0-x-ProductName", function(el) el.textContent.trim())

# 关闭资源
page$close()
browser$close()
pw$stop()

额外提示

  • 先查看网站的robots.txt文件,确认抓取行为符合网站规则,避免IP被封禁。
  • 电商网站的类名可能会动态更新,若后续选择器失效,需重新检查页面HTML结构调整选择器。

内容的提问来源于stack exchange,提问作者Rafael Díaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 22:02:39