HAR文件
简介
HAR(HTTP Archive format)
,是一种或 JSON
格式的存档格式文件,通用扩展名为 .har
。Web 浏览器可以使用该格式导出有关其加载的网页的详细性能数据。
使用场景
在开发过程中,有的场景不好复现,比如访问速度慢,请求失败等,由于设备限制,对于我们来说精确的收集数据以及定位问题有一定难度。
比如,作为开发我们可以很熟练的按下F12查看请求,但如果是作为技术支持,没有办法长时间占用对方(客户)的电脑进行问题排查。HAR则可以帮助我们收集所有的HTTP请求。
保存 HAR 文件
我们以chrome打开 www.baidu.com/ 为例 具体步骤:
- 在菜单中打开“开发人员工具”(“菜单”>“更多工具” >“开发人员工具”),您也可以在键盘上按 F12 (或 Fn-F12)。
- 打开“网络”标签页。
- 在“网络”标签页的左上角,找到一个圆形按钮。 确保该按钮是红色的。如果显示灰色,请点击一次以开始 录制。
- 开启“保留日志”**。
- 重现问题。
- 要保存记录的内容,请在网格上右键点击,然后选择 **“将内容保存为 HAR”。
- 选择保存位置,该位置会生成一个名为
www.baidu.com.har
的文件。
打开 HAR 文件
-
chrome 打开开发者工具,切换到“网络”标签页,将HAR文件托拽放入即可。
- 使用其他抓包工具也可以, 例如Charles,fiddler Charles中操作流程: File > Import 选择导出的xxx.har文件即可
使用Python解析har文件数据
import json from haralyzer import HarParser """解析har数据""" def main(): har_parser = HarParser.from_file(r'D:\Users\Desktop\数据\baidu.har') data = har_parser.har_data entries = data.get('entries') for entry in entries: req = entry['request'] url = req['url'] if 'task/list' not in url: continue body = entry['response'] if 'text' not in body['content']: continue content = body['content']['text'] info = json.loads(content) print('解析的数据:', info) list = info.get('data').get('list') for item in list: print(f'渠道ID:{item["channel_id"]} 渠道名称:{item["channel_name"]} 文章标题:{item["article_title"]}') if __name__ == '__main__': main()