【发布时间】:2020-03-13 20:15:40
【问题描述】:
自从对雅虎财经进行了一些页面调整以来,我已经看到了一些用于网页抓取的字符串,以下脚本适用于一个股票代码,但创建了一个循环,该循环对许多股票代码重复它,然后将它们绑定到一个每行带有相应代码的大型数据框导致以下消息:
open.connection(x, "rb") 中的错误:HTTP 错误 503。
这是带有循环的脚本 - “tickers”:
library(quantmod)
symbolData2 <- stockSymbols(exchange="NASDAQ")
symbolData3 <- stockSymbols(exchange="NYSE")
complete_symbols <- rbind(symbolData2,symbolData3)
tickers <- paste(complete_symbols$Symbol,sep=',')
stocks <- tickers
for (s in stocks) {
url <- paste0("https://finance.yahoo.com/quote/",s,"/key-statistics?p=", s)
df <- url %>%
read_html() %>%
html_table(header = FALSE) %>%
map_df(bind_cols) %>%
as_tibble()
assign(s, df)
df <- get(s)
df['stock'] <- s
assign(s, df)
}
stockdata <- do.call(rbind, stockdatalist)
stockdata <- stockdata[, c(ncol(stockdata), 1:ncol(stockdata)-1)]
如果某个特定的代码挂起此操作,则很难确定是哪一个(我希望脚本能够跳过它)。非常感谢任何有助于完成此操作的帮助。
【问题讨论】:
标签: r for-loop web-scraping quantmod