我似乎很难登录需要浏览器身份验证的网站。发生的情况是,当您第一次登录时,网站会将您重定向到一个页面,上面写着“我们已向您的电子邮件发送了一封电子邮件,请单击链接以验证此浏览器。”
我正在为 python 使用 mechanize 模块。该页面会登录,但该网站永远不会识别“浏览器”,因此会有很多“请注册此浏览器”电子邮件!我尝试按照其他示例提供自定义标头以及添加 cookie 处理程序......不走运。每次我访问时,该网站都认为该脚本是一个新的(未经授权的)浏览器。
初始化代码如下所示:
self.br = mechanize.Browser( factory=mechanize.RobustFactory() )
self.br.add_handler(PrettifyHandler())
cj = cookielib.LWPCookieJar()
self.br.set_cookiejar(cj)
self.br.addheaders = [('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'),
('User-agent', 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Ubuntu Chromium/24.0.1312.56 Chrome/24.0.1312.56 Safari/537.17'),
('Referer', 'https://www.temp.com/logout'),
('Accept-Encoding', 'gzip,deflate,sdch'),
('Accept-Language', 'en-GB,en-US;q=0.8,en;q=0.6'),
('Accept-Charset', 'ISO-8859-1,utf-8;q=0.7,*;q=0.3'),
]
我的登录代码如下所示。它填写一个简单的 html 表单并提交。
self.br.open('https://www.temp.com/login')
# Select the first (index zero) form
self.br.select_form(nr=0)
# User credentials
self.br.form['username'] = 'temp'
self.br.form['password'] = 'temp'
# Login
self.br.submit()
# Inventory
body = self.br.response().read().split('\n')
然而,每次我收到这封电子邮件:“要激活您的浏览器,请单击以下链接......”即使在我点击链接并激活/验证浏览器之后也是如此。