【问题标题】:web scrape in another currency (several options)以另一种货币进行网络抓取(多种选择)
【发布时间】:2021-10-28 13:41:29
【问题描述】:

我在抓取不同货币的值时遇到了问题。例如,以下网站以美元提供了有关项目成本的信息,我可以抓取它:https://indiainvestmentgrid.gov.in/opportunities/project/21117。但是,也可以选择成本货币(在右上角),我想在 IND 中抓取此信息。您对如何访问它有什么建议吗?也许有可能用 RSelenium 做点什么?

library(rvest)
library(RSelenium)

url <- read_html("https://indiainvestmentgrid.gov.in/opportunities/project/21117")

project_total_cost <- url %>% 
  html_nodes(".total-cost-value") %>%
  html_text()
project_total_cost 
"USD 387.24 mn"

【问题讨论】:

  • 浏览下拉菜单是可能的,但价格昂贵 - 每页大约需要 3 秒才能可靠地获取它。在这种情况下,我认为您最好像现在一样使用rvest 进行抓取,然后使用汇率进行转换,或者如果您坚持使用RSelenium,将值设置为IND 一次,然后所有后续您在该会话中打开的页面应使用 IND 显示。
  • 知道了,我想知道是否有可能以某种方式自动制作,也许您可​​以简要描述一下我如何通过下拉菜单(即使它很昂贵)?
  • 在下拉菜单中找到每个阶段的css或选择器,然后点击。 IE。 remDr$findElement("css selector", "#select_country")> webElem$clickElement() > remDr$findElement(...)coderedirect.com/questions/238345/… 有一些示例说明如何做到这一点。

标签: r web-scraping rvest rselenium


【解决方案1】:

正如唐纳德在 cmets 中所说,您可以使用 RSelenium 库。

下面是一个例子。

library(RSelenium)
library(rvest)
# it starts selenium
rD <- RSelenium::rsDriver(browser = "firefox", check = FALSE)
remDr <- rD[["client"]]
url<-"https://indiainvestmentgrid.gov.in/opportunities/project/21117"
remDr$navigate(url)

# it activates the menu list
remDr$findElement(using = 'css selector', value = "#select_country")$clickElement()

# Japan currency
remDr$findElement(using = 'css selector', value = ".flagstrap-jp")$clickElement()
# Indian currency
remDr$findElement(using = 'css selector', value = ".flagstrap-in")$clickElement()
# US currency
remDr$findElement(using = 'css selector', value = ".flagstrap-us")$clickElement()
# EU currency
remDr$findElement(using = 'css selector', value = ".flagstrap-eu")$clickElement()
# UK currency
remDr$findElement(using = 'css selector', value = ".flagstrap-gb")$clickElement()
# AU currency
remDr$findElement(using = 'css selector', value = ".flagstrap-au")$clickElement()
# CN currency
remDr$findElement(using = 'css selector', value = ".flagstrap-cn")$clickElement()

# Here you extract the html code 
url<-read_html(unlist(remDr$getPageSource()))

# Your code
project_total_cost <- url  %>% 
  html_nodes(".total-cost-value") %>%
  html_text()
project_total_cost 

【讨论】:

    猜你喜欢
    • 2023-03-15
    • 2022-12-11
    • 2014-01-28
    • 1970-01-01
    • 2020-11-22
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 2013-04-23
    相关资源
    最近更新 更多