Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [Python] авторизация / 3 сообщений из 3, страница 1 из 1
31.05.2013, 11:03
    #38281225
BM13
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Python] авторизация
Добрый день.
Я только вчера начал изучение Python 2.7.5., не пинайте сразу..
Есть файл authorization.py. Необходимо автоматически авторизаваться
Код: 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.
26.
27.
28.
29.
import urllib, urllib2, cookielib 
from BeautifulSoup import BeautifulSoup

def login():
    cj = cookielib.CookieJar()
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
    opener.addheaders = [('User-Agent', 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.11) Gecko/20101012 Firefox/3.6.11'), ]
    urllib2.install_opener(self.opener)

    url = urllib2.urlopen('https://........./')
    doc = BeautifulSoup(url.read())
    csrf_input = doc.find(attrs={'name':'csrfmiddlewaretoken'})
    csrf_token = csrf_input['value']

    params = urllib.urlencode({
        'username': 'мой логин',
        'password': 'мой пароль',
        'csrfmiddlewaretoken': csrf_token,
    })
    req = urllib2.Request('https://.........../', data=params, headers={'Referer': 'https://......../'})
    url = urllib2.urlopen(req)
    print url.read()
 
    doc = BeautifulSoup(url.read(), fromEncoding="utf-8")
    errors = doc.findAll('ul', attrs={'class':"errorlist"})
    if errors:
        raise LoginException('; '.join([error.contents[0].text for error in errors]))

    return urllib2


При запуске ничего не происходит. Как узнать что urllib2 авторизовался? Как я понял print url.read() должен чтото вернуть допустим 200, но ничего в Shell не пишется. Как правильно получить хоть какоето сообщение что авторизация прошла? Или я вообще чтото не так делаю..
...
Рейтинг: 0 / 0
31.05.2013, 16:57
    #38281820
FishHook
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Python] авторизация
Код: python
1.
return urllib2



Этим странным куском кода, ты наверняка хотел сказать что-то выразительное, мощное, но у тебя не получилось.
...
Рейтинг: 0 / 0
31.05.2013, 17:19
    #38281843
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Python] авторизация
BM13, судя по документации read() возвращает тело ответа. Возможно в случае успешной авторизации тебе приходит ответ с кодом 301 и заголовком location. В этом случае тело ответа может быть пустым поэтому read() ничего не выводит. Попробуй распечатать весь ответ с сервера включая заголовки (метод info()) и код ответа сервера (getcode()).
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [Python] авторизация / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]