gohorsejobs/JobScraper_MultiSite/README.md
Tiago Yamamoto 8856357acd feat: add JobScraper_MultiSite Python project
- main_scraper.py: Main entry point, consolidates data from all sources
- scrapers/programathor_scraper.py: Scraper for ProgramaThor
- scrapers/geekhunter_scraper.py: Scraper for GeekHunter
- requirements.txt: Python dependencies (requests, beautifulsoup4, pandas)
- README.md: Documentation with usage instructions
- Modular architecture for easy addition of new sites
2025-12-14 09:10:17 -03:00

86 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🐴 JobScraper MultiSite
Raspador de vagas de emprego multi-plataforma para sites de tecnologia brasileiros.
## 📁 Estrutura do Projeto
```
JobScraper_MultiSite/
├── main_scraper.py # Arquivo principal
├── scrapers/ # Módulos de raspagem por site
│ ├── __init__.py
│ ├── programathor_scraper.py
│ └── geekhunter_scraper.py
├── output/ # Arquivos CSV gerados
│ └── vagas_consolidadas.csv
├── requirements.txt
└── README.md
```
## 🚀 Instalação
```bash
# Criar ambiente virtual (recomendado)
python -m venv venv
source venv/bin/activate # Linux/Mac
# ou: venv\Scripts\activate # Windows
# Instalar dependências
pip install -r requirements.txt
# Ou instalar manualmente:
pip install requests beautifulsoup4 pandas
```
## ▶️ Execução
```bash
# Executar raspagem de todos os sites
python main_scraper.py
# Testar um scraper individual
python -m scrapers.programathor_scraper
```
## 📊 Output
Os resultados são salvos na pasta `output/`:
- `vagas_consolidadas.csv` - Versão mais recente
- `vagas_consolidadas_YYYYMMDD_HHMMSS.csv` - Versões com timestamp
### Campos extraídos:
| Campo | Descrição |
|-------------|------------------------------|
| titulo | Título da vaga |
| empresa | Nome da empresa |
| localizacao | Localização/Modalidade |
| link | URL da vaga |
| fonte | Site de origem |
## Adicionando Novos Sites
1. Crie um novo arquivo em `scrapers/` (ex: `novosite_scraper.py`)
2. Implemente a função `scrape_novosite()` seguindo o padrão existente
3. Adicione ao dicionário `SITES` em `main_scraper.py`:
```python
from scrapers.novosite_scraper import scrape_novosite
SITES = {
'programathor': scrape_programathor,
'geekhunter': scrape_geekhunter,
'novosite': scrape_novosite, # Novo!
}
```
## ⚠️ Boas Práticas Anti-Bloqueio
- ✅ Sempre use `time.sleep()` entre requisições (mínimo 2s)
- ✅ Use headers que simulem um navegador real
- ✅ Não faça muitas requisições em sequência rápida
- ✅ Respeite o `robots.txt` de cada site
- ✅ Considere usar proxies para grandes volumes
## 📝 Licença
Uso educacional. Respeite os Termos de Serviço de cada site.