Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 17, 2015 09:10:43

aiscy
Зарегистрирован: 2015-06-17
Сообщения: 52
Репутация: +  9  -
Профиль   Отправить e-mail  

Вопрос по авторизации через Grab

Здравствуйте!
Пытаюсь авторизироваться на сайте Pixabay с помощью библиотеки Grab

g = Grab()
g.go("https://pixabay.com/en/accounts/login")
g.choose_form(1)
g.set_input('username', LOGIN)
g.set_input('password', PASSWORD)
g.submit()
g.go('https://pixabay.com/en/photos/download/pasta-527286_1280.jpg')
print(g.response.body)
В итоге меня перекидывает на страничку ввода капчи, т.к. я не авторизирован.
Еще пробовал так:
g.choose_form(xpath='//form[@class="right_side pure-form"]')
g.set_input_by_xpath('//input[@id="id_username"]', LOGIN)
g.set_input_by_xpath('//input[@id="id_password"]', PASSWORD)
И так:
g.submit(extra_post={'username': LOGIN, 'password': PASSWORD, 'next': ''})
Результат не меняется.
Пробовал авторизироваться на сайте через браузер с отключенным JavaScript, полет нормальный.

Интереса ради попробовал через Selenium, все получилось, но хотелось бы через Grab.
Пните, пожалуйста, в сторону решения.

Офлайн

#2 Июнь 17, 2015 14:29:50

werter
Зарегистрирован: 2014-09-02
Сообщения: 19
Репутация: +  1  -
Профиль   Отправить e-mail  

Вопрос по авторизации через Grab

Снифайте трафик, когда авторизовуетсь через браузер и сравнивайте с тем, что отправляет ваш скрипт

Офлайн

#3 Июнь 23, 2015 10:57:00

noob_saibot
Зарегистрирован: 2013-09-11
Сообщения: 495
Репутация: +  20  -
Профиль   Отправить e-mail  

Вопрос по авторизации через Grab

from grab import Grab
g = Grab()
g.setup(log_file='C:/Python27/log.jpg')
g.go("https://pixabay.com/ru/accounts/login/?next=/")
g.doc.set_input("username","bla")
g.doc.set_input("password","bla")
g.doc.submit()
g.go("https://pixabay.com/en/photos/download/pasta-527286_1280.jpg")
Проверил, работает. Зачем вы выбираете форму и вводите по имени?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version