您的代理服务器需要存储 cookie,在 stackoverflow 中搜索 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 服务器完成,而不是您要登录的网站。