2026-06-15 13:46:12 +03:00

2.8 KiB
Raw Blame History

Cookie Parser

Утилита parse_netscape_cookies.py разбирает cookies из нескольких популярных форматов и приводит их к удобному JSON или строке Cookie header.

Поддерживаемые входные форматы

Формат cookies.txt, который часто экспортируют браузерные расширения и CLI-инструменты.

.example.com	TRUE	/	TRUE	1789148954	session_id	abc123

JSON-массив cookies

Формат, похожий на экспорт из Chrome extensions API.

[
  {
    "domain": ".example.com",
    "expirationDate": 1789148954.129235,
    "hostOnly": false,
    "httpOnly": false,
    "name": "session_id",
    "path": "/",
    "sameSite": "lax",
    "secure": true,
    "session": false,
    "storeId": "0",
    "value": "abc123"
  }
]

Также поддерживается объект вида:

{
  "cookies": []
}

Обычная строка из HTTP-заголовка Cookie.

session_id=abc123; theme=dark;

У этого формата нет метаданных вроде domain, expires, secure и httpOnly, поэтому скрипт заполняет их пустыми или безопасными значениями по умолчанию.

Использование

Вывести JSON:

python3 parse_netscape_cookies.py cookies.txt

Прочитать из stdin:

cat cookies.txt | python3 parse_netscape_cookies.py

Вывести строку Cookie header:

python3 parse_netscape_cookies.py cookies.json --format header

URL-decode значений:

python3 parse_netscape_cookies.py cookies.txt --decode

Явно указать входной формат:

python3 parse_netscape_cookies.py input.txt --input-format netscape
python3 parse_netscape_cookies.py input.json --input-format json
python3 parse_netscape_cookies.py header.txt --input-format header

По умолчанию используется --input-format auto.

Выходной JSON

Каждая cookie приводится к структуре:

{
  "domain": ".example.com",
  "include_subdomains": true,
  "path": "/",
  "secure": true,
  "expires": 1789148954.129235,
  "name": "session_id",
  "value": "abc123",
  "http_only": false,
  "host_only": false,
  "same_site": "lax",
  "session": false,
  "store_id": "0",
  "expires_iso": "2026-09-11T17:49:14.129235+00:00"
}

Важно

Cookies могут давать доступ к аккаунту пользователя. Не отправляйте их в логи, чаты или сторонние сервисы без явного согласия пользователя.