2

Python を使用して小さな Web ベースのプロキシを作成しようとしています。通常の Web サイトを取得して表示できますが、facebook/gmail/... login で何かにログインできません。ここで認証の例をいくつか見ました http://docs.python.org/release/2.5.2/lib/urllib2-examples.htmlしかし、ログインを使用してすべてのWebサイトに対して一般的なソリューションを作成する方法がわかりません、 何か案が?

私のコードは:

def showurl():
    url=request.vars.url
    response = urllib2.urlopen(url)
    html = response.read()
    return html
4

2 に答える 2

2

プロキシ サーバーは Cookie を保存する必要があり、stackoverflow で cookielib を検索します。

多くの Web サイトはさまざまな方法でクライアントを認証するため、あなたの仕事はプロキシ サーバーで可能な限りクライアントを偽装することです。一部の Web サイトは、ブラウザーの種類によって認証されます。一部の Web サイトは、Cookie を作成してそこに sessionId を保存することによって認証されます。または、いくつかの認証手順を実行できるようにするその他の JavaScript 隠しコンテンツによって認証されます。私の小さな経験では、重要なものはすべて Cookie で終わります。

これは、cookielib の使用方法の簡単な例です。

import urllib, urllib2, cookielib, getpass

username = ''
button = 'submit'
www_login = 'http://website.com'

cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.addheaders.append(('User-agent', 'Mozilla/4.0'))
opener.addheaders.append( ('Referer', '/dev/null') )

login_data = urllib.urlencode({'username' : username, 'password': getpass.getpass("Password:"), 'login' : button})
resp = opener.open(www_login, login_data)
print resp.read()

EDITED:「基本HTTP認証」とfacebook / gmailによる認証は別のものであるため、誤解しないでください。「基本 HTTP 認証」または「ダイジェスト HTTP 認証」は、ログインする Web サイトではなく、Web サーバーによって行われます。

于 2012-06-03T07:59:04.500 に答える
1

http://www.voidspace.org.uk/python/articles/authentication.shtml#id24

于 2012-06-03T08:43:08.770 に答える