Walcyr Carrasco é um autor de novelas de grande repercussão
nacional.
Nos anos 2000, lançou uma espécie de trilogia, três novelas que alavancaram a audiência do horário das 18h: “O Cravo e a Rosa”, “Chocolate com Pimenta” e “Alma Gêmea”.
Este RPubs apresenta uma relação entre os atores dessa triologia, com a finalidade de descobrir se existem atores que participaram de todas as três produções1. Aqui, não estou considerando participações especiais.
Para essa finalidade, vamos carregar os pacotes abaixo no R:
knitr::opts_chunk$set(echo = FALSE)
if (!require("pacman")) install.packages("pacman")
## Loading required package: pacman
pacman::p_load(
"tidyverse",
"rvest",
"janitor",
"lubridate"
)
Em seguida, é feita a coleta dos dados de cada telenovela, disponíveis na Wikipédia:
# URL base
www <- vector("list", 3)
www[[1]] <- "https://pt.wikipedia.org/wiki/O_Cravo_e_a_Rosa"
www[[2]] <- "https://pt.wikipedia.org/wiki/Chocolate_com_Pimenta"
www[[3]] <- "https://pt.wikipedia.org/wiki/Alma_Gêmea"
# Xpath da tabela
xpaths <- vector("list", 3)
xpaths[[1]] <- "//*[@id='mw-content-text']/div[1]/table[2]"
xpaths[[2]] <- "//*[@id='mw-content-text']/div[1]/table[3]"
xpaths[[3]] <- "//*[@id='mw-content-text']/div[1]/table[2]"
# Salvar informações da página
pg <- vector("list", 3)
for (i in 1:3) {
pg[[i]] <- rvest::read_html(www[[i]]) # Carrega o HTML corretamente
}
# Criar uma lista para armazenar os dados das tabelas
dados <- vector("list", 3)
# Loop para extrair as tabelas e salvar os dados
for (i in 1:3) {
dados[[i]] <- pg[[i]] %>%
rvest::html_nodes(xpath = xpaths[[i]]) %>% # Usar o XPath correto
rvest::html_table() %>%
dplyr::bind_rows() %>%
janitor::clean_names()
# Visualizar o conteúdo de cada elemento da lista
# dplyr::glimpse(dados[[i]])
}
Por ora, é possível notar que “O Cravo e a Rosa” é a novela com a quantidade mais enxuta de personagens.
Agora, instalamos o pacote sqldf para usar comandos SQL
no R:
install.packages("sqldf", repos = "https://cran.rstudio.com/")
##
## The downloaded binary packages are in
## /var/folders/g9/ksj359gd42xbh91r2bm537rc0000gn/T//RtmpmxNGz0/downloaded_packages
library(sqldf)
Por fim, usando INNER JOIN, descobrimos quais atores participaram de todas as novelas:
# Adaptando 'dados' para rodar em SQL
df1 <- dados[[1]]
df2 <- dados[[2]]
df3 <- dados[[3]]
resultado = sqldf("
SELECT d1.interprete
FROM df1 d1
INNER JOIN df2 d2 ON d1.interprete = d2.interprete
INNER JOIN df3 d3 ON d1.interprete = d3.interprete_5")
resultado %>%
knitr::kable()
| interprete |
|---|
| Drica Moraes |
| Carla Daniel |