Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 21, 2009 09:38:31

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

mechanize.Browser() и Яндекс.Паспорт :(

Так вроде один редирект заметил, сразу после сабмита логина и пароля, на нем таки как раз и спотыкаюсь, не отдает он мне куки. С этими куками то и нужно зайти на определенную страницу, чтоб совершить платеж.



Офлайн

#2 Авг. 21, 2009 13:12:47

Chrizt
От: Владивосток
Зарегистрирован: 2009-07-18
Сообщения: 88
Репутация: +  0  -
Профиль   Отправить e-mail  

mechanize.Browser() и Яндекс.Паспорт :(

Вроде так я делал

# -*- coding: cp1251 -*-
import urllib, urllib2

# получаем куку (логинимся?)
yalogin = 'https://passport.yandex.ru/passport'
params = urllib.urlencode({'login' : 'логин', 'passwd' : 'пароль', 'twoweeks': 'yes'})
a = urllib.urlopen(yalogin+params)
print "Хедер с кукой:", a.info() # пишет хедер с кукой
cookie = a.info()['Set-Cookie']
print "Кука:", cookie
# получили куку



Офлайн

#3 Авг. 21, 2009 13:50:42

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

mechanize.Browser() и Яндекс.Паспорт :(

Chrizt
Вроде так я делал
1. Передавать нужно методом post а не get.
2. Кука то возвращается, но не та, которая нужна, сделай a.read() в твоем примере, и узнай из контента, что авторизацию таки ты не прошел :) В чем загвоздка, не знаю… Второй день бьюсь.



Офлайн

#4 Авг. 21, 2009 16:58:40

topazz
От:
Зарегистрирован: 2008-09-12
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

mechanize.Browser() и Яндекс.Паспорт :(

А если вот так

import mechanize

br = mechanize.Browser()
br.set_handle_robots(False)
br.addheaders = [('User-agent', 'Opera/8.01 (Windows NT 5.1)')]
cj = mechanize.CookieJar()
br.set_cookiejar(cj)

resporse01 = br.open( то что надо открыть)
#потом заполнить если что надо

br.select_form(nr=0)
br['login'] = login
br['passwd'] = paswordik

# И заслать опять это
resporse02 = br.submit()

print resporse02.read()
Ну и можно всякие человеческими вещи вставить



Отредактировано (Авг. 21, 2009 17:07:39)

Офлайн

#5 Авг. 21, 2009 19:46:29

Chrizt
От: Владивосток
Зарегистрирован: 2009-07-18
Сообщения: 88
Репутация: +  0  -
Профиль   Отправить e-mail  

mechanize.Browser() и Яндекс.Паспорт :(

Механайзом то у меня получалось войти без проблем, но он по редиректам не ходит почему-то. Есть подозрение, что яша в разных местах кучу разных кук принимает и отдает. Кстати, топаз, а в ДОМ есть еще какой-то WebBrowser - это что? Для лини не подойдет?



Офлайн

#6 Авг. 21, 2009 22:18:24

topazz
От:
Зарегистрирован: 2008-09-12
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

mechanize.Browser() и Яндекс.Паспорт :(

Дум это Document Object Model. Это вообще не о скриптах. Это просто логика

А если webbrowser это то что по ссылке http://docs.python.org/library/webbrowser.html, то вообще не вижу смысла его юзать.
Делает опен, из под браузеров установленных у вас в системе. Могу ошибаться, но ничего интересного с первого наскока не нашел.



Офлайн

#7 Авг. 22, 2009 09:18:16

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

mechanize.Browser() и Яндекс.Паспорт :(

topazz
Могу ошибаться, но ничего интересного с первого наскока не нашел.
Да, все верно, он может только открывать урл в браузере.
Эх… Методом научного тыка, двигаемся дальше :)



Офлайн

#8 Авг. 22, 2009 15:02:58

Chrizt
От: Владивосток
Зарегистрирован: 2009-07-18
Сообщения: 88
Репутация: +  0  -
Профиль   Отправить e-mail  

mechanize.Browser() и Яндекс.Паспорт :(

слух, ну поищи ты, как из питона вызывать другой браузер или поищи другие эмуляторы. я просто по памяти не смогу озвучить, а искать, сорри, но лень )



Офлайн

#9 Авг. 23, 2009 11:14:47

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

mechanize.Browser() и Яндекс.Паспорт :(

Говорю же, через браузер у меня не прокатит. На сервере его просто нет :)
Уже который день голову ломаю, чем же мой запрос отличается от того, что делает браузер.



Офлайн

#10 Авг. 23, 2009 11:29:38

Chrizt
От: Владивосток
Зарегистрирован: 2009-07-18
Сообщения: 88
Репутация: +  0  -
Профиль   Отправить e-mail  

mechanize.Browser() и Яндекс.Паспорт :(

блин, да модуль на сервер залить можно же.. Хотя, не знаю, как там у вас.
Короче, качни сниффер и посмотри, куда тебя ведет яша после авторизации. Очень полезно будет. А там, как я не продрлжил реализовывать, просто ходи по всем редиректам сам. Вроде там выдаются куки и вот это “nrcd=#####”.

зы. У меня сегодня днюха )



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version