使用 R 进行网络抓取(我想从网站中提取一些 table 之类的数据)
Web-Scraping using R (I want to extract some table like data from a website)
我在从网站抓取数据时遇到了一些问题。我在网络抓取方面没有太多经验。我的计划是使用 R 从以下网站抓取一些数据:https://www.myfxbook.com/forex-broker-swaps
更准确地说,我想提取所有可用货币对的外汇经纪商掉期比较。
目前我的想法:
library(XML)
url <- paste0("https://www.myfxbook.com/forex-broker-swaps")
source <- readLines(url, encoding = "UTF-8")
parsed_doc <- htmlParse(source, encoding = "UTF-8")
test<-xpathSApply(parsed_doc, path = '/html/body/div[3]/div[6]/div/div/div/div/div/div/div/div/div[3]/div[4]/div/div[2]/div', xmlValue)
但这并没有显示预期的信息。在这里真的很感激一些帮助!谢谢!
这个怎么样:
library(dplyr)
library(rvest)
h <- read_html("https://www.myfxbook.com/forex-broker-swaps")
h %>% html_table() %>%
purrr::pluck(3) %>%
setNames(paste(names(.), .[1,], sep="_")) %>%
rename("Broker" = "_Broker") %>%
filter(Broker != "Broker") %>%
mutate(across(-Broker, as.numeric))
#> # A tibble: 91 × 13
#> Broker `EUR/USD_Short` `EUR/USD_Long` `EUR/USD_Type` `GBP/USD_Short`
#> <chr> <dbl> <dbl> <dbl> <dbl>
#> 1 Axi 0.17 -0.56 0 -0.18
#> 2 Tickmill 0.24 -0.55 0 -0.22
#> 3 Blueberry Mark… 0.31 -0.55 0 -0.17
#> 4 Eightcap 0.31 -0.55 0 -0.17
#> 5 Rakuten Securi… 0.19 -0.5 0 0
#> 6 ACY Securities -0.34 -3.75 3 -1.28
#> 7 AAAFx 1.98 -6.42 1 -2.07
#> 8 MultiBank Group 0.3 -0.66 0 -0.12
#> 9 Just2Trade 0.12 -0.9 0 -0.26
#> 10 Fusion Markets 0.31 -0.55 0 -0.15
#> # … with 81 more rows, and 8 more variables: `GBP/USD_Long` <dbl>,
#> # `GBP/USD_Type` <dbl>, `USD/CAD_Short` <dbl>, `USD/CAD_Long` <dbl>,
#> # `USD/CAD_Type` <dbl>, `USD/JPY_Short` <dbl>, `USD/JPY_Long` <dbl>,
#> # `USD/JPY_Type` <dbl>
由 reprex package (v2.0.1)
于 2022-05-25 创建
我在从网站抓取数据时遇到了一些问题。我在网络抓取方面没有太多经验。我的计划是使用 R 从以下网站抓取一些数据:https://www.myfxbook.com/forex-broker-swaps
更准确地说,我想提取所有可用货币对的外汇经纪商掉期比较。
目前我的想法:
library(XML)
url <- paste0("https://www.myfxbook.com/forex-broker-swaps")
source <- readLines(url, encoding = "UTF-8")
parsed_doc <- htmlParse(source, encoding = "UTF-8")
test<-xpathSApply(parsed_doc, path = '/html/body/div[3]/div[6]/div/div/div/div/div/div/div/div/div[3]/div[4]/div/div[2]/div', xmlValue)
但这并没有显示预期的信息。在这里真的很感激一些帮助!谢谢!
这个怎么样:
library(dplyr)
library(rvest)
h <- read_html("https://www.myfxbook.com/forex-broker-swaps")
h %>% html_table() %>%
purrr::pluck(3) %>%
setNames(paste(names(.), .[1,], sep="_")) %>%
rename("Broker" = "_Broker") %>%
filter(Broker != "Broker") %>%
mutate(across(-Broker, as.numeric))
#> # A tibble: 91 × 13
#> Broker `EUR/USD_Short` `EUR/USD_Long` `EUR/USD_Type` `GBP/USD_Short`
#> <chr> <dbl> <dbl> <dbl> <dbl>
#> 1 Axi 0.17 -0.56 0 -0.18
#> 2 Tickmill 0.24 -0.55 0 -0.22
#> 3 Blueberry Mark… 0.31 -0.55 0 -0.17
#> 4 Eightcap 0.31 -0.55 0 -0.17
#> 5 Rakuten Securi… 0.19 -0.5 0 0
#> 6 ACY Securities -0.34 -3.75 3 -1.28
#> 7 AAAFx 1.98 -6.42 1 -2.07
#> 8 MultiBank Group 0.3 -0.66 0 -0.12
#> 9 Just2Trade 0.12 -0.9 0 -0.26
#> 10 Fusion Markets 0.31 -0.55 0 -0.15
#> # … with 81 more rows, and 8 more variables: `GBP/USD_Long` <dbl>,
#> # `GBP/USD_Type` <dbl>, `USD/CAD_Short` <dbl>, `USD/CAD_Long` <dbl>,
#> # `USD/CAD_Type` <dbl>, `USD/JPY_Short` <dbl>, `USD/JPY_Long` <dbl>,
#> # `USD/JPY_Type` <dbl>
由 reprex package (v2.0.1)
于 2022-05-25 创建