Obter a legislação do dre.tretas.org – para o novo site

O primeiro problema: chegar ao texto integral dos diplomas

Tal como no site do dre.pt antigo, neste novo site existe uma forma de aceder ao texto integral usando URLs encontrados usando um motor de busca.

Por exemplo se fizermos uma busca com:

site:dre.pt inurl:maximized "Série II"

Vamos obter URLs para páginas deste género.

O URL anterior pode ser simplificado para qualquer coisa como:

https://dre.pt/home/-/dre/57968656/details/3/maximized?serie=II&parte_filter=31

Neste caso o diplomaId é 57968656.

Infelizmente o “diplomaId” não é sequencial.

Assim o problema consiste em obter este diplomaId para os documentos de cada dia.

Se consultarmos os documentos da “Parte C” da série II do DR, para um dado dia no passado recente, vamos encontrar algumas ligações com o texto:

Consultar vigência e produção de efeitos (DIGESTO)

A informação adicional obtida via estes links é muito pouca para o acesso grátis ao dre.pt. No entanto, se olharmos ao respectivo URL, identificamos o seguinte:

diplomaId=62080172

Este diplomaId corresponde ao número que nos dá acesso ao texto integral que mencionei antes! O exemplo anterior corresponde ao Despacho 14844/2014, que tem este texto integral.

O segundo problema: obter a lista dos documentos para um dado dia

PASSO 1 – O truque fundamental reside na forma como obtemos a lista dos documentos para um dado DR, a query a fazer ao servidor deverá ser do tipo:

https://dre.pt/web/guest/pesquisa-avancada/-/asearch/advanced/maximized?types=DR&dataPublicacao=<data&gt;

Daqui iremos obter uma lista de Diários da República (exemplo).

PASSO 2 – Por exemplo para o DR n.º 37/2015, Série I de 2015-02-23 o URL obtido no passo 1 é:


https://dre.pt/web/guest/pesquisa-avancada/-/asearch/66567259/details/maximized

Limpei o URL da parte da query dado que parece não ser usada para nada de útil aos nossos objectivos.

PASSO 3 – Vamos agora obter o ID único que nos dá acesso à página do digesto como referi mais acima. Cada documento irá ter uma estrutura parecida à seguinte:

<li>
<a href="/application/file/<número pdf>"> [ ... ]
<span class="rgba"><número digesto></span>
</a>
<div class="author"> [...] </div>
<div class="summary"> [...] </div>
<div class="action"><a class="clara" ...>Link para o digesto, isto é opcional</a></div>
</li>

Quando se faz a query da forma que mostrei temos uma tag span com class rgba. Se o número contido neste span for diferente do número do link para o PDF, então podemos construir links para a página do digesto com o texto integral! (exemplo para a Portaria 46/2015 que é a primeira do DR que usei como exemplo, notem que é da série I).

É simples, agora, fazer um scraper para isto.

Tanto quanto posso aferir isto funciona para todo o DR, série I e série II excepto para a parte dos contratos da série II.

Anúncios

Obter a legislação do dre.tretas.org

Mantemos em http://dre.tretas.org uma cópia do DRE com algumas funcionalidades que faltam no site oficial. Essas funcionalidades incluem um motor de busca eficiente, um sistema robusto de bookmarks, etiquetagem e anotação da legislação.

Para além disso, na página Acerca, do site, damos a possibilidade de fazer o download dos dados que, desde 2011, retiramos do site oficial. Desta forma qualquer um pode tratar estes dados como melhor entender. Neste post descrevo a estrutura destes dados.

Continuar a ler

Resumos de legislação

ATENÇÃO – Em Setembro de 2014 a Casa da Moeda alterou o site do DRE pelo que as notas que constam neste post já não são válidas. Mantêm-se o post para memória futura.

Descobri, hoje, que o dre.pt tem o que chamam “Resumos em linguagem clara”. São resumos de diplomas explicados em linguagem acessível. A chatice é que, parece, estes resumos apenas estão disponíveis a quem pagar pelo acesso ao Diário da República Electrónico.

Exemplo:

resumo_em_linguagem_clara