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 RSeleniumlibrary(RSelenium)# Iniciar o servidor do RSelenium. Ele irá abrir uma janela do Firefox# Essa etapa pode demorar um poucodrv <-rsDriver(browser ="firefox", verbose =FALSE, chromever =NULL, phantomver =NULL)# Acessando uma URLdrv$client$navigate("https://google.com")# Procurando um elemento: no caso, o campo de buscaelem <- drv$client$findElement("xpath", "//textarea[@name='q']")# Escrevendo no campo de buscaelem$sendKeysToElement(list("Beatriz Milz", key ="enter"))# Esperar um pouco para a página carregarSys.sleep(2)# Capturar a teladrv$client$screenshot(file ="screenshot_selenium.png")# Encerrar o servidordrv$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.