Esta atividade teve o objetivo de criar um Robô com o intuito de acompanhar possíveis variações com relação ao preço de um dado produto. O produto escolhido foi um perfume de uma marca conhecida. O site utilizado para a coleta de dados foi: “http://www.boticario.com.br/glamour-secrets-black-des--colonia-75ml-21318/p?idsku=2002624&utm_campaign=googleshop&gclid=EAIaIQobChMIr4XvvL_Q2gIVFA2RCh3JWgf-EAQYAiABEgJ6gfD_BwE”.
https://crontab.guru/ (para ajudar a programar o horário) - O escolhido foi: https://crontab.guru/#*/5_*_*_*_*
Pacote rvest - https://github.com/hadley/rvest
Abaixo, comandos utilizados no R.
suppressPackageStartupMessages(library(rvest))
suppressPackageStartupMessages(library(stringr))
suppressPackageStartupMessages(library(lubridate))
preço <- rep(NA, 10)
for ( i in 1:10){
Oboticario <- read_html("http://www.boticario.com.br/glamour-secrets-black-des--colonia-75ml-21318/p?idsku=2002624&utm_campaign=googleshop&gclid=EAIaIQobChMIr4XvvL_Q2gIVFA2RCh3JWgf-EAQYAiABEgJ6gfD_BwE")
Oboticario %>%
html_nodes(css = ".skuBestPrice") %>%
html_text() %>%
str_remove(pattern = "R\\$ ") %>%
str_remove(pattern = "\\.") %>%
str_replace(pattern = ",", replacement = ".") %>%
as.numeric() -> preço[i]
Sys.sleep(1)
}
hora <- now()
cat(hora %>% as.character,preço ,sep = ",", fill = TRUE)
## 2018-06-18 21:56:29,119.9,119.9,119.9,119.9,119.9,119.9,119.9,119.9,119.9,
## 119.9
Observa-se que o preço do perfume escolhido se manteve. Logo, não houve variação.
library(tidyverse)
## ── Attaching packages ───────────────────────────────────────────────────────────────────────────── tidyverse 1.2.1 ──
## ✔ ggplot2 2.2.1 ✔ readr 1.1.1
## ✔ tibble 1.4.2 ✔ purrr 0.2.5
## ✔ tidyr 0.8.1 ✔ dplyr 0.7.5
## ✔ ggplot2 2.2.1 ✔ forcats 0.3.0
## ── Conflicts ──────────────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ lubridate::as.difftime() masks base::as.difftime()
## ✖ lubridate::date() masks base::date()
## ✖ dplyr::filter() masks stats::filter()
## ✖ readr::guess_encoding() masks rvest::guess_encoding()
## ✖ lubridate::intersect() masks base::intersect()
## ✖ dplyr::lag() masks stats::lag()
## ✖ purrr::pluck() masks rvest::pluck()
## ✖ lubridate::setdiff() masks base::setdiff()
## ✖ lubridate::union() masks base::union()
library(readr)
p <- read_table2("Precos_90.txt",
col_types = cols(Data = col_character(),
Hora = col_character()))
Preco <- p %>% top_n(90)
## Selecting by Preço
require(lubridate)
library(ggplot2)
Preco$DataTime <- parse_date_time(paste(Preco$Data, Preco$Hora), '%Y-%m-%d %H:%M:%S')
#Gráfico
ggplot(data = Preco, aes(x= DataTime, y= Preço), geom = "line") + geom_line(color = "red") + labs(x= "Time", y = "Preço")
Pelo fato do preço não ter sofrido alteração, uma reta foi utilizada para representar o comportamento do preço nos horários em que houve inspeção por parte do Robô.