雅虎财经 - 使用 R 进行网页抓取 - SelectorGadget 不起作用

Yahoo Finance - Web scraping with R - SelectorGadget doesn't work

我正在尝试从这个 Yahoo Finance Screener 获取 1980 年的匹配股票:

[https://finance.yahoo.com/screener/unsaved/38a77251-0996-439b-8be4-9d10ff18ff79?count=25&offset=0]

使用 R 和 rvest。

我通常使用 XPath,但我无法通过此网站的 SelectorGadget 获取它。

有人可以帮助我了解另一种方法来获取包含这些数据的所有页面。

我想要与这个类似的代码,并且可以与 Investing 一起使用。请注意,符号、名称和市值代码只是示例:

library(rvest)
library(dplyr)

i=0
for(z in 1:80){
  
  url_base<-paste("https://finance.yahoo.com/screener/unsaved/38a77251-0996-439b-8be4-9d10ff18ff79?count=25&offset=0")
  zpg <- read_html(url_base)
  Symbol<-zpg %>% html_nodes("table") %>% html_nodes("span") %>% html_attr("data-id" )
  Name<-zpg %>% html_nodes("table") %>% html_nodes("span") %>% html_attr("data-name" )
  MarketCap<-zpg %>% html_nodes("table") %>% html_nodes("span") %>% html_attr("data-name" )
  data<-data.frame(WebID,FullName,MarketCap)
  
  if(i==0){
    USA<-data}else{
      USA<-rbind(USA,data)
    }
  i=i+1
}

您可以尝试使用 quantmodtidyquant

library(tidyverse)
library(tidyquant)

# getting symbols for NASDAQ
nasdaq <- read_delim("https://nasdaqtrader.com/dynamic/SymDir/nasdaqlisted.txt", delim = "|")

# scraping the data
df <- nasdaq %>%
  head() %>% # to fetch only a few rows
  rowwise() %>%
  mutate(data = list(tq_get(Symbol, from = '2020-08-01', to = "2020-08-07", warnings = FALSE)))

# getting the data ready
df2 <- df$data %>%
  bind_rows()