//禁止追蹤
DNT: 1
Connection: keep-alive
//緩存方式
Cache-Control: no-cache
//瀏覽器所但願的語言種類,當服務器可以提供一種以上的語言版本時要用到。
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
//瀏覽器可以進行解碼的數據編碼方式,好比gzip。Servlet可以向支持gzip的瀏覽器返回經gzip編碼的HTML頁面。許多情形下這能夠減小5到10倍的下載時間。
Accept-Encoding: gzip, deflate
//瀏覽器可接受的MIME類型。
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
發送 Cookie
UBI: fi_PncwhpxZ~TaKAZJs2KmY1aj~eJSAy5waoThqofQDTY~GMYKTqMLZwI855qbp5KfkoVWSLWDm426-o6Za
PSTM: 1440874285
HOSUPPORT: 1
H_PS_PSSID: 16716_1435_16710_16975_17012_12867_16937_16800_16935_17003_15310_11732_13932_16969_10634_16866_17051
BIDUPSID: F2D05C9CD65A4B08A3398B45DCCE79FA
BDRCVFR[gltLrB7qNCt]: mk3SLVN4HKm
BAIDUID: F2D05C9CD65A4B08A3398B45DCCE79FA:FG=1
發送表單數據
整合後獲得(屢次抓取後不相同的地方):
發送 Cookie
UBI: fi_PncwhpxZ~TaKAcsgiukurYX~bjBxM2Cm-d6x1bOHomipF~NPSN3xBGhD-fkwY7QKXMdGtbGGEkfH6rvQ
PSTM: 1440874509
H_PS_PSSID: 1425_16997_16975_12657_17012_12867_16800_16934_17004_15773_12342_13932_16969_10632_16866_17050
BIDUPSID: 21447B391F8874869C7BFFD4B51D8474
BAIDUID: 21447B391F8874869C7BFFD4B51D8474:FG=1
發送表單數據
u:
http://zongheng.baidu.com/sendbduss.do?source=0&location=http%3A%2F%2Fwww.zongheng.com%2F&_t=1440874506320
tt: 1440874525779
token: b753754fb9ad1d985154eec7c6015320
rsakey: utuY20mVmofD3tjcZrV1uzvK4lpjPvCU
ppui_logintime: 18414
password: TsBsc8UGkjwxfd3E9BHnQ1pCoik5hfjKbbHYcMWGoocjW1/1l2RqJomIxbwhnbd5r8sWwFhheHpQoU4Ex4a+sOT3REfRV3jnwQoBaMZ2dLzI9NNne/NR1V1gL9Z0Nz3J0a6C9iHglJywzhgTVwTiOshvw3X9/idtTBGlq79Z7Tk=
gid: E42C04A-88D7-427B-AA02-0B4C2AB883F0
callback: parent.bd__pcbs__5qwpki
收到的 Cookie
USERNAMETYPE: 3
UBI: fi_PncwhpxZ~TaL9xQBSBqH-3L1dTsNNQk8R8DWYT5iAPwnL4gPQEcTXh3vugMdjEblVyepe-BoSr33XpvbwLE4zSKmqQANQPWvdqGevAL6QEsMsXhit~afIK3SfiY5zmFqtxJiEPa9yJFyLnmL2d1eXWfq
STOKEN: 2d327b0913875334b2368a899f675fed2688318f8988a44914b0c0af37301fdc
PTOKEN: b9beddf75543aaf10ae721dbe744f038
PASSID: 8rH1Bp
BDUSS: UdmOX54b01FOWV6WWNkRmlWRDBSSklQanJMN3BNbDVZU2x2eGJnZlJERXVqUWxXQUFBQUFBJCQAAAAAAAAAAAEAAABF25csu6jT6s7UzP27qNPqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4A4lUuAOJVZ
登陸邏輯總結(直接訪問登陸頁面):
PSTM: 1440874509
H_PS_PSSID: 1425_16997_16975_12657_17012_12867_16800_16934_17004_15773_12342_13932_16969_10632_16866_17050
BIDUPSID: 21447B391F8874869C7BFFD4B51D8474
BAIDUID: 21447B391F8874869C7BFFD4B51D8474:FG=1
二、利用以上得到的cookie直接訪問頁面
注:tt是一個時間戳,用如下方法生成
/// <summary>
/// 獲取時間戳
/// </summary>
public string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalSeconds).ToString();
}
四、利用rsa加密算法將密碼加密(公鑰:publickey)
var pemToXml = RsaHelper.PemToXml(result_publicKey.Pubkey);
pwd = RsaHelper.RSAEncrypt(pemToXml, pwd);
五、檢驗是否須要驗證碼
百度登陸有一點比較好,就是他生成驗證碼會有一個codetype,並且這個type同一個BAIDUID申請是不變的,服務器會根據這個申請的type提供一個codestring,也就是驗證碼(咱們是看不懂的,這個須要咱們提交給服務器讓它自動解析,就能夠得到驗證碼圖片)
六、提交數據登陸
若是返回的Json數據顯示err_0,即表明成功登錄,257爲驗證碼錯誤,7爲密碼錯誤算法
七、得到百度提供的BDUSS,便可到想去的網站繼續進行下一步分析api
上面寫的是編寫軟件時的大概步驟詳細步驟,具體步驟後面會繼續更新,但願可以幫助到各位有須要的童鞋~歡迎各位評論交流瀏覽器
PS:模擬登陸最重要的步驟是抓包分析,獲取對應的Cookies,若是趕上問題,請先檢查代碼邏輯,看看是否已經得到網站須要提供Cookie(有些不是必要的能夠不傳)緩存