Авторизация на сайтах из bash с помощью curl

Я всегда повторяю и не устану повторять, что компьютеры призваны для того, чтобы упростить нашу жизнь. В основном это происходит за счет автоматизации. Одним из аспектов упрощения является автоматизация сбор информации с различных сайтов. Информация с этих сайтов требуется мне в скриптах. А вот как достать ее, без авторизации на них?

Решение этого вопроса есть. Существует консольная программа curl, которая имеет огромные возможности для работы по протоколу http. Подробно об этом можно прочесть в документации, а сейчас небольшие зарисовочки.

Авторизация основана обычно на работе с cookies. Итак, для того, чтобы нормально авторизоваться, нам надо уметь как принимать, так и отправлять их.

Сохранить cookie  можно вот так:

curl -c /tmp/example.cookies http://example.com

Отправляем вот так:

curl -b /tmp/example.cookies

Отправить данные заполненной формы (предварительно ее надо просмотреть и выделить нужные поля):

curl  —data ‘b_auth[login]=LOGIN&b_auth[password]=PASSWORD&b_auth[submit]=OK’ http://example.com

Все http запросы выполняются последовательно. Полученные ответы можно парсить в наших скриптах, чтобы вытаскивать нужную информацию.

В заключение приведу пример скрипта, получающего баланс на счету пользователя сети JustLan.

curl -c /tmp/onlime.cookies —ssl -k https://stat.svzt.ru/login > /dev/null && curl -s -L -b /tmp/onlime.cookies -c /tmp/onlime.cookies —data ‘b_auth[login]=LOGIN&b_auth[password]=PASSWORD&b_auth[submit]=OK’ —ssl -k https://stat.svzt.ru/login > /dev/null && curl -s -k —silent -N —cookie /tmp/onlime.cookies https://stat.svzt.ru/account/ | grep  big | grep руб | cut -c 27-30 | awk -F \< ‘{print $1}’

Запись опубликована в рубрике Программное обеспечение, Увлечения с метками , , , . Добавьте в закладки постоянную ссылку.

Комментарии запрещены.