# 🐴 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.
