#!/usr/bin/env python3 import json import urllib.request import argparse from collections import Counter from operator import itemgetter parser = argparse.ArgumentParser(description="API Call to collect data") parser.add_argument("tenant", type=str, help="Tenant Name") parser.add_argument("token", type=str, help="Tenat API Token") parser.add_argument("-t", "--timeperiod", type=int, default='604800', help="Timeperiod (default: 604800)") try: args = parser.parse_args() tenant = args.tenant token = args.token timeperiod = args.timeperiod except argparse.ArgumentError as e: print(str(e)) def print_dict(dict, json_content): for key, value in sorted(dict.items(), key = itemgetter(1), reverse = True): print ("{:<35s}{:5d}".format(key, value)) base_url = "https://{}.goskope.com/api/v1/events?token={}&type=page&timeperiod={}".format(tenant, token, timeperiod) req = urllib.request.Request(base_url) with urllib.request.urlopen(req) as response: content = response.read() json_content = json.loads(content) domains = Counter(data['domain'] for data in json_content['data']) categories = Counter(data['category'] for data in json_content['data']) print ("==== Domains ===") print_dict (domains, json_content) print ("\n") print ("==== Categories ===") print_dict (categories)