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

如何确定提取网页产品链接的正确CSS选择器?(R语言场景)

解决R语言抓取Artfinder产品链接的问题

先排查选择器问题

如果网页是静态渲染的(直接能在页面源码里看到目标链接),试试这几个更精准的选择器:

  • 按rel属性匹配:目标链接都带rel="nofollow noreferrer",直接用这个属性定位
    library(rvest)
    target_url <- "你要爬的目标网页地址"
    page <- read_html(target_url)
    # 抓取带指定rel属性的a标签的href
    product_links <- page %>% html_nodes('a[rel="nofollow noreferrer"]') %>% html_attr("href")
    # 清理结果:去重、去掉空值
    product_links <- unique(na.omit(product_links))
    
  • 按href路径匹配:示例链接包含/editors-picks/theme/,用这个特征筛选
    product_links <- page %>% html_nodes('a[href*="/editors-picks/theme/"]') %>% html_attr("href")
    
  • 最稳妥的方式:打开网页F12开发者工具,找到目标<a>标签,右键→复制→复制CSS选择器,把复制的内容直接放进html_nodes()里,比如复制到的选择器是.some-class a.another-class,就用html_nodes('.some-class a.another-class')

如果静态抓取不到(动态加载页面)

要是上面的方法都没结果,大概率是页面内容靠JavaScript动态加载的,这时候得用RSelenium模拟浏览器加载:

library(RSelenium)
# 启动Chrome驱动(需提前安装Chrome和对应版本的chromedriver)
driver <- rsDriver(browser = "chrome", port = 4567L)
remDr <- driver[["client"]]
# 跳转到目标页面
remDr$navigate(target_url)
# 获取加载后的页面源码
page_source <- remDr$getPageSource()[[1]]
page <- read_html(page_source)
# 再用之前的选择器抓取链接
product_links <- page %>% html_nodes('a[rel="nofollow noreferrer"]') %>% html_attr("href")
# 关闭浏览器和驱动
remDr$close()
driver$server$stop()

内容的提问来源于stack exchange,提问作者mohsen0965

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 04:00:08