【发布时间】:2020-02-07 10:45:05
【问题描述】:
很长一段时间以来,我一直很高兴地使用主要从其他 stackoverflow 答案中借来的代码来抓取 yahoo.finance 页面,并且效果很好,但是在过去的几周里,雅虎已经将他们的表格更改为可折叠/可展开的表格。这已经破坏了代码,尽管我尽了最大的努力,但仍然无法修复错误。
这是其他人多年来使用的代码示例(然后由不同的人以不同的方式解析和处理)。
library(rvest)
library(tidyverse)
# Create a URL string
myURL <- "https://finance.yahoo.com/quote/AAPL/financials?p=AAPL"
# Create a dataframe called df to hold this income statement called df
df <- myURL %>%
read_html() %>%
html_table(header = TRUE) %>%
map_df(bind_cols) %>%
as_tibble()
谁能帮忙?
编辑以获得更清晰:
如果你运行上面的然后查看你得到的 df
# A tibble: 0 x 0
对于预期结果的示例,我们可以尝试 yahoo 未更改的另一个页面,如下所示:
# Create a URL string
myURL2 <- "https://finance.yahoo.com/quote/AAPL/key-statistics?p=AAPL"
df2 <- myURL2 %>%
read_html() %>%
html_table(header = FALSE) %>%
map_df(bind_cols) %>%
as_tibble()
如果您查看 df2,您会得到一个包含 59 个观察值的小标题,其中两个变量是该页面上的主表,以
开头市值(盘中)5 [此处的值] 企业价值3【这里的价值】 等等……
【问题讨论】:
-
您能否更清楚地说明预期输出与实际发生的情况?
-
当然。我将更详细地编辑上面的问题。 :-)
-
你将如何使用你的脚本来构建一个循环来运行多个代码的抓取,然后将它们绑定在一起?
标签: r web-scraping rvest yahoo-finance