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

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

21.12.2016, 18:38. Показов 2131. Ответов 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
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru