Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Perl - авторизация на m. vk .com c LWP застревают редиректы

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

joymix

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уважаемые коллеги, немного запутался. Не могу реализовать авторизацию пользователя на сайте m .vk. com - такое ощущение, что не проходят 302 редиректы или LWP их не обрабатывает, хотя вроде бы разрешено...
Код прилагаю. Алгоритм просто. Первый этап - вход на страницу авторизации, установка предавторизационных кук, получение ссылки на форму для входа. Второй этап - отправка пароля и логина и получение авторизационных кук и далее третий этап надо загружать страницу /feed для получения сообщений из ленты. Состояние кук LWP идее хранит в своей переменной.
Ломаюсь на 2 этапе - отправляю логин-пароль, в ответ получаю совсем не то, что прилетает в браузер.
Может быть я чего-то не замечаю... Буду признателен за совет или подсказку.
 
ошибка была в том, что не передавались второстепенные параметры. LWP тут ни при чем, просто надо было их прописать в headers.
    
exit;

Всего записей: 33 | Зарегистр. 04-03-2003 | Отправлено: 19:38 13-11-2021 | Исправлено: joymix, 12:26 18-11-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
joymix

Цитата:
в ответ получаю совсем не то, что прилетает в браузер

что именно? по логике правильно, но могут теряться детали. например - слишком быстрый ответ после получения страницы. явное поведение бота, а не человека.
или в пароле есть символы требующие преобразования в URL данные.

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 01:41 14-11-2021
joymix

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Прилетает ответ - страница ВК с  повторной формой ввода логина и пароля и сообщением - too many attempts.
Пароль и номер телефона без диких символов. воткнул между запросами sleep 5; но эффекта не дало.
По идее в цикле foreach my $res (@redirects) должны содержаться все редиректы. Но цикл возвращает только 1 ответ от "https://login.vk.com/?act=login...."
В браузер же прилетает от страницы https://login.vk.com/?act=login  302 переход на страницу  
https://m.vk.com/login?role=fast&to=&s=1&__q_hash=...  и далее еще на m.vk.com и m.vk.com/feed
Но последний переход судя по всему через javascript ...
Поэтому предполагаю, что не работает редирект в LWP. но так вроде не бывает  
Что характерно, в принципе скрипт работал год, причем с requests_redirectable => ['GET', 'POST']без HEAD, но 2 недели назад перестал.
Пользователь не в бане, захожу без проблем в браузере, для скрипта пробовал вариант с проксями - эффект не меняется...
В общем - в тупике.

Всего записей: 33 | Зарегистр. 04-03-2003 | Отправлено: 10:14 14-11-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
joymix

Цитата:
/home/xx01/www/cgi-bin/vk/cookXX.txt

права на запись есть?

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 10:32 14-11-2021
joymix

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
да, конечно... скрипт успешно создает файл. и заполняет текстом кук... иначе б вылетел ошибкой perl типа нет доступа...

Всего записей: 33 | Зарегистр. 04-03-2003 | Отправлено: 11:46 14-11-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
joymix
все, что видно, что ответ уже сразу после отправки логина и пароля неправильный.
потому что возвращается такой заголовок, без хэша

Цитата:
Location: https://m.vk.com/login?role=fast&to=&s=0&m=7

значит чего то не хватает в авторизации. возможно js делает какой то доп запрос к серверу, создавая какую то временную метку, нужно детально изучать.

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 08:05 15-11-2021
joymix

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо.
хм, отключил redirects (=0), увидел то, о чем вы говорите.
действительно, ответ приходит неправильный.
Вырубил javascript, разобрал все улетающие запросы, честно говоря, пока увидел только команду nojs c невидимой картинкой, но формирование этого запроса ни на что не повлияло. Будем смотреть пристальнее.
Не может же быть такого, что cookies не отправляются?  

Всего записей: 33 | Зарегистр. 04-03-2003 | Отправлено: 11:00 15-11-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
joymix

Цитата:
Не может же быть такого, что cookies не отправляются?  

отправляются, достаточно посмотреть print $resp->request()->as_string();
заголовки запроса показаны, куки там есть, можно сравнить.
 

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 05:04 16-11-2021
joymix

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да, все вроде отправляется, но вы правы, ответ на посылку логина-пароля приходит без  хэша. Отрубаю js, смотрю обмен в браузере - ерунда какая-то, все данные уходят, а хэш не появляется. прям загадка....

Всего записей: 33 | Зарегистр. 04-03-2003 | Отправлено: 22:00 17-11-2021
joymix

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо за помощь, проблема найдена. в headers требовалось явным образом указать referer и origin. LWP тут ни причем, он отлично работает.
Спасибо за помощь

Всего записей: 33 | Зарегистр. 04-03-2003 | Отправлено: 12:27 18-11-2021
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » Perl - авторизация на m. vk .com c LWP застревают редиректы


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru