Суть задачи
Требуется получить куки сформированные (накопленные) в браузере, отфильтровать по конкретному сайту и сохранить в текстовом формате.
Полученный куки (cookie) файл используем для автоматизации IT процессов в скриптах в связке с curl.
Краткий порядок действий:
— берем куки в формате sqlite из кэша браузера
— вытягиваем запросом нужные поля
— фильтруем, корректируем и сохраняем в текстовом файле
Пример действий для получения куки файла
1. Путь к каталогу кэша браузера firefox
В Linux кэш сохряняется обычно в каталоге пользователя $HOME/.mozilla/firefox/КАТАЛОГ, пример: $HOME/.mozilla/firefox/y06kjade.default
Зададим это в нашем скрипте переменной cdir:
cdir=$HOME/.mozilla/firefox/y06kjade.default
2. Нам нужен файл cookies.sqlite
Это по сути база, сформируем строку sql запроса и назначим результат переменной str:
str="select host, case substr(host,1,1)='.' when 0 then 'FALSE' else 'TRUE' end, path, case isSecure when 0 then 'FALSE' else 'TRUE' end, expiry, name, value from moz_cookies where baseDomain like '%mail.ru'"
в запросе мы преобразуем некоторые значения в логический тип, как того требует структура текстового формата кук для curl (см. http://www.cookiecentral.com/faq/), обозначение полей в текстовом файле (слева направо):
domain - The domain that created AND that can read the variable. flag - A TRUE/FALSE value indicating if all machines within a given domain can access the variable. This value is set automatically by the browser, depending on the value you set for domain. path - The path within the domain that the variable is valid for. secure - A TRUE/FALSE value indicating if a secure connection with the domain is needed to access the variable. expiration - The UNIX time that the variable will expire on. UNIX time is defined as the number of seconds since Jan 1, 1970 00:00:00 GMT. name - The name of the variable. value - The value of the variable.
3. Преобразование
Выполним запрос утилитой sqlite3:
sqlite3 -noheader -separator $'\t' $cdir/cookies.sqlite "$str"
полученный результат сохраняем в файл.
Пример скрипта
#!/bin/bash cdir=$HOME/.mozilla/firefox/y06kjade.default str="select host, case substr(host,1,1)='.' when 0 then 'FALSE' else 'TRUE' end, path, case isSecure when 0 then 'FALSE' else 'TRUE' end, expiry, name, value from moz_cookies where baseDomain like '%mail.ru'" sqlite3 -noheader -separator $'\t' $cdir/cookies.sqlite "$str" > $cdir/test-cookies.txt