用途に応じていくつかの選択肢がありますが、Python製のライブラリである browser_cookie3
を使うのが最も手軽で一般的です。OSごとのCookieの暗号化も自動で解除してくれるため非常に強力です。
方法1: 専用ツール browser_cookie3 を使う (推奨)
browser_cookie3
は、Pythonで書かれたライブラリで、ChromeだけでなくFirefoxなど多くのブラウザのCookieを簡単に取得できます。Windows, macOS, Linuxに対応しており、コマンドラインツールとしても利用できます。
準備
- Pythonのインストール: もしPCにPythonがインストールされていない場合は、公式サイトからインストールしてください。
- browser_cookie3のインストール: コマンドプロンプトやターミナルで以下のコマンドを実行します。Bash
pip install browser-cookie3
使用方法
基本的なコマンドは browser_cookie3 [ブラウザ名]
です。特定のドメインのCookieを取得したい場合は、--domain
オプションを使います。
使用例:https://www.google.com/url?sa=E&source=gmail&q=google.comのCookieを取得する
Bash
# google.com に関連する全てのCookieをJSON形式で出力
browser_cookie3 chrome --domain .google.com
出力結果の例 (JSON形式):
JSON
[
{
"domain": ".google.com",
"name": "NID",
"value": "511=AbCdEfG... (実際のCookie値)"
...
},
{
"domain": ".google.com",
"name": "1P_JAR",
"value": "2025-09-18-09"
...
}
]
この出力を jq
などのツールと組み合わせることで、特定のCookieの値だけを抜き出すことも可能です。
方法2: SQLiteファイルを直接読み取る (上級者向け)
ChromeのCookieは、プロファイルフォルダ内の Cookies
という名前のSQLiteデータベースファイルに保存されています。これを直接クエリする方法もありますが、いくつかの大きな注意点があります。
- OSによる暗号化: WindowsやmacOSではCookieの値がOSの機能(DPAPIやKeychain)で暗号化されているため、単純にデータベースを読んでも意味のある値は取得できません。復号する処理を自前で実装する必要があります。
- DBのロック: Chromeが起動中はデータベースファイルがロックされており、読み取りに失敗することがあります。
Linux (暗号化されていない場合) でのコマンド例:
Bash
# パスは環境によって異なります
SQLITE_DB_PATH="~/.config/google-chrome/Default/Network/Cookies"
DOMAIN="%.google.com"
# sqlite3コマンドでクエリを実行
sqlite3 "$SQLITE_DB_PATH" "SELECT host_key, name, value FROM cookies WHERE host_key LIKE '$DOMAIN';"
この方法は、ツールの仕組みを理解したい場合や、外部ライブラリをインストールできない特殊な環境で役立ちますが、多くの人にとっては browser_cookie3
を使う方がはるかに簡単で確実です。
まとめ
方法 | メリット | デメリット | おすすめのユーザー |
browser_cookie3 | 簡単、クロスプラットフォーム、暗号化を自動解除 | Pythonのインストールが必要 | ほぼ全ての人 |
SQLite直接読み取り | 外部ライブラリ不要、仕組みがわかる | OSごとの暗号化対応が非常に複雑、DBロックの問題 | 上級者、開発者 |
セキュリティ上の注意 ⚠️
Cookieにはログイン情報などの機密情報が含まれています。取得したCookieの取り扱いには十分注意し、信頼できないツールやスクリプトは安易に実行しないようにしてください。
コメント