Python аутентифицируется с помощью urllib2 и cookielib и получает пройденный / неудачный вход в систему - PullRequest
1 голос
/ 15 января 2011

Здесь вырезано из моего кода, который я использую для входа на удаленный сайт.Моя проблема в том, что я не знаю, как обрабатывать результат проверки / неудачи аутентификации.

def prepareLoginData(self):
    self.post_login_data = urllib.urlencode({
                                                'login': self.user,
                                                'password': self.password,
                                                'Login': 'Login'
                                                })
    return self.post_login_data

def prepareOpener(self):
    cj = cookielib.CookieJar()
    self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
    for header in self.headers:
        self.opener.addheaders.append(header)
    return self.opener

Затем я вхожу, как показано ниже:

self.resp = self.opener.open(self.login_page, self.post_login_data)

и анализирую ответ self.resp.read () чтобы проверить, прошел ли логин с регулярным выражением.Как я могу получить результат входа в систему на основе значения cookie?или может есть другой способ?Когда аутентификация прошла или не прошла, единственное, что я вижу в cj, это SESSID, который не дает информацию о результате аутентификации.

Заранее спасибо!

1 Ответ

0 голосов
/ 17 января 2011

Может быть, вы можете посмотреть исходный код возвращаемой страницы: На многих современных веб-сайтах каждый элемент xhtml страницы имеет идентификатор или класс или является дочерним по отношению к элементу с идентификатором или классом, поэтому я думаю, что вы можете использовать синтаксический анализатор xhtml, например BeautifulSoup, для извлечения сообщений об ошибках с веб-сайта. .

BeautifulSoup очень прост в освоении и использовании, так что вы, вероятно, найдете решение, но если нет, дайте мне URL сайта, и я постараюсь написать рабочий код ...

...