通过单击按钮用 rvest 刮取 table

Scrape table with rvest by clicking on button

我正在处理财务数据,我想从该网站抓取数据。 https://www.sikafinance.com/marches/historiques?s=BRVMAG。 我想从上面的站点抓取 table 的数据,该站点需要三个参数

•dlPeriod

•日期

•dateto

最后点击按钮 btcChange ="确定".

尝试下面的代码后,我只得到第一个 table。 当我更改开始和结束日期时,我希望能够获得其他 table。 但不幸的是,即使我更改日期,我仍然会得到今天日期的 table。 有谁知道如何恢复整个 table? 我在检查他们的网站时注意到,当您更改日期时,他们代码中的 和 标签并没有改变。图片在底部。

我认为要么整个 table 可用并且它对日期进行筛选(日期之间的间隔不得超过 3 个月)

library(httr)
library(rvest)

first_date<-as.Date("2022-02-01")
end_date <- as.Date("2022-03-29")
query_params <- list(dlPeriod = "Journalière",
                     datefrom = first_date, 
                     dateto = end_date,
                     btnChange = "OK")

parameter_response <- GET("https://www.sikafinance.com/marches/historiques?s=BRVMAG", query_params)

parameter_response1<- httr::content(parameter_response, as = "text", encoding = "UTF-8")
parameter_response2 <- read_html(parameter_response1)%>%
  html_node('#tblhistos')%>%
  html_table()

parameter_response2

# Date       Clôture `Plus bas` `Plus haut` Ouverture `Volume Titres` `Volume FCFA` `Variation %`
# <chr>        <chr>   <chr>      <chr>       <chr>     <chr>                   <int> <chr>        
# 1 29/04/2022 312,09  312,09     312,09      312,09    -                           0 2,53%        
# 2 28/04/2022 304,38  304,38     304,38      304,38    -                           0 0,00%        
# 3 27/04/2022 304,38  304,38     304,38      304,38    -                           0 2,69%        
# 4 26/04/2022 296,42  296,42     296,42      296,42    -                           0 0,81%        
# 5 25/04/2022 294,05  294,05     294,05      294,05    -                           0 1,34%        
# 6 22/04/2022 290,17  290,17     290,17      290,17    -                           0 0,36%

然后我更改日期以查看是否可以获得新的 table 但不幸的是它确实有效。

first_date<-as.Date("2021-02-01")
end_date <- as.Date("2021-04-29")

用同样的方法抓取新的 table 我只得到旧的。

我看到一个 POST API 请求历史数据,参数如下:

'ticker'='BRVMAG','datedeb'='2022-02-01','datefin'='2022-03-29','xperiod' = '0'

我通过删除 headers 和 cookie 进行了测试,似乎不需要它们。


library(httr2)
library(magrittr)

r <- request("https://www.sikafinance.com/api/general/GetHistos") %>% 
  req_body_json(list('ticker'= 'BRVMAG', 'datedeb'= '2022-02-01', 'datefin'= '2022-03-29','xperiod'= '0')) %>% 
  req_perform() %>%
  resp_body_json(simplifyVector = T)