POST模擬百度登陸和自動發帖

這裏用HttpClient發包模擬百度登陸和發帖,驗證碼部分採用機器下載人工識別。java

登錄百度的原理:
1.json

訪問https://passport.baidu.com/v2/api/?getapi&class=login&tpl=mn&tangram=false,生成一個cookie。關鍵值爲BAIDUID
2.api

再次訪問https://passport.baidu.com/v2/api/?getapi&class=login&tpl=mn&tangram=false,獲取Token並保存cookie 關鍵得到tokencookie

3.svn

 

https://passport.baidu.com/v2/api/?logincheck&callback=bdPass.api.login._needCodestringCheckCallback&tpl=mn&charset=utf-8&index=0&username=test@baidu.com&time=1345429566039google

訪問logincheck傳入本身的用戶名,確認是否須要驗證碼,如須要得到codestring.net

4.code

根據codestring 結合blog

https://passport.baidu.com/cgi-bin/genimage?得到驗證碼圖片token

5.

構造Post參數(主要是用戶名、密碼和Token,codestring和verifycode),訪問http://passport.baidu.com/v2/api/?login登陸上百度

 

自動發帖原理:

1.

http://tieba.baidu.com/f/user/json_vcode?lm=1177&rs10=2&rs1=1&t=0.45910384411207794 得到vcodestr

lm爲貼吧編號

2.

http://tieba.baidu.com/cgi-bin/genimg?得到驗證碼圖片

3.

結合驗證碼發送表單到(各個參數在頁面源碼中均可以得到)

http://tieba.baidu.com/f/commit/thread/add

 

支持圖片上傳

參考連接http://code.google.com/p/robotarm/source/browse/trunk/ssl/src/baidu/Baidu.java?spec=svn501&r=501  感謝google!!!!

 

(轉自:http://blog.csdn.net/chengsimin/article/details/9155729)

相關文章
相關標籤/搜索