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]])
}

Lista de personagens de “O Cravo e a Rosa”


Lista de personagens de “Chocolate com Pimenta”


Lista de personagens de “Alma Gêmea”

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


Assim, Drica Moraes e Carla Daniel foram as únicas atrizes que participaram de todas as novelas. 🧐


  1. Uma parte desse artigo não poderia ser realizada sem a ajuda deste site: https://analisemacro.com.br/data-science/dicas-de-rstats/como-fazer-web-scrapping-de-tabelas-de-dados-usando-o-r/↩︎