O serviço Dados Abertos é um WebService. Um webservice é como se fosse um sistema de informação sem telas. Você pode consultar o que quiser, mas não tem um formulário para preencher o que quer. E o retorno do sistema não é uma planilha bonitinha nem um relatório em PDF, é só um monte de informação que você mesmo tem que tratar.
Eu resolvi usar python para fazer minhas pesquisas. Eu estou usando a biblioteca suds, que é um cliente leve de webservices para python.
Para instalar no linux, usei:
$ sudo pip install suds
Para poder fazer isso, você tem que ter o python e o pip instalados.
Depois você faz o seguinte:
$ python
>>> from suds.client import Client #importa o cliente
Aí você define a URL:
>>> url = 'http://www.camara.gov.br/SitCamaraWS/Proposicoes.asmx?wsdl'
e acessa:
>>> client = Client(url)
Pronto! Você já tem acesso ao WebService. Agora você pode olhar os métodos disponíveis de forma já tratada pelo suds:
>>> print (client)
Um dos métodos que ele mostra como disponíveis é esse:
ListarSiglasTipoProposicao()
Para consumí-lo, você faz o seguinte:
>>> resultado = client.service.ListarSiglasTipoProposicao()
O retorno é um xml composto pela tag <siglas> que possui vários objetos <sigla> com atributos "tipoSigla", "descricao" e outros.
Se quiser ver o "tipoSigla" do terceiro item, você pode acessá-lo assim:
>>> resultado['siglas']['sigla'][2]._tipoSigla
E o retorno vai ser:
ANEXO
Agora digamos que você quer saber quantas medidas provisórias estão em tramitação no Congresso Nacional neste momento...
Você poderia utilizar o método ListarProposicoes. Nossa chamada "print client" mostra este método da seguinte forma:
Methods (11):
ListarProposicoes(xs:string sigla, xs:string numero, xs:string ano, xs:string datApresentacaoIni, xs:string datApresentacaoFim, xs:string idTipoAutor, xs:string parteNomeAutor, xs:string siglaPartidoAutor, xs:string siglaUFAutor, xs:string generoAutor, xs:string codEstado, xs:string codOrgaoEstado, xs:string emTramitacao, )
Olhando a documentação do método, você vai ver que alguns campos são obrigatórios. Um deles é o ano, infelizmente. Então, para descobrir quantas medidas provisórias (de qualquer ano) estão em tramitação no Congresso, você tem que fazer várias chamadas como esta:
>>> resultado = client.service.ListarProposicoes('MPV', None, 2014, None, None, None, None, None, None, None, None, None, 1)
O 'MPV' no começo significa Medida Provisória e o 1 no final indica que a proposição está tramitando. Para ver quantas deram você usa o seguinte comando:>>> len(resultado['proposicoes']['proposicao'])
Se quiser ver vários anos, pode executar o seguinte:
>>> for a in range(2005,2015):
... resultado = client.service.ListarProposicoes('MPV', None, a, None, None, None, None, None, None, None, None, None, 1)
... print(str(a) + ': ' + str(len(resultado['proposicoes']['proposicao'])))
...
Para minha surpresa, no momento em que fiz a consulta, havia 12 proposições do tipo Medida Provisória de 2014, e dezenas de outras de outros anos. Na verdade, como vocês podem ver em outra consulta, quase todas as situações de proposições são consideradas "Ativas", inclusive "Retirado pelo Autor", "Perdeu a Eficácia", "Enviada ao Arquivo" e "Arquivada"... Acho que terei que montar meu próprio conceito de "Ativa". Conto para vocês depois....
Abs.,Otávio
Nenhum comentário:
Postar um comentário