Web crawler construído para buscar registros por localidade e faixas de CEP disponíveis no seguinte endereço: https://www2.correios.com.br/sistemas/buscacep/buscaFaixaCep.cfm
O crawler inicialmente faz um GET request e armazena os cookies retornados em uma sessão. A partir da sessão iniciada, ele busca quais UFs estão disponíveis dentro do elemento HTML <select name="UF" class="f1col">...</option>
e coloca em uma lista que será iterada para buscar os registros. A tabela retorna 50 registros por vez. Na primeira request o crawler identifica o número total de linhas para trazer os registros que faltam.
Para não haver registros duplicados, o critério utilizado foi buscar as faixas de CEP de cada localidade que possuem escrito "Total do município" na coluna Tipo de Faixa
Na imagem acima, temos a localidade "Arapiraca" repetindo duas vezes. Utilizando o critério de deduplicação de dados, o crawler utilizar o registro da terceira linha que contem a faixa de CEP 57300-001 a 57319-999
git clone https://github.com/codeis4fun/correiosWebCrawler.git
cd correiosWebCrawler
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python buscaCEP.py
python -m unittest test_buscaCEP.py