Selenium
Selenium
O Selenium é uma ferramenta poderosa que permite automatizar a interação com navegadores web. Ele é amplamente usado em testes automatizados de aplicações web, mas também é muito útil para web scraping de páginas que usam JavaScript pesado, onde ferramentas como requests
e BeautifulSoup
não conseguem acessar o conteúdo renderizado.
Com o Selenium, você pode:
- Abrir páginas no navegador (Chrome, Firefox, etc.)
- Preencher formulários
- Clicar em botões
- Esperar elementos carregarem
- Capturar conteúdo da página depois que o JavaScript terminou de executar
Para usar com o Chrome:
pip install selenium
Você também precisa do ChromeDriver (ou geckodriver
para Firefox). No caso do Chrome:
sudo apt install chromium-chromedriver
Ou baixe manualmente em: https://sites.google.com/chromium.org/driver/
Exemplo básico
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
# Configura o navegador para modo "headless" (sem abrir janela)
options = Options()
options.add_argument("--headless")
# Inicia o navegador
navegador = webdriver.Chrome(options=options)
# Acessa o site
navegador.get("https://example.com")
# Espera e pega um elemento (exemplo: título h1)
titulo = navegador.find_element(By.TAG_NAME, "h1")
print("Título da página:", titulo.text)
navegador.quit()
Esperar carregamento
Você pode esperar um elemento carregar usando WebDriverWait
:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
elemento = WebDriverWait(navegador, 10).until(
EC.presence_of_element_located((By.ID, "resultado"))
)
Pegando vários elementos
produtos = navegador.find_elements(By.CLASS_NAME, "nome-produto")
for p in produtos:
print(p.text)