通过单击按钮用 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)
我正在处理财务数据,我想从该网站抓取数据。 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)