bundesAPI / sofortmassnahmen

Zivilgesellschaftliche Beteiligung zu den „Sofortmaßnahmen Zweites Open Data Gesetz“
96 stars 3 forks source link

Amateurfunkrufzeichen (Bundesnetzagentur) #40

Closed asdil12 closed 2 years ago

asdil12 commented 2 years ago
#!/usr/bin/python3

import sys
import requests
from bs4 import BeautifulSoup

r = requests.get("https://ans.bundesnetzagentur.de/amateurfunk/Rufzeichen.aspx")
soup = BeautifulSoup(r.text, 'html.parser')

r = requests.post("https://ans.bundesnetzagentur.de/amateurfunk/Rufzeichen.aspx", data={
    "__EVENTTARGET": soup.find('input', {"name": "__EVENTTARGET"})['value'],
    "__VIEWSTATE": soup.find('input', {"name": "__VIEWSTATE"})['value'],
    "__VIEWSTATEGENERATOR": soup.find('input', {"name": "__VIEWSTATEGENERATOR"})['value'],
    "__EVENTVALIDATION": soup.find('input', {"name": "__EVENTVALIDATION"})['value'],
    "Text1": sys.argv[1],
    "Bt_Suche": "Suche starten"
})
soup = BeautifulSoup(r.text, 'html.parser')
try:
    rufzeichen, klasse, _, inhaber, betriebsort = map(lambda a: a.text.strip(), soup.find('table', {'id': 'DG_RZ'}).find_all('tr')[1].find_all('td'))
    print({
        "rufzeichen": rufzeichen,
        "klasse": klasse,
        "inhaber": inhaber,
        "betriebsort": betriebsort
    })
except IndexError:
    print("Rufzeichen nicht gefunden")
./rufzeichen.py DJ4UF
{'rufzeichen': 'DJ4UF', 'klasse': 'A', 'inhaber': 'Eckart Karl Wolfgang Moltrecht; Wohlfarth 24; 53804 Much', 'betriebsort': 'Wohlfarth 24; 53804 Much'}
LilithWittmann commented 2 years ago

Hey sehr cool! Magst Du das in die Deutschland Lib integrieren?

asdil12 commented 2 years ago

https://github.com/bundesAPI/deutschland/pull/25

Allerdings dürfte das noch nicht ganz funktionieren, weil die relativen imports irgendwie nicht passen.