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

如何使用R中RSelenium爬取印度投资网格网站项目进度条阶段信息

问题原因

你无法在源码中找到.active-stage类,是因为调用getPageSource时页面的JavaScript还未完成进度条组件的渲染,对应类名还没有被添加到DOM节点上。

解决步骤

第一步:添加页面加载等待

导航到页面后先等待组件渲染完成,不要立刻抓取源码:

# 导航到目标页面
remDr$navigate('https://indiainvestmentgrid.gov.in/opportunities/nip-project/606803')
# 设置页面加载超时时间为10秒
remDr$setTimeout(type = "page load", milliseconds = 10000)
# 显式等待进度条容器加载完成,避免提前抓取失效
remDr$waitFor(selector = ".project-timeline", timeout = 10000)
# 若网络波动大可额外加1-2秒强制等待
# Sys.sleep(2)

第二步:抓取当前阶段信息

方法1:直接通过RSelenium获取(更稳定)

直接在浏览器渲染完成的DOM中定位元素,不需要转静态源码解析:

active_stage_elem <- remDr$findElement(using = "css selector", value = ".active-stage")
# trimws用于去除首尾空白字符
current_stage <- trimws(active_stage_elem$getElementText()[[1]])
print(current_stage) # 输出为:Under Implementation,对应中文含义为“正在实施中”

方法2:渲染完成后用rvest解析

等所有JS执行完成后再抓取页面源码,就可以找到.active-stage类了:

# 抓取渲染完成后的完整页面源码
page_source <- remDr$getPageSource()[[1]]
parsed_page <- read_html(page_source)

current_stage <- parsed_page %>% 
  html_element(".active-stage") %>% 
  html_text(trim = TRUE)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 15:18:04