Lijst aangemerkte datasets uit INSPIRE aanmerkingsregister

Ik heb behoefte aan een automatisch te verwerken lijst (bijvoorkeur via API, maar Excel oid is ook goed) van datasets uit het INSPIRE aanmerkingsregister. Is er iemand die dat wel eens gedaan heeft?

Je zou verwachten dat het aanmerkingsregister ook open data is die via data.overheid.nl gedeeld wordt, maar dat is helaas niet het geval.

Op de website van het aanmerkingsregister vond ik ook zo snel geen optie om de lijst van datasets te downloaden in een CSV bestand oid. Je zou kunnen overwegen om de data bijelkaar te scrapen, hier een klein voorbeeld (Python):

import sys

import pandas as pd
import requests
from bs4 import BeautifulSoup


def get_datasets(soup):
    datasets = []
    for s_dataset in soup.select(
        "article.node-dataset-card.node-dataset-card--promoted"
    ):
        dataset = {
            "title": s_dataset.select_one("h2").text,
            "dataprovider": s_dataset.select_one(".node-dataset-card__primary-provider")
            .find(string=True, recursive=False)
            .replace("\n", "")
            .lstrip(),
        }
        datasets.append(dataset)
    return datasets


base_url = "https://www.inspireaanmerking.nl/aanmerkingsregister?page="

i = 0
datasets = []
while True:
    url = f"{base_url}{i}"
    print(f"crawling {url}")
    soup = BeautifulSoup(requests.get(url, timeout=10).text, features="html.parser")
    page_datasets = get_datasets(soup)
    if len(page_datasets) == 0:
        break
    else:
        datasets.extend(page_datasets)
        i += 1
df = pd.DataFrame(datasets)
df.to_csv(sys.stdout, sep="\t", encoding="utf-8")

Geeft de volgende CSV output:

        title   dataprovider
0       CBS gebiedsindelingen   Centraal Bureau voor de Statistiek (CBS)                  
1       Bestand Bodemgebruik    Centraal Bureau voor de Statistiek (CBS)                  
2       Aantal doden en doctoren (per provincie)        Centraal Bureau voor de Statistiek (CBS)                  
3       Aantal inwoners per vierkanten - 100m   Centraal Bureau voor de Statistiek (CBS)                  
4       Aantal inwoners per vierkanten - 500m   Centraal Bureau voor de Statistiek (CBS)                  
5       Nuts-netwerken  Gemeenten                  
6       Kadaster en Rijkswaterstaat zijn verantwoordelijk voor de parameters van het RD en NAP  Kadaster 
...
3 likes

Nou Anton bedankt!

@helmoetz ik heb het voorbeeld wat verder uitgewerkt om eens te kijken voor mijzelf of ik een crawler met Github Action’s automatisch (sceduled) kon laten draaien en de output terug committen naar het repository. Het resultaat staat hier: inspire-aanmerkingsregister-csv.

Deze aanpak zou ook eenvoudig gebruikt kunnen worden in andere situaties waarin geen opendata beschikbaar is.

De GH Action workflow wordt elke zondag om 00:00 afgetrapt en die updatet dan inspireaanmerking.nl.csv indien er changes zijn. Als er geen changes zijn, wordt er een lege commit gedaan om de actualiteit van de data aan te geven.

Overigens worden scheduled workflows gedeactiveerd in een repo na 60 dagen zonder activiteit.

1 like