Форум программистов, компьютерный форум CyberForum.ru

Python: Web

Войти
Регистрация
Восстановить пароль
 
weblord
1 / 1 / 0
Регистрация: 16.10.2016
Сообщений: 111
#1

Не получается авторизоваться на сайте (Grab) - Python

21.12.2016, 18:38. Просмотров 283. Ответов 14
Метки нет (Все метки)

Привет всем, возникла проблема с POST запросом, пытаюсь при помощи POST авторизоваться на форуме (использую Grab):

Python
1
2
3
4
5
6
7
8
from grab import Grab
 
g = Grab()
 
g.setup(post={'vb_login_username': 'емейл', 'vb_login_password': 'пароль'})
resp = g.go('http://www.cyberforum.ru/', connect_timeout=1000, timeout=1000)
#дальше проверяю результат попытки авторизации при помощи парсинга строки "Добро пожаловать, *ник*"
print(g.doc.select('/html/body/div[1]/div[1]/div/div/table[1]/tbody/tr/td[2]/div/strong').text())
Почему-то не работает. Интересна именно авторизация при помощи Граба. Кто подскажет?
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Garry Galler
601 / 481 / 124
Регистрация: 28.10.2013
Сообщений: 1,088
21.12.2016, 19:11     Не получается авторизоваться на сайте (Grab) #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
def auth_3():    
    from grab import Grab
    g = Grab()
    
    data = {
    'vb_login_username':login,
    'vb_login_password':password,
    'securitytoken':'guest',            
    'do': 'login' 
    }
    
    g.setup(post=data)
    r = g.go('{}{}'.format(url,'/login.php?do=login'))
    print(r.code)
    print(r.cookies)
    for k,v in r.cookies.items():
        if k=='vbseo_loggedin' and v=='yes':
            print('Мы вошли')
            break     
    else:
        print('Печалька') 
    
    return r
   
r = auth_3()
Добавлено через 2 минуты
Мне кажется, или Grab все-таки был актуален в эпоху отсутствия requests?
weblord
1 / 1 / 0
Регистрация: 16.10.2016
Сообщений: 111
21.12.2016, 19:43  [ТС]     Не получается авторизоваться на сайте (Grab) #3
В грабе все как-то проще, я хочу для начала разобраться во всем. Вы хотите сказать, что requests лучше, чем граб?

Добавлено через 23 минуты
Цитата Сообщение от Garry Galler Посмотреть сообщение
Python
1
2
'securitytoken':'guest', 
 'do': 'login'
Не совсем понятен данный момент, откуда мы все это взяли и зачем? Буду признателен за объяснение)
Garry Galler
601 / 481 / 124
Регистрация: 28.10.2013
Сообщений: 1,088
21.12.2016, 19:46     Не получается авторизоваться на сайте (Grab) #4
Цитата Сообщение от weblord Посмотреть сообщение
Вы хотите сказать, что requests лучше, чем граб
requests+lxml покрывают почти все мои практические задачи граббинга.

...Когда я начал изучать python несколько месяцев назад - и grab и суп (BS)- мне сразу показались некими гостями из прошлого, к тому не соблюдающими python way. И тот и другой модуль - по сути обертки над другими более продвинутыми модулями.
Grab,к примеру, это:
- lxml
- pycurl
- selection
- six
- user-agent
- weblib[/CODE]
Поэтому я решил, что проще будет изучить тот же lxml вдоль и поперек - чем юзать его же из других модулей, не понимая как это все работает на самом деле.
А requests уже давно стала неким эталоном удобства работы с http - не зря ведь ее назвали HTTP for Humans :-)
Но все это - всего лишь мое ИМХО, каждый волен сам выбирать себе нужный инструмент.

