С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python: Web
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
1 / 1 / 2
Регистрация: 16.10.2016
Сообщений: 111

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

21.12.2016, 18:38. Показов 2127. Ответов 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('https://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())
Почему-то не работает. Интересна именно авторизация при помощи Граба. Кто подскажет?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.12.2016, 18:38
Ответы с готовыми решениями:

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

Не получается авторизоваться на сайте cURL
Здравствуйте, возникла проблема при авторизации на сайте chaxun.slhappiness.com, имеется функция: function get_web_page( $url ){ ...

Не получается повторно авторизоваться на сайте
Доброго времени суток! Помогите пожалуйста разобраться, почему не получается повторная авторизация? То есть первая пара...

14
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
21.12.2016, 19:11
Лучший ответ Сообщение было отмечено weblord как решение

Решение

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?
1
1 / 1 / 2
Регистрация: 16.10.2016
Сообщений: 111
21.12.2016, 19:43  [ТС]
В грабе все как-то проще, я хочу для начала разобраться во всем. Вы хотите сказать, что requests лучше, чем граб?

Добавлено через 23 минуты
Цитата Сообщение от Garry Galler Посмотреть сообщение
Python
1
2
'securitytoken':'guest', 
 'do': 'login'
Не совсем понятен данный момент, откуда мы все это взяли и зачем? Буду признателен за объяснение)
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
21.12.2016, 19:46
Цитата Сообщение от 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".
Это называется - снифать:-)
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
21.12.2016, 20:07
Вот что отправляет браузер, когда мы логинимся на этом сайте:

И, кстати, параметр 'securitytoken' даже, как выяснилось, необязателен.
1
1 / 1 / 2
Регистрация: 16.10.2016
Сообщений: 111
21.12.2016, 20:25  [ТС]
Цитата Сообщение от Garry Galler Посмотреть сообщение
А это я объяснял в другой теме.
Из "из инструментов разработчика в браузере либо инструментов типа HTTP Analyzer".
Это называется - снифать:-)
Вот я и не понимаю, как найти эти данные в инструментах разработчика?
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
21.12.2016, 21:02
weblord,
Они отличаются в разных браузерах - сам предпочитаю использовать внешние тулзы.
Вот так в opera выглядит сниф параметров (Ctrl-Shift-I):

Но так как дебаггер очень быстро перезагружает консоль редиректом, то чтобы увидеть именно данные post-запроса, а не последующего get (на который сайт редиректит) - пришлось резко останавливать запись кнопкой с "кругом" (она же и включает запись). Неудобно. Поэтому внешние тулзы лучше.
0
1 / 1 / 2
Регистрация: 16.10.2016
Сообщений: 111
21.12.2016, 21:19  [ТС]
Огромное спасибо за помощь, уже скачал и активировал программу!
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
22.12.2016, 02:19
Цитата Сообщение от Garry Galler Посмотреть сообщение
Но так как дебаггер очень быстро перезагружает консоль редиректом, то чтобы увидеть именно данные post-запроса, а не последующего get (на который сайт редиректит) - пришлось резко останавливать запись кнопкой с "кругом" (она же и включает запись). Неудобно. Поэтому внешние тулзы лучше.
в хроме есть кнопка специальная - preserve log, в ff это называется enable persistent log
1
1 / 1 / 2
Регистрация: 16.10.2016
Сообщений: 111
22.12.2016, 11:33  [ТС]
Странно, почему-то перестал нормально работать HTTP Analyzer... Не записывает POST данные вообще, хотя пробовал логиниться на разных форумах через разные браузеры, чистил куки... Можете подсказать, в чем может быть проблема?

Добавлено через 8 минут
Кстати, вообще никаких данных не записывает, как я заметил. Кнопка старта была включена..
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
22.12.2016, 13:50
Jabbson,
Сенкс, забыл про эти настройки для логирования.
-----------------------
weblord,
Перезапустите программу. В фильтре процессов выберите WebBrowsers, в нижней части верхней панели должен появиться выбранный фильтр с отмеченной галочкой - там должны быть перечислены все браузеры.
Стартуйте логирование.
1
1 / 1 / 2
Регистрация: 16.10.2016
Сообщений: 111
22.12.2016, 14:06  [ТС]
У меня нету пункта WebBrowsers, там только '1. Result is not cache', '2. Result is successful' и т. д.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
22.12.2016, 14:22
weblord,
Не там смотрите - выпадающий список Process слева (чуть ниже кнопки Start).
И еще - прога (у меня старая версия 2012 года) бывает подглючивает и требуется (после старта логирования) еще и браузер перезапустить, чтобы она PID процесса\ов правильно определила.
1
1 / 1 / 2
Регистрация: 16.10.2016
Сообщений: 111
22.12.2016, 14:36  [ТС]
Нет, у меня ниже кнопки старта уже отображаются вкладки (Пост запросы и т. д.)
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
22.12.2016, 15:06
weblord,
Значит в новых версиях интерфейс другой - нужно попробовать самому разобраться, help там есть. Попробуйте как я сказал - запустить программу, стартовать лог, перезапустить браузер (изменить порядок действий можно на любой другой). Если вообще не получится - используйте инструменты браузера.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.12.2016, 15:06
Помогаю со студенческими работами здесь

POST запрос: не получается авторизоваться на сайте
Никак не могу авторизоваться на yota.ru HttpWebRequest request =...

Не получается авторизоваться через парсер на своем же сайте
Всем привет. Заинтересовала тема парсинга информации, решил потренироваться на своем же сайте. Итак, я точно знаю какие переменные и...

Не могу авторизоваться на сайте
Всем привет! Есть код, который должен авторизовываться на сайте и парсить строку с именем пользователя import requests from bs4...

Авторизоваться На Сайте И Отправить Get
Всем привет! Разобрался как отправить get запрос, а как авторизоваться не могу понять. Киньте примерчик если не сложно. форма...

Как авторизоваться на сайте
Необходимо написать программу, которая будет логиниться на сайте и после парсить html код с сайта. Для парсинга планировал использовать...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru