[記錄][續爬蟲]模擬京東登入並且搶購物券
阿新 • • 發佈:2019-01-10
1、登入
2、進去卷中心
3、得到券列表
4、領券【大致路徑:/freeGetCoupon.html?key=xxxx】【許可權原因,這裡就不上模擬了,只提供思路】
1、找到登入js,分析登入請求【在登入頁面<script type="text/javascript" src="/new/misc/js/login2015.js"></script>
裡面】【當然也可以直接分析網路請求,都差不多】
貼一部分js原始碼:
//登陸操作
function loginSubmit(callback) {
var loginUrl = "../uc/loginService";
var uuid = $("#uuid").val();
$.ajax({
url: loginUrl + "?uuid=" + uuid + "&" + location.search.substring(1) + "&r=" + Math.random()+"&version=2015",
type: "POST",
dataType: "text",
contentType: "application/x-www-form-urlencoded; charset=utf-8",
data: $("#formlogin").serialize(),
error: function () {
showMesInfo("網路超時,請稍後再試","error");
},
success: function (result) {...}
}
});
}
登入地址即:https://passport.jd.com/uc/loginService
2、url猜想:
https://passport.jd.com/uc/loginService?uuid=f703e647-9cd3-4ead-9573-0ae929dbf9ef<ype=logout&r=0.6494495067449563&version=2015&loginname=xxx&nloginpwd=xxx&loginpwd=aaaa&eid=5b6ce162e7d840f29a42f19afa88e24d1525869319&fp=a303fef3b9dd71226a6845216d8932bf&_t=_ntcGjXq&XzeobRqeoU=JGNZO&chkRememberMe=on
訪問這個會報一個錯誤:【大致的意思是:請重新整理頁面後重新提交(其實就是驗證失敗)】
({"username":"\u8bf7\u5237\u65b0\u9875\u9762\u540e\u91cd\u65b0\u63d0\u4ea4","_t":"_ntijDOz"})
3、那麼繼續往下找看看是否有其他引數錯誤,最後我才發現原來是_t引數,每次登陸後_t引數會發生改變,ok,改變一下_t的值,bingo!現在已經提示賬號密碼錯誤了。(返回如下)
({"pwd":"\u8d26\u6237\u540d\u4e0e\u5bc6\u7801\u4e0d\u5339\u914d\uff0c\u8bf7\u91cd\u65b0\u8f93\u5165","_t":"_ntwERQb"})【賬戶名與密碼不匹配,請重新輸入】
4、登入成功後的效果:
({"success":"http://www.jd.com"})
【如果刷的太頻繁,請使用代理或者解析驗證碼,引數名稱就是authcode,放在url後面就行了】【自己去解析驗證碼】
2、進去卷中心
3、得到券列表
4、領券【大致路徑:/freeGetCoupon.html?key=xxxx】【許可權原因,這裡就不上模擬了,只提供思路】
1、找到登入js,分析登入請求【在登入頁面<script type="text/javascript" src="/new/misc/js/login2015.js"></script>
裡面】【當然也可以直接分析網路請求,都差不多】
貼一部分js原始碼:
//登陸操作
function loginSubmit(callback) {
var loginUrl = "../uc/loginService";
var uuid = $("#uuid").val();
$.ajax({
url: loginUrl + "?uuid=" + uuid + "&" + location.search.substring(1) + "&r=" + Math.random()+"&version=2015",
type: "POST",
dataType: "text",
contentType: "application/x-www-form-urlencoded; charset=utf-8",
data: $("#formlogin").serialize(),
error: function () {
showMesInfo("網路超時,請稍後再試","error");
},
success: function (result) {...}
}
});
}
登入地址即:https://passport.jd.com/uc/loginService
2、url猜想:
https://passport.jd.com/uc/loginService?uuid=f703e647-9cd3-4ead-9573-0ae929dbf9ef<ype=logout&r=0.6494495067449563&version=2015&loginname=xxx&nloginpwd=xxx&loginpwd=aaaa&eid=5b6ce162e7d840f29a42f19afa88e24d1525869319&fp=a303fef3b9dd71226a6845216d8932bf&_t=_ntcGjXq&XzeobRqeoU=JGNZO&chkRememberMe=on
訪問這個會報一個錯誤:【大致的意思是:請重新整理頁面後重新提交(其實就是驗證失敗)】
({"username":"\u8bf7\u5237\u65b0\u9875\u9762\u540e\u91cd\u65b0\u63d0\u4ea4","_t":"_ntijDOz"})
3、那麼繼續往下找看看是否有其他引數錯誤,最後我才發現原來是_t引數,每次登陸後_t引數會發生改變,ok,改變一下_t的值,bingo!現在已經提示賬號密碼錯誤了。(返回如下)
({"pwd":"\u8d26\u6237\u540d\u4e0e\u5bc6\u7801\u4e0d\u5339\u914d\uff0c\u8bf7\u91cd\u65b0\u8f93\u5165","_t":"_ntwERQb"})【賬戶名與密碼不匹配,請重新輸入】
4、登入成功後的效果:
({"success":"http://www.jd.com"})
【如果刷的太頻繁,請使用代理或者解析驗證碼,引數名稱就是authcode,放在url後面就行了】【自己去解析驗證碼】