如何解析HAR文件以提取文本内容?

12

我将我的网络数据保存在HAR文件中,现在想要提取整个包含特定关键词的内容字典,作为一个指示器将该字典保存到数组中。在HAR文件中有多个相似的字典都包含该值,我希望创建一个包含所有响应的数组。

我对Python(以及编码总体)还很陌生,像我五岁的解释会非常有帮助。


https://pypi.org/project/haralyzer/ 看起来可能很适合。它可以解析和分析har文件。 - Brian Minton
2个回答

12

您可以使用 haralyzer 模块。您可以通过以下方式轻松使用 pip 进行安装:

pip install haralyzer
以下代码使用此示例har文件:har文件
>>> import json
>>> from haralyzer import HarParser, HarPage
>>>
>>> with open('sample.har', 'r') as f:
...     har_parser = HarParser(json.loads(f.read()))
>>>
>>> data = har_parser.har_data
>>> type(data)
<class 'dict'>
>>>
>>> data.keys()
dict_keys(['version', 'creator', 'pages', 'entries'])
>>>
>>> har_parser.har_data["pages"]
[{'startedDateTime': '2013-08-24T20:16:16.997Z', 'id': 'page_1', 'title': 'http://ericduran.github.io/chromeHAR/', 'pageTimings': {'onContentLoad': 317, 'onLoad': 406}}]

了解更多信息,请查看官方 GitHub 存储库


嗨,Anwarvic,你介意检查一下你的领英吗? - alias micheal
注意各位,"har文件"链接不是一个链接,而是一个下载链接。请小心! - X_Trust
1
@X_Trust,我已经更改了链接。现在,在下载之前,您可以查看文件。 - Anwarvic
1
Haralyzer 似乎出现了问题。无法使用它读取 har 文件。 - Alex
@Alex 我这里也有同样的问题。我认为是结构问题。 - Alessandro Togni
显示剩余6条评论

1
跟随Anwarvic的答案,HAR文件中的条目如果具有基于文本的内容类型,则其实际内容包含在键entry-> response-> content-> text中。因此,这里是一个例子,打印所有这些条目的内容。
.... initialize har parser as per documentation ....

for page in har_parser.pages:
    for entry in page.entries:
        # Need to be careful accessing the text property, it will not exist for non text-based responses.
        print(entry['response']['content'].get('text', ''))

从那里,您可以使用in或正则表达式来查看条目的响应文本是否与您要查找的文本匹配。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接