Просмотр исходного кода

update to 2017 data, fix interrupt handling

master
Norwin 2 лет назад
Родитель
Сommit
bf170b1f5c
Не найден GPG ключ соответствующий данной подписи Идентификатор GPG ключа: 24BC059DE24C43A3
2 измененных файлов: 9 добавлений и 5 удалений
  1. +2
    -1
      README.md
  2. +7
    -4
      fetch-pendler.py

+ 2
- 1
README.md Просмотреть файл

@@ -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 Просмотреть файл

@@ -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')


Загрузка…
Отмена
Сохранить