def _provider_auth(self, url, qs, username, password, html):
url += '?sid=0'
# prepare auth
r = self.session.post(url + '&id=tve&option=credential', proxies=self.proxy, headers={'Accept-Encoding': 'gzip'})
# authenticate
post_data = {
'option': 'credential',
'urlRedirect': url,
'Ecom_User_ID': username,
'Ecom_Password': password,
}
r1 = self.session.post(url, data=post_data, proxies=self.proxy, headers={'Accept-Encoding': 'gzip'})
r2 = self.session.get(url, proxies=self.proxy, headers={'Accept-Encoding': 'gzip'})
try:
html_parser = HTMLParser.HTMLParser()
redirurl = re.findall(r'<form method=\"POST\" enctype=\"application/x-www-form-urlencoded\" action=\"(.*)\">', r2.text)[0]
argsre = dict([(match.group(1), html_parser.unescape(match.group(2))) for match in re.finditer(r'<input type=\"hidden\" name=\"(\w+)\" value=\"([^\"]+)\"/>', r2.text)])
return self.session.post(redirurl, data=argsre, proxies=self.proxy, headers={'Accept-Encoding': 'gzip'})
except:
raise Exception('Invalid user name or password.')
评论列表
文章目录