网络抓取 - 选择表格

时间:2016-08-07 00:42:15

标签: r rvest

我正试图从雅虎财经网站中提取the table of historical data

首先,通过检查源代码,我发现它实际上是一个表,所以我怀疑来自rvest的{​​{1}}应该可以使用它,但是,我找不到一种从R到达它的方法。我尝试只提供完整页面的功能,但是,它没有获取正确的表格:

url <- https://finance.yahoo.com/quote/^FTSE/history?period1=946684800&period2=1470441600&interval=1mo&filter=history&frequency=1mo
read_html(url) %>% html_table(fill = TRUE)
# Returns only:
# [[1]]
#                                                               X1     X2
# 1 Show all results for Tip: Use comma to separate multiple quotes Search

其次,我找到了特定表的xpath选择器,但是我仍然没有成功获取数据:

xpath1 <- '//*[@id="main-0-Quote-Proxy"]/section/div[2]/section/div/section/div[3]/table'
read_html(url) %>% html_node(xpath = xpath1)
# Returns an empty nodeset:
# {xml_nodeset (0)}

通过从选择器中删除最后一个术语,我得到一个非空的节点集,但仍然没有表:

xpath2 <- '//*[@id="main-0-Quote-Proxy"]/section/div[2]/section/div/section/div[3]'
read_html(url) %>% html_node(xpath = xpath2) %>% html_table(fill = TRUE)
# Error: html_name(x) == "table" is not TRUE

我做错了什么?任何帮助将不胜感激!

编辑:我发现最后一个xpath的html_text()返回

read_html(url) %>% html_node(xpath = xpath2) %>% html_text()
[1] "Loading..."

表示当R执行读取时表尚未加载。这可以解释为什么它没有看到表格。问题:绕过加载文本的任何方法?

0 个答案:

没有答案