Created
January 15, 2016 13:33
-
-
Save anonymous/b4531676848cdf750e2c to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding: utf-8 -*- | |
import requests | |
def login(): | |
header1 = { | |
'Accept':'*/*', | |
'Accept-Encoding': 'gzip, deflate', | |
'Accept-Language': 'zh-cn', | |
'User-Agent': 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.3; WOW64; Trident/7.0)', | |
'X-Requested-With': 'XMLHttpRequest', | |
'DNT': '1', | |
'Content-Length': '240', | |
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', | |
'Referer': 'http://www.sd.10086.cn/portal/passiveLogon.do', | |
'Connection': 'Keep-Alive', | |
'Host': 'www.sd.10086.cn' | |
} | |
header2 = { | |
'Accept': 'text/html, application/xhtml+xml, */*', | |
'Accept-Encoding': 'gzip, deflate', | |
'Accept-Language': 'zh-CN', | |
'User-Agent': 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.3; WOW64; Trident/7.0)', | |
'Referer': 'http://www.sd.10086.cn/portal/passiveLogon.do', | |
'DNT': '1', | |
'Connection': 'Keep-Alive', | |
'Host': 'www.sd.10086.cn' | |
} | |
payload1 = { | |
#mobileNum和servicePWD为手机号和密码,均需要经过base64编码 | |
'mobileNum': '11位手机号的base64编码', | |
'servicePWD': '6位密码的base64编码', | |
'randCode': '请点击', | |
'smsRandomCode':'', | |
'submitMode': '2', | |
'logonMode': '1', | |
'FieldID': '1', | |
'ReturnURL': 'www.sd.10086.cn/eMobile/jsp/common/prior.jsp', | |
'ErrorUrl': '../passiveLogon.do', | |
'entrance': 'IndexBrief', | |
'codeFlag': '0', | |
'openFlag': '1' | |
} | |
payload2 = { | |
#servNumber为手机号 | |
'servNumber':'11位手机号原始值' | |
} | |
loginUrl1 = 'http://www.sd.10086.cn/portal/servlet/LoginServlet' | |
loginUrl3 = 'http://www.sd.10086.cn/portal/servlet/CookieServlet?FieldID=2' | |
loginUrl4 = 'http://www.sd.10086.cn/eMobile/loginSSO.action?Attritd=' | |
loginUrl5 = 'http://www.sd.10086.cn/eMobile/ajax_userBalance.action?menuid=index' | |
s = requests.session() | |
#第一次post,提交手机号和密码 | |
r = s.post(loginUrl1, headers = header1, data = payload1) | |
#第二次get,获取token | |
r = s.get(loginUrl3, headers = header2) | |
#处理返回的数据,将token值存到临时变量a中 | |
a = r.text.replace('\n','').replace("var a='","").replace("';onServerResponse(a);","") | |
#第三次get,将token拼接到loginUrl4上再次get,应该是更新cookie(猜测) | |
loginUrl4 = loginUrl4 + a | |
r = s.get(loginUrl4, headers = header2) | |
#第四次post,再次提交手机号,获取当前余额,返回值为json格式 | |
r = s.post(loginUrl5, headers = header2, data = payload2) | |
print r.text | |
if __name__ == '__main__': | |
login() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment