使用 R 中的 rvest 包抓取 BBC 股票市场数据
Scrape BBC Stock Market Data using rvest package in R
我正在尝试使用 rvest R 包抓取以下网页。
BBC Stock Market Data
我正在寻找检索数据框中的 Europe/Africa table。
我现在的代码是:
stockmarket <- "http://www.bbc.co.uk/news/business/market_data/stockmarket/default.stm"
stockmarket_html <- read_html(stockmarket)
stockmarket_perf <- html_nodes(stockmarket_html, xpath = '//*[@id="marketdata_v4"]/table/tbody/tr[1]/td/table[6]/tbody')
stockmarket_table <- html_table(stockmarket_perf)
但它不起作用。
更具体地说,当我检查 stockmarket_html 文档时,它似乎不是 HTML 而是 XML 指针,我:
- 不知道是什么
- 不知道如何转换成 R 对象
如有任何帮助或指导,我们将不胜感激。
您传递给 html_nodes
的选择器没有挑选出您想要的内容。这个特殊情况比一般情况更难,因为那个特殊的 table 没有自己的 class 或 ID。不过,我们可以用
抓住它
library(rvest)
stockmarket <- "http://www.bbc.co.uk/news/business/market_data/stockmarket/default.stm"
stockmarket_html <- read_html(stockmarket)
stockmarket_perf <- html_nodes(stockmarket_html, '#marketdata_v4 table')
stockmarket_table <- html_table(stockmarket_perf[9], fill = TRUE)
里面找marketdata_v4
div
里所有的table,然后把第9个拉出来,就是你要的
请注意,数据仍然很混乱,需要大量清理。如果您愿意,还有其他方法可以获取类似的数据; Yahoo Finance 有一个非常完善的 API,所以如果您知道自己想要什么,至少有几个包可以直接从中提取。 quantmod
可能值得一看,尽管我还没有专门用它来提取索引。
我正在尝试使用 rvest R 包抓取以下网页。 BBC Stock Market Data
我正在寻找检索数据框中的 Europe/Africa table。
我现在的代码是:
stockmarket <- "http://www.bbc.co.uk/news/business/market_data/stockmarket/default.stm"
stockmarket_html <- read_html(stockmarket)
stockmarket_perf <- html_nodes(stockmarket_html, xpath = '//*[@id="marketdata_v4"]/table/tbody/tr[1]/td/table[6]/tbody')
stockmarket_table <- html_table(stockmarket_perf)
但它不起作用。 更具体地说,当我检查 stockmarket_html 文档时,它似乎不是 HTML 而是 XML 指针,我:
- 不知道是什么
- 不知道如何转换成 R 对象
如有任何帮助或指导,我们将不胜感激。
您传递给 html_nodes
的选择器没有挑选出您想要的内容。这个特殊情况比一般情况更难,因为那个特殊的 table 没有自己的 class 或 ID。不过,我们可以用
library(rvest)
stockmarket <- "http://www.bbc.co.uk/news/business/market_data/stockmarket/default.stm"
stockmarket_html <- read_html(stockmarket)
stockmarket_perf <- html_nodes(stockmarket_html, '#marketdata_v4 table')
stockmarket_table <- html_table(stockmarket_perf[9], fill = TRUE)
里面找marketdata_v4
div
里所有的table,然后把第9个拉出来,就是你要的
请注意,数据仍然很混乱,需要大量清理。如果您愿意,还有其他方法可以获取类似的数据; Yahoo Finance 有一个非常完善的 API,所以如果您知道自己想要什么,至少有几个包可以直接从中提取。 quantmod
可能值得一看,尽管我还没有专门用它来提取索引。