日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

抓取qq邮箱联系人

發布時間:2023/12/18 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 抓取qq邮箱联系人 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天是:2010-03-14 ,紀念昨晚熬到3點!

題外話:模擬登陸請求頁面這次我用了httpclient4.0,也順便學習一下,4.0跟以前的版本用法上有很大的不同,具體情況Google一下就知道了,個人覺得知道原理就行了,至于開發包只要能實現目的用那個版本自己決定,這里不多說。

?

言歸正傳:

Step1、抓取登陸頁:http://mail.qq.com/cgi-bin/loginpage?

目的:獲取表單提交的action和用于加密密碼的ts值

注意:這里獲取到得action有兩個用途

???????????1、當然是提交表單

???????????2、抽出domain用于組裝驗證碼請求url,因為驗證碼分布在多臺機器,某臺機器只能驗證這臺機器的驗證碼(所以一些舊的文章關于驗證碼獲取的url不能用了)

補充:主頁還有個rsa的公鑰PublicKey,我直接拷貝出來使用,其他則用正則拿。

Step2、請求驗證碼:"http://"+domain+"/cgi-bin/getverifyimage?aid=23000101&"+Math.random()

注意:返回的驗證碼附上了cookie:authimgs_id和verifyimagesession(以前好像叫verifysession),所以拿驗證碼的時候必須把它們(不要漏了authimgs_id保存下來,因為登陸請求的

?????????? 時候?要用到。

Setp3、填充表單:

sid=0,2,zh_CN (默認值)

firstlogin=false?? (默認值)

starttime= (請求時間:js中: (new Date()).valueOf() ; java中:Long.toString(System.currentTimeMillis()))

redirecturl= (默認為空)

f=html (默認值)

p= (加密后的秘密:如果是jdk6.0可以調用存放rsa加密函數的js文件(好像是這個safeauth9206l.js,我是jdk5.0環境,所以未試過這種方法)來加密)

delegate_url= (默認為空)

s= (默認為空)

ts= (上面抓取首頁的時候已獲取)

from= (默認為空)

ppp = (默認為空)

chg = 1 (不用理,就填1好了)

checkisWebLogin = (當前日期所在一周中的第幾天再乘3,例如:今天是星期日就是0*3=0,昨天是6*3=18)

uin= (qq號)

pp= (將原始密碼的每一個字符替換為0,即密碼長度個0組成的字符串)

verifycode=驗證碼(setp2已拿到)

aliastype=@qq.com?(其他未試過)

表單填好了,就可以進入下一步,在這里推薦一個軟件:charles,用這個東西可以看到頁面http請求的細節,用來分析request and response非常方便

Setp4、登陸

提交表單前記得將setp2拿到的cookie放到請求header里,至于header還需不需要設其他值,個人水平有限,I don't?know ~~!,我的做法反正在charles上看到的都弄上去應該沒錯

提交失敗將返回錯誤頁(errtype=1:密碼錯誤、2:驗證碼錯誤、17:登陸太多次),否則返回一個跳轉頁,將跳轉頁上的urlHeader, sid , r三個 值拿下來重新組裝進入首頁的url

例如:http://m87.mail.qq.com/cgi-bin/frame_html?sid=0tMsQPhQJlbKWUsA&r=0f5b1e1f4898062431d5c1d21cbd244d

記得保存urlHeader (含有主頁用到的域名信息)和 sid 獲取聯系人的時候要用到

Setp5、獲取聯系人

組裝獲取聯系人分組列表頁面的url :urlHeader+"addr_listall?sid="+_sid+"&sorttype=null&category=common"

例如:http://m87.mail.qq.com/cgi-bin/addr_listall?sid=0tMsQPhQJlbKWUsA&sorttype=null&category=common

進入了分組頁,也就得到了進入每一組的url,進去拿就是了!

?

#補充一下個人的一些理解:上面整個過程必須保證始終使用同一個httpclient對象,httpclient隱性地為我們完成了session維持的工作!

(有理解錯的,請大俠們指出以便修正,俺水平低下但好學~~)

#這里不提供源碼,因為qq郵箱稍有改動,程序就可能用不了,關鍵是思路!以不變應萬變~~

參考資料:

http://www.cnblogs.com/huangcheng/archive/2009/09/14/1566198.html

http://blog.csdn.net/gtuu0123/archive/2009/11/14/4809431.aspx

??????????

@QQ郵箱改用https協議了,而且郵箱聯系人那個頁面該版了,不過稍作改動,程序仍然可用 (2010-06-26)

???????????

轉載于:https://www.cnblogs.com/nicholas_f/archive/2010/03/14/1685647.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的抓取qq邮箱联系人的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。