我正在嘗試使用 Rvest 從以下位置抓取資料點:
https://www.vanguardinvestor.co.uk/investments/vanguard-ftse-develop-europe-ex-uk-ucits-etf-eur-distributing/distributions
我試圖捕捉的是“截至 2022 年 4 月 30 日收盤時的收益率”數字,即 2.53%
我已經嘗試使用以下代碼
url <- "https://www.vanguardinvestor.co.uk/investments/vanguard-ftse-developed-europe-ex-uk-ucits-etf-eur-distributing/distributions"
url_read <- url %>%
read_html()
etf_Data <- url_read %>%
html_nodes(xpath='/html/body/ukd-app/ukd-pla-nav/div[1]/ukd-fund-detail/div[2]/ukd-distributions/dl/div[2]') %>%
html_text()
然而是回傳字符(0)。
根據之前對 SO 的回復,我試圖查看 URL 中是否需要直通查詢,但是我的知識相當有限,因此無法判斷是否需要。
我也試過
etf_Data <- url_read %>%
html_element('.caption:contains("Yield As at close 30 Apr 2022") .data') %>% html_text2()
和
etf_Data <- url_read %>%
html_nodes(xpath='/html/body/ukd-app/ukd-pla-nav/div[1]/ukd-fund-detail/div[2]/ukd-distributions/dl/div[2]') %>%
html_table()
以同樣的反應。
您可以提供的任何幫助將不勝感激。
謝謝 C
uj5u.com熱心網友回復:
問題是,資料是使用 JavaScript 動態加載到頁面的。您可以使用Rselenium.
一個更簡單的解決方案是 - 稍微修改 Url - 從 API 請求資料:
library(httr)
resp <- GET("https://www.vanguardinvestor.co.uk/api/fund-detail/vanguard-ftse-developed-europe-ex-uk-ucits-etf-eur-distributing") %>% content()
yield <- resp$fundData$distributionHistory$yield[[1]]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/492307.html
