cebrap.lab online - Raspagem de dados com R

Raspando informações de páginas HTML Dinâmicas

Beatriz Milz

setembro de 2025

Selenium

O que é Selenium?

  • Selenium é uma ferramenta que permite automatizar um navegador!

  • Suporta alguns backends diferentes: Firefox, Chrome, etc.

  • Diferentemente do web scraping normal, não precisamos nos preocupar com nenhuma requisição HTTP

    • O Selenium literalmente cria um navegador invisível para o qual você pode passar as ações a serem tomadas

    • Por ser uma sessão interativa, não há dificuldades em exibir conteúdo dinâmico

    • Não é necessário compreender o networking do site

Por que não usá-lo sempre?

  • Vantagens:

    • Permite raspar páginas dinâmicas

    • Permite screen shots

  • Desvantagens:

    • Lento e de difícil paralelização

    • Bastante sensível

    • RSelenium tem fama de ser quebrado

RSelenium

  • O RSelenium usa um navegador de verdade como backend

    • Nem sempre a instalação do RSelenium funciona e em alguns sistemas operacionais há outras dependências

    • A documentação do RSelenium é bagunçada, dificultando qualquer pesquisa

  • Não use RSelenium caso não seja estritamente necessário!

Demonstração

  • No exemplo a seguir, o RSelenium abre uma aba do Firefox no meu computador e executa todos os comandos ao vivo nela

Demonstração

# Carregar o pacote RSelenium
library(RSelenium)

# Iniciar o servidor do RSelenium. Ele irá abrir uma janela do Firefox
# Essa etapa pode demorar um pouco
drv <- rsDriver(browser = "firefox", verbose = FALSE, chromever = NULL, phantomver = NULL)

# Acessando uma URL
drv$client$navigate("https://google.com")

# Procurando um elemento: no caso, o campo de busca
elem <- drv$client$findElement("xpath", "//textarea[@name='q']")

# Escrevendo no campo de busca
elem$sendKeysToElement(list("Beatriz Milz", key = "enter"))

# Esperar um pouco para a página carregar
Sys.sleep(2)

# Capturar a tela
drv$client$screenshot(file = "screenshot_selenium.png")

# Encerrar o servidor
drv$client$quit()

Demonstração

Resultado

  • Abrimos o navegador, acessamos a página do Google, fizemos uma busca (no caso, pelo meu nome) e fizemos uma captura de tela.

Vamos ao R:
scripts/