Добавлено через 1 минуту
Цитата Сообщение от weblord Посмотреть сообщение
Не совсем понятен данный момент, откуда мы все это взяли и зачем?
А это я объяснял в другой теме.
Из "из инструментов разработчика в браузере либо инструментов типа HTTP Analyzer".
Это называется - снифать:-)
Garry Galler
601 / 481 / 124
Регистрация: 28.10.2013
Сообщений: 1,088
21.12.2016, 20:07     Не получается авторизоваться на сайте (Grab) #5
Вот что отправляет браузер, когда мы логинимся на этом сайте:
Не получается авторизоваться на сайте (Grab)
И, кстати, параметр 'securitytoken' даже, как выяснилось, необязателен.
weblord
1 / 1 / 0
Регистрация: 16.10.2016
Сообщений: 111
21.12.2016, 20:25  [ТС]     Не получается авторизоваться на сайте (Grab) #6
Цитата Сообщение от Garry Galler Посмотреть сообщение
А это я объяснял в другой теме.
Из "из инструментов разработчика в браузере либо инструментов типа HTTP Analyzer".
Это называется - снифать:-)
Вот я и не понимаю, как найти эти данные в инструментах разработчика?
Garry Galler
601 / 481 / 124
Регистрация: 28.10.2013
Сообщений: 1,088
21.12.2016, 21:02     Не получается авторизоваться на сайте (Grab) #7
weblord,
Они отличаются в разных браузерах - сам предпочитаю использовать внешние тулзы.
Вот так в opera выглядит сниф параметров (Ctrl-Shift-I):
Не получается авторизоваться на сайте (Grab)
Но так как дебаггер очень быстро перезагружает консоль редиректом, то чтобы увидеть именно данные post-запроса, а не последующего get (на который сайт редиректит) - пришлось резко останавливать запись кнопкой с "кругом" (она же и включает запись). Неудобно. Поэтому внешние тулзы лучше.
weblord
1 / 1 / 0
Регистрация: 16.10.2016
Сообщений: 111
21.12.2016, 21:19  [ТС]     Не получается авторизоваться на сайте (Grab) #8
Огромное спасибо за помощь, уже скачал и активировал программу!
Jabbson
Модератор
Эксперт по компьютерным сетям
3108 / 2187 / 447
Регистрация: 03.11.2009
Сообщений: 6,924
Записей в блоге: 3
22.12.2016, 02:19     Не получается авторизоваться на сайте (Grab) #9
Цитата Сообщение от Garry Galler Посмотреть сообщение
Но так как дебаггер очень быстро перезагружает консоль редиректом, то чтобы увидеть именно данные post-запроса, а не последующего get (на который сайт редиректит) - пришлось резко останавливать запись кнопкой с "кругом" (она же и включает запись). Неудобно. Поэтому внешние тулзы лучше.
в хроме есть кнопка специальная - preserve log, в ff это называется enable persistent log
weblord
1 / 1 / 0
Регистрация: 16.10.2016
Сообщений: 111
22.12.2016, 11:33  [ТС]     Не получается авторизоваться на сайте (Grab) #10
Странно, почему-то перестал нормально работать HTTP Analyzer... Не записывает POST данные вообще, хотя пробовал логиниться на разных форумах через разные браузеры, чистил куки... Можете подсказать, в чем может быть проблема?

Добавлено через 8 минут
Кстати, вообще никаких данных не записывает, как я заметил. Кнопка старта была включена..
Garry Galler
601 / 481 / 124
Регистрация: 28.10.2013
Сообщений: 1,088
22.12.2016, 13:50     Не получается авторизоваться на сайте (Grab) #11
Jabbson,
Сенкс, забыл про эти настройки для логирования.
-----------------------
weblord,
Перезапустите программу. В фильтре процессов выберите WebBrowsers, в нижней части верхней панели должен появиться выбранный фильтр с отмеченной галочкой - там должны быть перечислены все браузеры.
Стартуйте логирование.
weblord
1 / 1 / 0
Регистрация: 16.10.2016
Сообщений: 111
22.12.2016, 14:06  [ТС]     Не получается авторизоваться на сайте (Grab) #12
У меня нету пункта WebBrowsers, там только '1. Result is not cache', '2. Result is successful' и т. д.
Garry Galler
601 / 481 / 124
Регистрация: 28.10.2013
Сообщений: 1,088
22.12.2016, 14:22     Не получается авторизоваться на сайте (Grab) #13
weblord,
Не там смотрите - выпадающий список Process слева (чуть ниже кнопки Start).
И еще - прога (у меня старая версия 2012 года) бывает подглючивает и требуется (после старта логирования) еще и браузер перезапустить, чтобы она PID процесса\ов правильно определила.
weblord
1 / 1 / 0
Регистрация: 16.10.2016
Сообщений: 111
22.12.2016, 14:36  [ТС]     Не получается авторизоваться на сайте (Grab) #14
Нет, у меня ниже кнопки старта уже отображаются вкладки (Пост запросы и т. д.)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2016, 15:06     Не получается авторизоваться на сайте (Grab)
Еще ссылки по теме:
Авторизоваться на сайте программно C#
C# Программно авторизоваться на сайте
C# Программно авторизоваться на сайте
Программно авторизоваться на сайте C#
Windows 10 Невозможно авторизоваться на сайте

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Garry Galler
601 / 481 / 124
Регистрация: 28.10.2013
Сообщений: 1,088
22.12.2016, 15:06     Не получается авторизоваться на сайте (Grab) #15
weblord,
Значит в новых версиях интерфейс другой - нужно попробовать самому разобраться, help там есть. Попробуйте как я сказал - запустить программу, стартовать лог, перезапустить браузер (изменить порядок действий можно на любой другой). Если вообще не получится - используйте инструменты браузера.
Yandex
Объявления
22.12.2016, 15:06     Не получается авторизоваться на сайте (Grab)
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru