你的代理服務器需要存儲的cookie,搜索計算器的cookielib。
許多網站以不同的方式對客戶端進行身份驗證,因此您的工作是儘可能使用您的代理服務器僞造客戶端。一些網站通過瀏覽器類型進行身份驗證,一些通過創建cookie並將sessionId存儲在其中,或者其他允許執行一些驗證步驟的JavaScript隱藏內容。根據我的小經驗,所有重要的東西都以餅乾結尾。
這只是平坦的示例如何使用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()
編輯: 不要用「基本HTTP認證」誤導自己,被Facebook/Gmail的身份驗證,因爲它是不同的東西。 「基本HTTP認證」或「文摘HTTP認證」是要登錄Web服務器而不是web站點完成。
有沒有辦法讓它所有的網站?所以我不必輸入用戶名,並通過永遠單一的網站int他的代碼? (我希望用戶能夠登錄任何他們想要的網站,並輸入他們自己的用戶名通行證) –
現在我明白了這個問題......這是可能的,但我不確定是否有一個簡單的方法來做到這一點,一個函數... http://proxies.xhaus.com/python/這是python代理項目的列表http://code.google.com/p/proxpy/ ...谷歌「在python中的web代理」。而且我認爲你的問題現在是https/cookies,如果你已經做了簡單的http代理。希望這可以幫助。 – okobaka
http://docs.python-requests.org/en/latest/index.html它是urllib2的'替代品',讓事情變得更簡單... – okobaka