Kit completo de web scraping em Python, com 3 exemplos práticos usando diferentes tecnologias: BeautifulSoup para HTML estático, Selenium para páginas com JavaScript legado e Playwright para scraping moderno e assíncrono. Exportação em múltiplos formatos (CSV, JSON, Parquet).
- ✅ 3 estratégias de scraping (estática, Selenium, Playwright)
- ✅ Rate limiting configurável para evitar bloqueios
- ✅ Retry automático com backoff exponencial
- ✅ User-Agent rotation para scraping ético
- ✅ Exportação flexível: CSV, JSON e Parquet
- ✅ Processamento com Polars (mais rápido que Pandas)
- ✅ Logging estruturado para debug
| Ferramenta | Quando usar |
|---|---|
| BeautifulSoup + Requests | HTML estático, sites simples |
| Selenium | Sites com JavaScript, automação de navegador |
| Playwright | Moderno, assíncrono, multi-browser |
| Polars | Processamento de dados ultra-rápido |
| Parquet | Formato colunar eficiente |
web-scraper-toolkit/
├── scrapers/
│ ├── __init__.py
│ ├── bs4_scraper.py # Exemplo com BeautifulSoup
│ ├── selenium_scraper.py # Exemplo com Selenium
│ └── playwright_scraper.py # Exemplo com Playwright (async)
├── utils/
│ ├── __init__.py
│ ├── exporters.py # Exportadores CSV/JSON/Parquet
│ └── rate_limiter.py # Rate limiting
├── examples/
│ ├── quotes_bs4.py # Scraping de quotes.toscrape.com
│ ├── books_selenium.py # Scraping de books.toscrape.com
│ └── news_playwright.py # Scraping de notícias (async)
├── requirements.txt
├── .gitignore
└── README.md
git clone https://github.com/LacerdaTraderCode/web-scraper-toolkit.git
cd web-scraper-toolkit
python -m venv venv
source venv/bin/activate # Linux/Mac
# venv\Scripts\activate # Windows
pip install -r requirements.txt
# Para Playwright, instalar os browsers (só na primeira vez)
playwright install chromiumpython examples/quotes_bs4.pyExtrai quotes do site quotes.toscrape.com, salva em CSV e Parquet.
python examples/books_selenium.pyNavega pelo catálogo de books.toscrape.com simulando usuário real.
python examples/news_playwright.pyColeta manchetes de forma assíncrona (mais rápido).
Teste scraping de 100 páginas:
| Ferramenta | Tempo | Uso de CPU | Recomendado para |
|---|---|---|---|
| BeautifulSoup | ~15s | Baixo | Sites simples |
| Selenium | ~90s | Alto | Sites legados com JS |
| Playwright (async) | ~25s | Médio | Projetos modernos |
Este toolkit é para fins educacionais. Ao fazer scraping:
- ✅ Respeite o
robots.txtdo site - ✅ Não sobrecarregue servidores (use rate limiting)
- ✅ Identifique seu User-Agent
- ✅ Respeite os Termos de Uso do site
- ❌ Não colete dados pessoais sem consentimento
Wagner Lacerda
🔗 LinkedIn
🐙 GitHub
MIT License