一步一步來做WebQQ機器人-(一)(驗證碼)


Well done! 為了探究webqq的http請求流程和數據交互,我付出了很多心血。

寫下這篇文章!!!這是我逝去的青春

系列寫完之后我會把源碼打包奉上~

------我的征途是星辰大海

 

預計會有這些步驟,當然某些步驟可能會合並:

  • 驗證碼
  • 第一次登陸
  • 第二次登陸
  • 保持在線和接收消息
  • 獲取好友和群列表
  • 發送消息
  • 變成智能的(*゚∀゚*)

 

 

對這個頁面先get一次,保存下cookie

 

 

 

在用戶輸入完QQ號之后,會觸發一個http請求,用來檢測該賬號是否需要驗證碼。

請求地址: "https://ssl.ptlogin2.qq.com/check?uin=" + QQNum + "&appid=501004106&js_ver=10095&js_type=0&login_sig=a9NQ-9*PnzKFxzP7jcE7voRx5Z9x6Khffy44FKhIkaD-n8fShtaK1r1GZRjgsxzA&u1=http%3A%2F%2Fw.qq.com%2Fproxy.html&r=0.6158497643191367";

 

 

分析:

1.這里是使用了jsonp的方式,對QQ號碼的安全性進行了檢測

2.本圖的操作不需要驗證碼校驗

3.方法內前4個參數用得到:

  • 1表示需要驗證碼,0則表示QQ號碼安全
  • 第二個參數表示驗證碼,QQ安全表示你不用自己輸入驗證碼,TX會幫你后台生成驗證碼...
  • QQ號碼16進制
  • verifysession,后文用得到,先保存下來

 

 

 

 

分析:

1.這里是使用了jsonp的方式,對QQ號碼的安全性進行了檢測

2.本圖的操作需要驗證碼校驗(多次反復登陸,IP異常等)

3.這次返回的參數只有第一個用得到,1表示需要驗證碼,0則表示QQ號碼安全

 

上面的QQ號碼16進制的說法存在錯誤(感謝 zero.huang 指正),應該是16進制之后再進行修改,類似 這種:
var num=2835049203;
var num16=num.toString(16);
var result='\\x00\\x00\\x00\\x00';
for(var i=0;i<8;i+=2){
result+='\\x'+num16.substr(i,2);
}
console.log(num16);
console.log(result);

 

1.請求的地址:"https://ssl.captcha.qq.com/getimage?aid=501004106&r=0.8478438374586403&uin=" + QQNum;

2.請求需要帶上referer:"https://ui.ptlogin2.qq.com/cgi-bin/login?daid=164&target=self&style=16&mibao_css=m_webqq&appid=501004106&enable_qlogin=0&no_verifyimg=1&s_url=http%3A%2F%2Fw.qq.com%2Fproxy.html&f_url=loginerroralert&strong_login=1&login_state=10&t=20131024001";

3.獲取圖片后,需要保存該次請求的cookie

4.從cookie中找到"verifysession"的值,保存下來

 

 


 

很好!已經完成了登陸前的准備

使用C#模擬http請求可以參考猛戳這里

博主畢業半年多了,才找到一份工作,做外包每天很累,晚上盡量抽出時間來完善這個系列,請各位多關注~

您有沒有對這篇文章感興趣呢?

 

 


一步一步來做WebQQ機器人-(一)(驗證碼):

本步驟的demo,一步一步來做WebQQ機器人-(一)(驗證碼),更新於2015/1/28

可以到該系列最后一篇文章查看是否可能有最新demo

轉載請保留本頁鏈接:http://www.cnblogs.com/lianmin/p/4231340.html

 

 

 

 

.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM