Candidato as a Service: Dados dos candidatos para as eleições disponíveis como serviços WEB

Está no ar a API que permite que você acesse dados dos candidatos das eleições desse ano programativamente.
O site do TSE é ótimo! Muito bom para seres humanos usarem e acessarem as informações, mas não para o seu programa (há não ser que você viva de Scrapping ou baixe os CSVs que eles disponibilizam). Como diriam Leonard Richardson e Sam Ruby:

You’ve built web sites that can be used by humans. But can you also build web sites that are usable by machines?

Com as ferramentas e APIs que temos hoje é fácil consumir um serviço, em qualquer linguagem, e o trabalho pode se resumir a algumas linhas de código.
Agora com os dados dos candidatos são imagináveis as oportunidades de aplicações que podem ser construídas. Infelizmente ela não foi terminada antes das eleições. Na verdade, começamos a trabalhar nela um pouco depois do segundo turno, mas a idéia, no caso das eleições, vai um pouco além de informações dos candidatos. Essa será a base para novos dados (processos, gastos nas eleições, etc) dos candidados, principalmente os eleitos. É claro que essas informações estão todas no site do TSE ou outros, mas distribuídas e não acessíveis pelo seu programa…

Espero continuar construindo serviços e tornar pelo menos um pouco real o que eu disse sobre dados públicos há uns meses atrás…

Anúncios

TSE: Baixando todos os arquivos sobre candidaturas do site

Quanto tempo!

Estou carregando uma base relacional com dados de todos as candidaturas das eleições desse ano. Parece ser inútil, mas na verdade essa é primeira parte de um projeto um pouco maior. A segunda é disponibilizar essa base em forma de WEB Services REST e posteriormente expandir a base, adicionando os dados pós eleições e, enfim, adicionar dados do que os candidatos estão fazendo depois de eleitos para o povo!

Minha missão hoje era baixar os CSVs dos candidatos e salvar na minha máquina para eu carregar usando um programa Java na minha base (com JPA e as coisinhas que o povo gosta :D).

Analisando a página e como a mesma baixava o arquivo, foi fácil descobrir a formação da URL de onde o CSV é gerado:

http://divulgacand2010.tse.jus.br/divulgacand2010/jsp/exportarDadosCandidatoCSV.action?
siglaUF={Sigla}
&cdCargoCand={cargo}
&situacao={situacao}
&ordenacao={ordem}
&campoPesquisa=”+campoPesquisa

Sigla = sigla do estado: AC, AL, AP, AM, BA, CE, DF, GO, ES, MA, MT, MS, MG, PA, PB, PR , PE, PI, RJ, RN, RS, RO, RR, SP, SC, SE, TO
cargo =
3 – Governador
4 – Vice-Governador
5 – Senador
9 – 1º Suplente Senador
10 – 2º Suplente Senador
6 – Deputado Federal
7 – Deputado Estadual

situacao =
1 – Aptos
2 – Inaptos
3 – Todos

ordem = cand.NM_CANDIDATO

campoPesquisa = uma pesquisa que você deseja fazer


Para baixar os candidatos a governadores de São Paulo, por exemplo, você usa:


http://divulgacand2010.tse.jus.br/divulgacand2010/jsp/exportarDadosCandidatoCSV.action?siglaUF=SP&cdCargoCand=3&situacao=3&ordenacao=cand.NM_CANDIDATO&campoPesquisa=

A partir daí um for de for (estado e cargo) em Java e uma busca sobre como baixar arquivos usando a tecnologia da Oracle para trazer os csvs de forma automática. O melhor foi que tudo isso foi feito em menos de meia-hora! Poupando muito tempo de ficar baixando na mão.

Agora vou passar eles pra UTF-8 e usar o meu outro programa de carga desse CSV no banco de dados. É quase uma suíte de programas para as eleições 2010 😛