Browse Source

update to 2017 data, fix interrupt handling

master
Norwin Roosen 1 year ago
parent
commit
bf170b1f5c
No account linked to committer's email address
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 @@
1 1
 # Pendleratlas Scraper
2 2
 
3
-Die Bundesagentur fuer Arbeit stellt die Pendlerstatistik von 2016 als
3
+Die Bundesagentur fuer Arbeit stellt die Pendlerstatistik von 2016 - 2017 als
4 4
 interaktive Karte auf ihrer [Website][Pendleratlas] bereit.
5 5
 
6 6
 Diese Statistik bietet die detailliertesten Informationen zu Pendlern auf Bundesebene welche ich finden konnte:
@@ -42,6 +42,7 @@ python fetch-kreise.py > kreise.json
42 42
 
43 43
 ### Pendlerdaten
44 44
 Das Skript `fetch-pendler.py` erwartet die Gemeindegrenzen `kreise.json` im selben Ordner, und fragt die API der Arbeitsagentur fuer jeden Kreis ab.
45
+Das Jahr kann im Kopf des Skripts gewaehlt werden, Daten sind jeweils nur fuer den Juni verfuegbar.
45 46
 Dies dauert ne ganze Weile, da die API langsam und instabil ist. Fehlgeschlagene Requests werden wiederholt bis alles da ist.
46 47
 Das Skript augmentiert das zuvor bezogene `kreise.json` und speichert als `pendler.json`
47 48
 

+ 7
- 4
fetch-pendler.py View File

@@ -1,8 +1,9 @@
1
-import requests
1
+import sys
2 2
 import json
3
+import requests
3 4
 
4 5
 pendlerUrl = 'https://statistik.arbeitsagentur.de/PendlerData'
5
-pendlerParams = { 'year_month' : '201606', 'view' : 'renderPendler' }
6
+pendlerParams = { 'year_month' : '201706', 'view' : 'renderPendler' }
6 7
 
7 8
 f = open('kreise.json', 'r')
8 9
 kreise = f.read()
@@ -16,7 +17,7 @@ while not all('auspendler' in f['properties'] for f in geojson['features']):
16 17
         if 'auspendler' in f['properties']:
17 18
             continue
18 19
         else:
19
-            print('fetching', f['properties']['ID'], i)
20
+            print 'fetching', f['properties']['ID'], i
20 21
 
21 22
         pendlerParams['regionInd'] = f['properties']['ID']
22 23
 
@@ -29,8 +30,10 @@ while not all('auspendler' in f['properties'] for f in geojson['features']):
29 30
             r = requests.get(pendlerUrl, params=pendlerParams)
30 31
             f['properties']['auspendler'] = json.loads(r.text)
31 32
 
33
+        except KeyboardInterrupt:
34
+            sys.exit(1)
32 35
         except:
33
-            print('errored at', i)
36
+            print 'errored at', i
34 37
             continue
35 38
 
36 39
 f = open('pendler.json', 'w')

Loading…
Cancel
Save