Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Помогите разобраться с Curl/wget и печеньки.  (Прочитано 1439 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн fill.sa

  • Автор темы
  • Любитель
  • *
  • Сообщений: 94
    • Просмотр профиля
Товарищи гуру нужен совет по curl/wget.
По этого момент пользовался ими на уровне wget -o ~/moifile http://stranica
Теперь понадобилось скачать страницу сайта с аторизацией с дальнейшим ее разобром. Сайт местный, показать не могу.
Нашел у курла команду curl -u USER:PASS http://stranica и у вгета whet --user=USER   --password=PASS   http://stranicaНе помогло, как я понял это работает только для просытх http сайтов, у меня же https и мне требуется работать с печеньками.
Я все верно понял? или есть другие варианты?


Далее немного почитал про печеньки, и теряюсь в информации. Вроде как нужно сперва запросить печеньки, потом их переслать обратно. По ходу дела как-то еще отправить имя/пароль. Или же это можно сделать последовательно? Отправлять имя/пароль как, только через вариант --data/--post-data   или есть другие пути? Для вариант --data/--post-data  я так понимаю нужно предварительно знать как устроен сайт?

Помогите кто чем может.


Оффлайн piyavking

  • Активист
  • *
  • Сообщений: 761
  • никогда так не было, чтобы никак не было
    • Просмотр профиля
    • Пиявкин
Re: Помогите разобраться с Curl/wget и печеньки.
« Ответ #1 : 29 Сентября 2018, 13:16:27 »
эээ.

Может, всё-таки браузером попробовать страницу втащить? хорошо, если всё только от юзера и пассворда зависит, а вдруг она ещё и скриптом каким-нибудь формируется?

Команда типа "браузер_с_уже _сохранёнными_куками_и_следовательно_-_с_автовходом_на_сайт --output file" даст искомый результат без плясок с бубном. Точнее, браузер сам спляшет.
RPI4, awesomeWM, st, librewolf, vim/gvim, mpv/smplayer, jack, guitarix, lmms, ardour, mednafen, rhvoice, dsda-doom

Оффлайн fill.sa

  • Автор темы
  • Любитель
  • *
  • Сообщений: 94
    • Просмотр профиля
Re: Помогите разобраться с Curl/wget и печеньки.
« Ответ #2 : 29 Сентября 2018, 13:28:18 »
Немного в замешательстве, в целом вроде обычный сайт, есть своя учетка на нем и через хромовый обозреватель без проблем захожу. Даже накатил на хром дополнение, чтобы смотреть какие-то передаваемые данные, но в них пока ничего непонимаю, вижу только имя/пароль.
Код сайта в принципе могу открыть и прислать.

курл/вгет по сути нужны для того, чтобы в дальнейшем скриптом вытягивать некоторую инфу со страницы.

Пользователь добавил сообщение 29 Сентября 2018, 13:34:57:
я правильно понял, по сути через --data можно сделать все что угодно? Аля вариант работы с сырыми данным, Только нужно знать что записать? Тогда встает вопрос как лучше идти путем копания данных или все же вариантом аля -u USER:PASS ? И если первым путем то как узнать какие данные передовать нужно?
Я пробовал

curl -c cockes https://stranica &&  curl -b cockes -c cockes --data "username=aaa&password=aa" https://stranica
В ответ страница с ошибкой.
« Последнее редактирование: 29 Сентября 2018, 14:53:13 от fill.sa »

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Помогите разобраться с Curl/wget и печеньки.
« Ответ #3 : 29 Сентября 2018, 14:20:45 »
Это делается в два приема: сначала вызывается страница авторизации, по <F12> разбирается (или какое там у Вас в браузере "посмотреть код страницы"), определяются наименование полей с лог/пас (т.к. каждый сайтописатель называет их по своему) и отправляется POST-запрос где полям присваиваются нужные значения и получают кукис. А потом, уже используя этот кукис работают с самим сайтом.
Пример показан тут
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн fill.sa

  • Автор темы
  • Любитель
  • *
  • Сообщений: 94
    • Просмотр профиля
Re: Помогите разобраться с Curl/wget и печеньки.
« Ответ #4 : 29 Сентября 2018, 14:52:06 »
Как раз эту ссылку и видел. Но все равно чего-то не пойму. Там вроде получают печеньку, затем одновременно отправляют и получают + отправка данных.

Код страницы я смотрел, для примера вот код полей имя/пароль
<input autocomplete="off" id="id_username" maxlength="75" name="username" type="text" class="uniform-input text">

<input autocomplete="off" id="id_password" maxlength="30" name="password" type="password" class="uniform-input password">
т.е. у меня типовые name="usernameи и name="password". Или мне нужно на id="id_username" и id="id_password" смотреть?

Я так понимаю мне нужну за один заход получить печеньку с уже сформированым имя/пароль, т.е. данные имя/пароль я передаю в момент сохранения печеньки в файл, а затем отправлять и получать страницу?
Делаю первый заход так и у же в консоле вижу сформированю страницу с ошибкой.
curl -c coockes --data "username=aaa&password=aaa" https://stranic
« Последнее редактирование: 29 Сентября 2018, 15:13:19 от fill.sa »

Оффлайн fill.sa

  • Автор темы
  • Любитель
  • *
  • Сообщений: 94
    • Просмотр профиля
Re: Помогите разобраться с Curl/wget и печеньки.
« Ответ #5 : 11 Октября 2018, 16:22:35 »
Так ничего у меня и не вышло, делаю так
curl -s -b ~/my.cookies -c ~/my.cookies --data "password=PASSWORD&username=USER&submit=OK" https://site/login/?next=/panel/ -v
получаю от сайта страницу с ошибкой.

(Нажмите, чтобы показать/скрыть)

Что не так, куда дальше идти?

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Помогите разобраться с Curl/wget и печеньки.
« Ответ #6 : 12 Октября 2018, 12:56:22 »
эту ссылку и видел
Как-то мы по разному смотрим. 2 (две!!!) команды должно быть. 1-я сохранение куков, вторая - уже работа непосредственно с сайтом, используя сохраненные куки. Не одна команда как у Вас всё в куче.curl -c ~/my.cookies --data "username=aaa&password=aaa" https://site/login/
curl -s -b ~/my.cookies https://site/что-там-надо-скачать -v
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Pasha-pivo

  • Участник
  • *
  • Сообщений: 213
    • Просмотр профиля
Re: Помогите разобраться с Curl/wget и печеньки.
« Ответ #7 : 12 Октября 2018, 21:18:00 »
а разве нельзя посмотреть куки в браузере и просто подставить их в curl -s -b ~/my.cookies https://site/что-там-надо-скачать -v?

Оффлайн fill.sa

  • Автор темы
  • Любитель
  • *
  • Сообщений: 94
    • Просмотр профиля
Re: Помогите разобраться с Curl/wget и печеньки.
« Ответ #8 : 12 Октября 2018, 21:38:27 »
Azure, я не очень понимаю последовательность. Сперва запрашиваю печеньки и в этой же команде отсылаю данные ИМЯ/пароль ? А уже во второй команде отсылаю печеньки и качаю страницу?
Судя по вашему примеру именно такая схема.

Но проблема что уже на команде
curl -c ~/my.cookies --data "username=aaa&password=aaa" https://site/login/ я уже вижу сформированую страницу с ошибкой. Неправильные данные в "--data" получается?
на curl -s -b ~/my.cookies https://site/что-там-надо-скачать я получаю просто страницу с просьбой ввести имя/пароль.


Pasha-pivo, возможно как вариант. Только как выгрузить из обозревателя их?
Я тут попробовал просмотреть их в хроме и вставить значения в файл руками. Отправляю файл и попрежнему вижу страницу просящую войти.

« Последнее редактирование: 13 Октября 2018, 08:54:08 от fill.sa »

Оффлайн Pasha-pivo

  • Участник
  • *
  • Сообщений: 213
    • Просмотр профиля
Re: Помогите разобраться с Curl/wget и печеньки.
« Ответ #9 : 12 Октября 2018, 22:08:30 »
В файрфоксе не нашел, в хроме (у меня на английском) settings → privacy_and_security → content_settings → cookies → see_all_cookies_and_site_data. Дальше находишь свой сайт и читаешь куки, которые тебе нужны.

В файрфоксе можно вытянуть из базы данных кук ~/.mozilla/firefox/<profile>/cookies.sqlite  командой
$ sqlite3 cookies.sqlite

sqlite> select name, value from moz_cookies where baseDomain is "ubuntu.ru"; -- ubuntu.ru заменить на свой домен

Вот как-то так...

 

Страница сгенерирована за 0.018 секунд. Запросов: 22.