Используйте Developer Tools в своем браузере, и вы увидите, что сайт использует много XHR-запросов (это тема широко , охватываемая SO, что означает, что исследования были минимальными на этот вопрос).
У выделенного есть данные, которые составляют таблицу.
Если вы переключитесь на «Заголовки» из «Ответа», вы увидите, что XHR выполняется через POST
запрос:
это означает, что простой jsonlite::fromJSON()
не будет работать с URL.
Я использовал пакет curlconverter
для автоматического создания функции запроса для этого. Щелкните правой кнопкой мыши на выделенной строке слева и выберите «Копировать как cURL», затем следуйте указаниям на README и страницах справочника в curlconverter
(также есть много SO ответов, использующих curlconverter
в аналогичном контекст, так что, опять же, практически не нужно никаких исследований).
httr::POST(
url = "https://f3.vietstock.vn/data/financeinfo",
body = list(
Code = "APC",
ReportType = "KQKD",
ReportTermType = "2",
Unit = "1000000",
Page = "1",
PageSize = "4"
),
encode = "form"
) -> res
dat <- httr::content(res)
str(dat[[2]][[1]][[1]])
## List of 25
## $ ID : int 1
## $ ReportNormID : int 2206
## $ Name : chr "1. Doanh thu bán hàng và cung cấp dịch vụ "
## $ NameEn : chr "1. Revenue"
## $ NameMobile : chr "1. Doanh thu bán hàng và cung cấp dịch vụ "
## $ NameMobileEn : chr "1. Revenue"
## $ CssStyle : chr "NormalB"
## $ Padding : chr "Padding1"
## $ ParentReportNormID : int 2216
## $ ReportComponentName : chr "Kết quả kinh doanh"
## $ ReportComponentNameEn: chr "Income Statement"
## $ Unit : NULL
## $ UnitEn : NULL
## $ OrderType : NULL
## $ OrderingComponent : NULL
## $ RowNumber : NULL
## $ ReportComponentTypeID: NULL
## $ ChildTotal : int 0
## $ Levels : int 0
## $ Value1 : num 46365
## $ Value2 : num 45103
## $ Value3 : num 34182
## $ Value4 : num 45497
## $ Vl : NULL
## $ IsShowData : logi TRUE
Остальные элементы вложенного списка вы можете найти самостоятельно.