Help us understand the problem. What is going on with this article?

HARファイルの内容から指定URLの内容のみを抽出する方法

More than 5 years have passed since last update.

開発者ツールのネットワークデータで、[Preserve log][持続]モードで一連のページ遷移の流れを記録したときに、HARファイル(Chromeの開発者ツールやFireFoxのFireBugなどのネットワークログをダンプしたファイル)の内容が大きくなってしまいます。
これは、表示したページのHTML以外にも画像やcssなど全てのリクエスト内容が含まれるためです。
しかし、分析や調査のときには着目したいリクエスト(特定のURL)の分があれば十分です。

そこで、jqコマンド(v1.4)を使ってHARファイルから指定URLの内容のみを抽出するスクリプトを作りました。

このコマンドで抽出した内容はHARファイルの構造をそのまま保っているので、HARファイルビューアなどでも問題なく閲覧できます。

#!/bin/bash
#
# harファイルのログデータで、指定のURLのアクセスのみを抽出する
#
# Requie:
#  jq v1.4
#
# Example:
#  1) har_filter "http://example.com/hoge" har_file.har
#  2) cat har_file.har | har_filter "http://example.com/hoge"
#
set -e

filter_url=$1
har_file=${2:--}

contents=$(cat $har_file | \
jq -r "$(cat <<EOS
.log | with_entries(if .key != "entries" then
 .
else
 .value |= map(select(.request.url | startswith("$filter_url")))
end)
EOS
)"
)

cat <<EOS | jq .
{ "log": $contents }
EOS

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away