Como libertar a informação pública

Por Hélder Guerreiro, fundador tretas.org

Em Dezembro de 2008 demos inicio a um projecto “tretas.org“.

O objectivo principal deste projecto é a recolha de informação de fontes confiáveis, ou pelo menos que tenham um mínimo de escrutínio, sobre o que se vai passando em Portugal a nível da corrupção, do envolvimento dos políticos em negócios menos claros, sobre o desperdício na administração do Estado, etc.

Partimos da premissa de que a informação está de uma forma geral disponível, nos jornais, na legislação, nos documentos oficiais; e que esta necessita apenas de ser reunida e analisada de uma forma crítica para podermos formar um panorama muito aproximado ao que se passa na realidade. Pretendemos que esta recolha e interpretação da informação se faça de forma independente dos ciclos políticos e que, finalmente, seja apresentada de uma forma fácil de acompanhar.

É claro que uma actividade como esta não é nada de novo, as empresas de cliping existem para isto mesmo. No entanto o cidadão comum não tem possibilidades na sua vida diária de analisar a fundo um dossier como por exemplo o caso dos submarinos, que tem a sua génese quase há 15 anos, em 1998, com inúmeras ligações a várias pessoas e organizações. E ainda menos possibilidades tem de pagar a um terceiro para que este o faça por ele. Com este projecto, um resumo fácil de acompanhar fica à distância de um clic. Consegue-se desta forma anular alguma da desvantagem em termos de acesso à informação que os cidadãos têm em relação aos políticos, aos partidos e às grandes empresas. Pensamos que é uma ferramenta necessária.

No decorrer desta actividade rapidamente percebemos a necessidade de aceder a documentos vertidos nos Diários da República. Infelizmente o site do Diário da República Electrónico tem problemas de utilização que o tornam quase inútil para o utilizador comum, a menos que tenha o número do documento desejado. Ora, justamente, a maior parte das vezes procuram-se documentos sobre um dado assunto sem sabermos o número do mesmo.

Assim fomos levados a desenvolver nos últimos meses um scraper de parte do Diário da República Electrónico. Neste momento a base de dados conta com mais de trezentos mil documentos, entre leis, decretos lei, avisos, etc. Pode consultar o resultado deste esforço no seguinte endereço:

Os objectivos iniciais eram:

a) Conseguir aceder ao site usando o nosso scraper;
b) Identificar a página de cada documento;
c) Guardar a informação recolhida numa base de dados.
Ou seja, tínhamos que aprender a copiar o DRE. Os documentos estão disponíveis através de um sub-sistema do dre.pt, designado como “Digesto”, disponível no seguinte endereço a partir da página principal do DRE:

As nossas dificuldades começaram imediatamente. Quando clicamos na ligação “Diplomas no Digesto” somos redireccionados para um endereço diferente daquele em que clicamos. Pior que tudo, o endereço que obtemos está de alguma forma ligado a uma sessão no servidor. É fácil de verificar isso, se clicarem aqui, serão redireccionados para um endereço do tipo

Deverão obter um diálogo de busca parecido ao seguinte:

Se repararem no endereço onde vão parar, a certa altura, temos uma secção com caracteres aparentemente aleatórios entre parêntesis, neste caso a cadeia gerada foi: (S(k3mihealwspomeb3acne5sij)). Esta cadeia parece identificar a referida sessão. Experimentem agora a modificar um carácter e a recarregar a página. Vão obter:
Esta é uma mensagem que aparece muitas vezes no dre.pt. Evidentemente, o passo seguinte será extrair esta cadeia de caracteres para pudermos aceder de alguma forma aos documentos. Se obtivermos a página para onde o endereço 1 aponta (usando por exemplo a ferramenta wget), verificamos que somos redireccionado para o endereço:

Estranhamente, este endereço ainda não corresponde ao endereço 2. De facto, se acedermos a este endereço, é-nos devolvido um código http 302, este é um código de redireccionamento, neste caso para

Já conseguimos, neste ponto, obter a nossa cadeia de caracteres! Mas ainda não temos o endereço 2. Na realidade obtivemos ainda outro código http 302 antes de chegarmos à página da pesquisa. Somos redireccionados três vezes antes de chegar ao destino.

Estamos prontos a começar a descarregar os documentos a partir do dre.pt. O endereço de cada documento é do tipo:

Se repararmos, o único parâmetro usado é o claint, que é um valor inteiro. Assim o que fizemos foi começar com o documento com claint=1 e continuar dai para a frente, até não termos mais documentos. Pelo menos pensámos que iria ser assim. Quase imediatamente começámos a obter erros.

Um dos erros era fácil de ultrapassar: se à primeira não conseguíamos obter o documento, então tentávamos uma e outra vez até conseguirmos descarregar o ficheiro (estabelecemos 5 tentativas como limite a partir do qual desistíamos do documento). Em 305982 documentos, falhámos desta forma a leitura de 2393 o que, tendo em conta o dre.pt, é bastante bom (vamos em breve tentar obter estes documentos que faltam, poderão ou não existir na base de dados).

Já o segundo problema com que nos deparámos foi mais surpreendente. Notámos que o nosso endereço para obtenção dos documentos cessava de funcionar ao fim de um certo tempo (se obtiver um documento e o for consultar no outro dia, este já não vai funcionar). Os endereços que apontam para o resumo dos documentos pura e simplesmente deixavam de funcionar.

Isto tem a consequência de tornar estes endereços inúteis e, claro, estorvava o nosso esforço para copiar o DRE. Facilmente se ultrapassou este problema definindo um período de tempo ao fim do qual se obtém uma nova sessão.

Resolvido este último problema, o processo de obtenção dos dados decorreu sem percalços de maior.

O trabalho que tivemos ilustra de uma forma categórica a dificuldade que os cidadãos têm em aceder aos dados do Estado, ou seja, aos seus próprios dados. Esta é uma situação insustentável numa sociedade que se queira aberta e democrática.

Toda a informação do Estado, passível de estar disponível publicamente, devia idealmente ser acessível usando interfaces simples quer para utilizadores humanos quer para ferramentas de análise e processamento de dados. Desta forma seria o cidadão a decidir a forma de utilização da informação.

Esta entrada foi publicada em Sem categoria com os tópicos , , . Guarde o href="http://blogues.publico.pt/asclaras/2013/01/21/como-libertar-a-informacao-publica/" title="Endereço para Como libertar a informação pública" rel="bookmark">endereço permamente.

3 comentários a Como libertar a informação pública

  1. Muitos parabéns aos autores pelo meritório esforço. Cidadãos diligentes e comprometidos, é disso que precisamos, e não de activistas de pacotilha que inundam o Facebook com “posts” e memes.

    Responder
  2. Já para não mencionar que tudo isto devia estar disponível através de uma API decente (sem nos obrigar a estar a escrever scrapers). E a maioria deste software devia ser open source, já que estamos nós a pagá-lo.

    Por exemplo, uma API que dava muito jeito era um endpoint (usando talvez OAuth2) num portal do Estado para autenticação de utilizadores como cidadãos (estou a escrever uma app que beneficiaria bastante com isso). Mas há tantas outras: Sistemas de ticketing abertos aos cidadãos, (no estilo FixMyStreet), base de dados de contratos públicos, etc… É preciso mudar um bocado a mentalidade que só o interface servidor -> browser é que importa.

    Responder

Deixar um comentário

O seu email nunca será publicado ou partilhado.Os campos obrigatórios estão assinalados *

Podes usar estas tags e atributos de HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>