Esta atividade tem como objetivo coletar dados de algum site, durante um período de tempo definido pelo usúario. O site escolhido foi o http://www.valor.com.br/valor-data que apresenta valores atualizados das moedas dolar e euro.

Para a coleta serão utilizados os pacotes rvest(pacote com utilitários para obtenção de dados de um site html), lubridate(manipulação de datas) e stringr(manipulação de strings).

Ainda, para fazer a coleta automatizada de dados foi utilizado o recurso do sistema operacional ubuntu chamado crontab. Para utilizar o crontab se você estiver em uma máquina com linux basta abrir o terminal e escrever o código

\[ \textrm{crontab -e}\]

Este comando edita uma aplicação crontab, e como muito provávelmente não temos nenhuma, esse código servirá também para criar o primeiro crontab.

Dicas sobre o uso do crontab podem ser encontradas facilmente no google. O crontab a ser utilizado para este código será:

\[ 0\space 5\space *\space *\space 1\space \]

Isso indica que o sistema irá executar o comando desejado no minuto de 5 de cada hora, ou seja, os dados serão coletados a cada hora.

O código do R a ser executado a cada crontab será:

# Vamos aprender a fazer webscraping
suppressMessages(library("rvest", lib.loc="/usr/local/lib/R/site-library"))
suppressMessages(library("lubridate"))
suppressMessages(library("stringr"))

site <- read_html("http://www.valor.com.br/valor-data", encoding = "UTF-8")

# Precos do dolar a cada hora
# preco no dia da coleta

time = now()

prices = site %>%
  html_nodes(css = "span.number") %>% 
  html_text() %>% 
  str_replace(",",".") %>% 
  as.numeric()

# -- Posicoes dos dados coletados -- #
# |1| = data da coleta
# |2| = dolar comercial
# |3| = dolar ptmax
# |4| = dolar turismo
# |5| = euro comercial
# |6| = euro x dolar
# ---------------------------------- #

# ira salvar a base no tipo de arquivo longo
cat(time %>% as.character, prices, fill = TRUE, sep = ",")
## 2018-06-13 10:59:09,3.7163,3.6988,3.88,4.3752,1.1776

O nosso conjunto de dados formado a partir do dia 02/05/2018 consta atualmente com 997 observações.

Este relatório foi escrito as 10:55 do dia 13/06/2018.

data.robot <- read.table("~/datarobot.txt", header = FALSE, sep = ",")
names(data.robot) = c("tempo",
                     "d.comercial",
                     "d.ptmax",
                     "d.turismo",
                     "e.comercial",
                     "exd")
plot(ts(data.robot))