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

如何使用RSelenium配合rvest爬取切换为印度卢比后的项目成本数据

爬取印度卢比计价项目成本的实现方案

首先纠正个拼写小问题:印度卢比的标准货币代码是INR,不是你提到的IND。

你提到的RSelenium完全可以实现需求,另外还有更轻量的无浏览器方案可选,两种方案如下:

方案1:RSelenium模拟货币切换(符合你的需求)

思路是通过RSelenium启动浏览器,模拟点击右上角货币切换按钮选择INR,待页面数值刷新后再提取成本数据,示例代码如下:

library(RSelenium)
library(rvest)

# 启动Chrome驱动,注意chromever参数要和你本地安装的Chrome浏览器版本一致
driver <- rsDriver(browser = "chrome", chromever = "对应你的Chrome版本号")
remDr <- driver$client

# 访问目标项目页面
remDr$navigate("https://indiainvestmentgrid.gov.in/opportunities/project/21117")
Sys.sleep(3) # 等待页面初始加载完成

# 点击货币选择下拉框,选择器可通过F12元素检查器获取,以下为示例
currency_dropdown <- remDr$findElement(using = "css", value = ".top-bar .currency-select")
currency_dropdown$clickElement()
Sys.sleep(1)

# 选择印度卢比选项
inr_option <- remDr$findElement(using = "xpath", value = "//li[text()='INR']")
inr_option$clickElement()
Sys.sleep(2) # 等待成本数值刷新完成

# 提取刷新后的卢比计价成本
page_html <- read_html(remDr$getPageSource()[[1]])
project_total_cost_inr <- page_html %>% 
  html_nodes(".total-cost-value") %>%
  html_text()

print(project_total_cost_inr)

# 运行结束后关闭驱动,释放资源
remDr$close()
driver$server$stop()

注意事项:

  • 代码里的CSS选择器、XPath需要根据页面实际元素结构调整,打开浏览器F12选中对应按钮即可复制到正确的选择器
  • 可以把固定等待的Sys.sleep替换为显式等待,比如调用remDr$waitFor()方法等待元素可点击后再操作,提升代码稳定性
  • 如果启动驱动报错,先确认你安装的ChromeDriver版本和本地Chrome浏览器版本完全匹配

方案2:直接调用API接口(更轻量高效)

这个网站的项目数据本身就是以INR为单位存储在后端的,前端切换货币只是做了汇率换算渲染。你可以直接在浏览器F12的网络面板里找到项目详情的API请求,直接请求该接口解析JSON即可拿到原始INR成本,不需要启动浏览器,运行速度远快于RSelenium方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 02:24:03