Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 12, 2015 09:19:30

nikitc
Зарегистрирован: 2015-04-12
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация на сайте с помощью Grab

Добрый вечер, пытаюсь авторизоваться на мой круг, через сам moikrug.ru залогиниться не получается поэтому приходиться через pda-passport.yandex.ru/passport?mode=mauth
после этого перехожу на moikrug.ru и запрашиваю содержимое страницы вот что выводит:

window.location.replace(“http\x3A\x2F\x2Fmoikrug\x2Eru\x2F\x3Fncrnd\x3D2221”); Если вы видите эту страницу, это означает что ваш браузер не поддерживает автоматическое перенаправление. Чтобы продолжить, нажмите на эту ссылку.

Кто-нибудь может подсказать как с этим бороться? заранее спасибо, прилагаю код

from grab import Grab
g = Grab(log_file='out.html')
g.go('http://pda-passport.yandex.ru/passport?mode=mauth')
g.set_input("login",  "login")
g.set_input("passwd", "***")
g.submit()
g.go("http://moikrug.ru/")
print (g.xpath_text('//*'))

Офлайн

#2 Апрель 12, 2015 09:32:23

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

Авторизация на сайте с помощью Grab

Вам нужно самостоятельно обработать этот javascript-код, распарсить URL и перейти по нему.

Офлайн

#3 Апрель 12, 2015 09:42:27

nikitc
Зарегистрирован: 2015-04-12
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация на сайте с помощью Grab

lorien
Вам нужно самостоятельно обработать этот javascript-код, распарсить URL и перейти по нему.
Как именно распарсить URL? пытался с помощью encode, но ничего

Офлайн

#4 Апрель 12, 2015 09:43:51

nikitc
Зарегистрирован: 2015-04-12
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация на сайте с помощью Grab

И вообще если честно, я не уверен, что авторизован

Офлайн

#5 Апрель 13, 2015 09:55:44

Galvanize
От:
Зарегистрирован: 2011-01-14
Сообщения: 67
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация на сайте с помощью Grab

Это js-редирект. Как уже сказал lorien, парсишь и переходишь.

import re
url = re.findall('replace\(“(.*?)”', g.response.body)
g.go(url)

питон сам преобразует хекс в нормальный вид.



Отредактировано Galvanize (Апрель 13, 2015 09:56:20)

Офлайн

#6 Апрель 13, 2015 16:31:29

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

Авторизация на сайте с помощью Grab

> Как именно распарсить URL? пытался с помощью encode, но ничего

Прочитать статью https://mathiasbynens.be/notes/javascript-escapes

Офлайн

#7 Апрель 13, 2015 19:42:57

nikitc
Зарегистрирован: 2015-04-12
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация на сайте с помощью Grab

Статья не помогла, о чем конкретно вы хотите сказать?

Офлайн

#8 Апрель 13, 2015 19:54:39

nikitc
Зарегистрирован: 2015-04-12
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация на сайте с помощью Grab

Декодировал эту ссылку онлайн парсингом переходил по ней в программе выводило тоже самое

Офлайн

#9 Апрель 14, 2015 07:55:51

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

Авторизация на сайте с помощью Grab

> window.location.replace(“http\x3A\x2F\x2Fmoikrug\x2Eru\x2F\x3Fncrnd\x3D2221”);
> Статья не помогла, о чем конкретно вы хотите сказать?

Я хочу сказать, что у вас есть HTML, в котором есть URL. И в нём некоторые символы закодированы. Я вам дал ссылку на документ, где рассказывается, каким образом в java script могут кодироваться различные символы. В частности, как понять запись “\x3A”

Офлайн

#10 Апрель 14, 2015 12:24:25

nikitc
Зарегистрирован: 2015-04-12
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация на сайте с помощью Grab

Это понятно, но при переходе через эту ссылку мне выводиться это же сообщение. Есть какие-то еще виды авторизации?

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version