Найти - Пользователи
Полная версия: mechanize.Browser() и Яндекс.Паспорт :(
Начало » Web » mechanize.Browser() и Яндекс.Паспорт :(
1 2 3 4 5
igor.kaist
Так вроде один редирект заметил, сразу после сабмита логина и пароля, на нем таки как раз и спотыкаюсь, не отдает он мне куки. С этими куками то и нужно зайти на определенную страницу, чтоб совершить платеж.
Chrizt
Вроде так я делал

# -*- 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
# получили куку
igor.kaist
Chrizt
Вроде так я делал
1. Передавать нужно методом post а не get.
2. Кука то возвращается, но не та, которая нужна, сделай a.read() в твоем примере, и узнай из контента, что авторизацию таки ты не прошел :) В чем загвоздка, не знаю… Второй день бьюсь.
topazz
А если вот так

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()
Ну и можно всякие человеческими вещи вставить
Chrizt
Механайзом то у меня получалось войти без проблем, но он по редиректам не ходит почему-то. Есть подозрение, что яша в разных местах кучу разных кук принимает и отдает. Кстати, топаз, а в ДОМ есть еще какой-то WebBrowser - это что? Для лини не подойдет?
topazz
Дум это Document Object Model. Это вообще не о скриптах. Это просто логика

А если webbrowser это то что по ссылке http://docs.python.org/library/webbrowser.html, то вообще не вижу смысла его юзать.
Делает опен, из под браузеров установленных у вас в системе. Могу ошибаться, но ничего интересного с первого наскока не нашел.
igor.kaist
topazz
Могу ошибаться, но ничего интересного с первого наскока не нашел.
Да, все верно, он может только открывать урл в браузере.
Эх… Методом научного тыка, двигаемся дальше :)
Chrizt
слух, ну поищи ты, как из питона вызывать другой браузер или поищи другие эмуляторы. я просто по памяти не смогу озвучить, а искать, сорри, но лень )
igor.kaist
Говорю же, через браузер у меня не прокатит. На сервере его просто нет :)
Уже который день голову ломаю, чем же мой запрос отличается от того, что делает браузер.
Chrizt
блин, да модуль на сервер залить можно же.. Хотя, не знаю, как там у вас.
Короче, качни сниффер и посмотри, куда тебя ведет яша после авторизации. Очень полезно будет. А там, как я не продрлжил реализовывать, просто ходи по всем редиректам сам. Вроде там выдаются куки и вот это “nrcd=#####”.

зы. У меня сегодня днюха )
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB