История изменений
Исправление swarnk, (текущая версия) :
Я делал пару дней назад вход в личный кабинет. Не мегафон правда, да и вообще не мобильный оператор.
curl -s https://somesite.com/login -c mycookies > /dev/null
У меня CSRF токен был доступен в файле с сохраненными куками, если это не так, как уже говорили выше грепайте вывод curl, а не перенаправляйте в /dev/null
TOKEN=$(cat mycookies | grep token | awk {'print $7'})
DATA="csrfmiddlewaretoken=$TOKEN&username=XXX&password=XXX"
echo $DATA > datafile
собственно POST запрос
curl 'https://somesite.com/login' -c mycookies -b mycookies -H 'Referer: https://somesite.com/login' --data @datafile > /dev/null
Теперь если сервер ответил к примеру 302 загружаем страницы дальше...
curl "https://somesite.com/someurl" -c mycookies -b mycookies -H 'Referer: https://somesite.com/login' --output page_for_grep.html
Больше ничего хитрого кроме referer на стороне сервера не проверялось (без referer нихера не работало кстати). Ну и наверное стоит поменять в curl User-Agent )
UPD. И да, внимательно смотрите в консоль браузера при POST запросе. В моем случае на вкладке Params как раз было видно какие данные (form data) отдает браузер: csrmiddlewaretoken, username и password
Исходная версия swarnk, :
Я делал пару дней назад вход в личный кабинет. Не мегафон правда, да и вообще не мобильный оператор.
curl -s https://somesite.com/login -c mycookies > /dev/null
У меня CSRF токен был доступен в файле с сохраненными куками, если это не так, как уже говорили выше грепайте вывод curl, а не перенаправляйте в /dev/null
TOKEN=$(cat mycookies | grep token | awk {'print $7'})
DATA="csrfmiddlewaretoken=$TOKEN&username=XXX&password=XXX"
echo $DATA > datafile
собственно POST запрос
curl 'https://somesite.com/login' -c mycookies -b mycookies -H 'Referer: https://somesite.com/login' --data @datafile > /dev/null
Теперь если сервер ответил к примеру 302 загружаем страницы дальше...
curl "https://somesite.com/someurl" -c mycookies -b mycookies -H 'Referer: https://somesite.com/login' --output page_for_grep.html
Больше ничего хитрого кроме referer на стороне сервера не проверялось (без referer нихера не работало кстати). Ну и наверное стоит поменять в curl User-Agent )