Browse Source

update to 2017 data, fix interrupt handling

master
Norwin 1 year ago
parent
commit
bf170b1f5c
No known key found for this signature in database
2 changed files with 9 additions and 5 deletions
  1. 2
    1
      README.md
  2. 7
    4
      fetch-pendler.py

+ 2
- 1
README.md View File

@@ -1,6 +1,6 @@
# Pendleratlas Scraper

Die Bundesagentur fuer Arbeit stellt die Pendlerstatistik von 2016 als
Die Bundesagentur fuer Arbeit stellt die Pendlerstatistik von 2016 - 2017 als
interaktive Karte auf ihrer [Website][Pendleratlas] bereit.

Diese Statistik bietet die detailliertesten Informationen zu Pendlern auf Bundesebene welche ich finden konnte:
@@ -42,6 +42,7 @@ python fetch-kreise.py > kreise.json

### Pendlerdaten
Das Skript `fetch-pendler.py` erwartet die Gemeindegrenzen `kreise.json` im selben Ordner, und fragt die API der Arbeitsagentur fuer jeden Kreis ab.
Das Jahr kann im Kopf des Skripts gewaehlt werden, Daten sind jeweils nur fuer den Juni verfuegbar.
Dies dauert ne ganze Weile, da die API langsam und instabil ist. Fehlgeschlagene Requests werden wiederholt bis alles da ist.
Das Skript augmentiert das zuvor bezogene `kreise.json` und speichert als `pendler.json`


+ 7
- 4
fetch-pendler.py View File

@@ -1,8 +1,9 @@
import requests
import sys
import json
import requests

pendlerUrl = 'https://statistik.arbeitsagentur.de/PendlerData'
pendlerParams = { 'year_month' : '201606', 'view' : 'renderPendler' }
pendlerParams = { 'year_month' : '201706', 'view' : 'renderPendler' }

f = open('kreise.json', 'r')
kreise = f.read()
@@ -16,7 +17,7 @@ while not all('auspendler' in f['properties'] for f in geojson['features']):
if 'auspendler' in f['properties']:
continue
else:
print('fetching', f['properties']['ID'], i)
print 'fetching', f['properties']['ID'], i

pendlerParams['regionInd'] = f['properties']['ID']

@@ -29,8 +30,10 @@ while not all('auspendler' in f['properties'] for f in geojson['features']):
r = requests.get(pendlerUrl, params=pendlerParams)
f['properties']['auspendler'] = json.loads(r.text)

except KeyboardInterrupt:
sys.exit(1)
except:
print('errored at', i)
print 'errored at', i
continue

f = open('pendler.json', 'w')

Loading…
Cancel
Save