-
-
Save zvodd/78d94e2211de96a4ca5d107c0709c3ec to your computer and use it in GitHub Desktop.
parsehar.py - Reads a har file from the filesystem, converts to CSV, then dumps to stdout.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"""Reads a har file from the filesystem, converts to CSV, then dumps to | |
stdout. | |
""" | |
import argparse | |
import json | |
from urllib.parse import urlparse | |
def main(harfile_path): | |
"""Reads a har file from the filesystem, converts to CSV, then dumps to | |
stdout. | |
""" | |
harfile = open(harfile_path, 'rb') | |
harfile_json = json.load(harfile) | |
i = 0 | |
for entry in harfile_json['log']['entries']: | |
i = i + 1 | |
url = entry['request']['url'] | |
urlparts = urlparse(entry['request']['url']) | |
size_bytes = entry['response']['bodySize'] | |
size_kilobytes = float(entry['response']['bodySize'])/1024 | |
mimetype = 'unknown' | |
if 'mimeType' in entry['response']['content']: | |
mimetype = entry['response']['content']['mimeType'] | |
print ('{},"{}",{},{},{},{}'.format(i, url, urlparts.hostname, size_bytes, | |
size_kilobytes, mimetype)) | |
if __name__ == '__main__': | |
argparser = argparse.ArgumentParser( | |
prog='parsehar', | |
description='Parse .har files into comma separated values (csv).') | |
argparser.add_argument('harfile', type=str, nargs=1, | |
help='path to harfile to be processed.') | |
args = argparser.parse_args() | |
main(args.harfile[0]) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Python 3.7 updated
Fix errors related to decoding unicode. i.e. lets json decode handle it with binary.