krs-index.py
import requests
import requests_cache
import sys
requests_cache.configure('/tmp/aaa')
def get_rows(param, url='http://api.mojepanstwo.pl/dane/dataset/krs_podmioty/search.json'):
def parse(r):
for x in r['search']['dataobjects']:
yield x['_id']
r = requests.get(url, params=param).json()
yield from parse(r)
for page in range(2, int(r['search']['pagination']['total']/20)):
param['page'] = page
r = requests.get(url, params=param).json()
yield from parse(r)
def parse_row(url, i):
# print url
x = requests.get(url, params={'layers': 'reprezentacja'}).json()['object']
d = x['data']
print('<h3>%s. %s</h3>' % (i, d['krs_podmioty.nazwa'], ))
print('<p>')
if not d['krs_podmioty.email'] == '------':
print('<b>Email</b>: <a href="mailto:%s">%s</a><br>' % (d['krs_podmioty.email'],
d['krs_podmioty.email']))
print('<b>Adres</b>: %s<br>' % (d['krs_podmioty.adres'].replace(', lok. ---', ''), ))
print('<b>KRS</b>: <a href="%s">%s</a><br>' % (x['_mpurl'], d['krs_podmioty.krs'], ))
if not d['krs_podmioty.nip'] == '0':
print('<b>NIP</b>: %s<br>' % (d['krs_podmioty.nip'], ))
if not d['krs_podmioty.regon'] == '0':
print('<b>REGON</b>: %s<br>' % (d['krs_podmioty.regon'], ))
print('<b>Forma prawna</b>: %s<br>' % (d['krs_podmioty.forma_prawna_str'], ))
if not d['krs_podmioty.www'] == '------':
print('<b>WWW</b>: <a href="http://%s">%s</a><br>' % (d['krs_podmioty.www'],
d['krs_podmioty.www'], ))
if x['layers']['reprezentacja']:
print('<b>Reprezentacja</b>:</p><ul>')
for osoba in x['layers']['reprezentacja']:
print("\t<li>%s - %s</li>" % (osoba['nazwa'], osoba['funkcja']))
print('</ul>')
else:
print('</p>')
print('')
print("""<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
</head>
<body>""")
if sys.argv[1] == '1':
param = {'conditions[gmina_id]': '1854',
'conditions[rejestr]': '2'}
if sys.argv[1] == '2':
param = {'conditions[gmina_id]': '769',
'conditions[rejestr]': '2'}
if sys.argv[1] == '3':
param = {'conditions[gmina_id]': '769'}
if sys.argv[1] == '4':
param = {'conditions[gmina_id]': '1854'}
# param = {'conditions[gmina_id]': '1854', }
for i, row in enumerate(get_rows(param)):
parse_row(row, i+1)
print(""" </body>
</html>""")