1
ここはリモートサイトにログインするために使用する私のコードから切り取ってあります。 私の問題は、認証合格/不合格の結果をどのように処理するのか分かりません。pythonはurllib2とcookielibで認証し、ログインの成功/失敗の結果を取得します
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の値に基づいてログイン結果を取得するにはどうすればよいですか?または別の方法がありますか? authが成功または失敗したとき、私がcjに表示されるのは、認証結果に関する情報を提供しないSESSIDだけです。
ありがとうございます!
成功した認証と失敗した認証でself.resp.headersを表示して、違いを見つけることができるかどうか確認してください。 – TryPyPy
また、authが失敗した場合、認証されたユーザーだけがアクセスしてエラーをキャッチできるリソースを要求することも考えられます。 – TryPyPy
ヘッダーの唯一の違いは、 "キャッシュコントロール:no-store、no-cache、revalidate、post-check = 0、pre-check = 0"と "Cache-Control:private"が失敗した場合です。非常に良い解決策ではないようです:( – Andriy