Scrape BBC Stock Market Data using rvest package in R

Estou a tentar raspar a página abaixo usando o pacote Rvest R. dados do mercado de acções da BBC

Estou a tentar recuperar a tabela Europa / África num dataframe.

o meu código neste momento é:

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)
Mas não está a funcionar. Mais especificamente, quando eu examino o documento stockmarket_html parece que não é um HTML, mas um ponteiro XML que I:

    Não sei o que é. Não sei Converter-me num R objecto
Qualquer ajuda ou direcção seria muito apreciada.

Author: stratar, 2016-03-22

1 answers

O selector para o qual estás a passar não é escolher o que queres. Este caso particular é mais difícil do que a média, já que essa tabela em particular não tem uma classe ou ID própria. No entanto, podemos agarrá-lo com
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)

Que procura todas as tabelas na marketdata_v4 div, e depois tira a 9ª, que é a que tu queres.

Note que os dados ainda estão bastante confusos, e necessitarão de uma limpeza significativa. Existem formas alternativas de obter dados semelhantes, se você como; Yahoo Finance tem uma API muito bem construída, então há pelo menos um par de pacotes que podem puxar diretamente dele, se você sabe o que você quer. Provavelmente vale a pena dar uma vista de olhos, embora não o tenha usado especificamente para obter índices.

 1
Author: alistaire, 2016-03-22 21:17:08