登陸qq空間首頁(登陸qq空間首頁怎么設(shè)置)
更多Python學(xué)習(xí)資料可通過私信關(guān)鍵詞【資料】獲取。
給QQ空間增加一個模擬登錄的例子吧~,讓我們愉快地開始吧~
請求模塊;
Pycryptodome模塊;
以及Python自帶的一些模塊。
安裝Python并將其添加到環(huán)境變量中,pip可以安裝所需的相關(guān)模塊。
這里簡單介紹一下模擬登錄QQ空間的原理。一般來說,QQ空間可以通過手機(jī)QQ掃碼和賬號密碼登錄。但是,帳戶密碼登錄有時需要驗(yàn)證碼。為了保證登錄的成功率,我們選擇了掃碼登錄的方式。
首先,進(jìn)入登錄界面:
只需抓住包包,您就可以發(fā)現(xiàn)二維碼登錄的界面大概是這樣的(ptqrlogin看起來像二維碼登錄):
更多Python學(xué)習(xí)資料可通過私信關(guān)鍵詞【資料】獲取。
查看請求此鏈接所需的參數(shù):
更多Python學(xué)習(xí)資料可通過私信關(guān)鍵詞【資料】獲取。
測試中,可以發(fā)現(xiàn)大多數(shù)參數(shù)是固定的,即:
所以我們只需要知道以下參數(shù):
顯然,動作應(yīng)該這樣構(gòu)造:
至于login_sig參數(shù),很容易發(fā)現(xiàn)您可以請求以下鏈接:
更多Python學(xué)習(xí)資料可通過私信關(guān)鍵詞【資料】獲取。
然后在返回的cookies中獲取login_sig參數(shù):
更多Python學(xué)習(xí)資料可通過私信關(guān)鍵詞【資料】獲取。
并請求:
要攜帶的參數(shù)有:
更多Python學(xué)習(xí)資料可通過私信關(guān)鍵詞【資料】獲取。
通過測試,我們可以發(fā)現(xiàn)這些參數(shù)是固定的。最后,剩下參數(shù)ptqrtoken。經(jīng)過全局搜索后,您可以發(fā)現(xiàn)該參數(shù)ptqrtoken的計算方法寫在一個js文件中:
更多Python學(xué)習(xí)資料可通過私信關(guān)鍵詞【資料】獲取。
其中,hash33的js代碼為:
轉(zhuǎn)向python代碼是:
那么,現(xiàn)在的問題是如何獲得參數(shù)qrsig?與login_sig參數(shù)類似,很容易找到以下鏈接:
更多Python學(xué)習(xí)資料可通過私信關(guān)鍵詞【資料】獲取。
您可以在返回的cookies中獲取參數(shù)qrsig的值:
更多Python學(xué)習(xí)資料可通過私信關(guān)鍵詞【資料】獲取。
并請求:
下圖顯示了要攜帶的參數(shù):
更多Python學(xué)習(xí)資料可通過私信關(guān)鍵詞【資料】獲取。
除了T之外,其他所有參數(shù)都不變,我感覺T就像一個隨機(jī)數(shù)(因?yàn)榻?jīng)過測試,T一直保持不變也沒關(guān)系)。既然影響不大,我也懶得繼續(xù)分析T是什么了,就當(dāng)它是個隨機(jī)數(shù)吧(反正數(shù)字都是16)。
好了,到目前為止,我們已經(jīng)大概了解了模擬登錄的整個過程,那么讓我們開始在編寫代碼的同時進(jìn)一步闡明該過程吧~首先,我們自然地獲得了login_sig參數(shù):
然后獲取ptqrtoken參數(shù):
同時,在請求上述鏈接的過程中,即:
我們還可以獲取二維碼的圖片(即res.content實(shí)際上是二維碼的圖片數(shù)據(jù))并顯示它:
然后,我們通過不斷請求我們在開始時找到的二維碼來登錄鏈接,即:
要檢測二維碼的當(dāng)前狀態(tài):
如果登錄成功,使用請求返回的鏈接更新會話的cookies,以獲得最終的QQ space登錄會話對象:
結(jié)束
謝謝大家的支持和厚愛。邊肖每天都會分享更多Python學(xué)習(xí)的干貨知識,別忘了關(guān)注邊肖。
更多Python爬蟲、數(shù)據(jù)分析、辦公自動化、全棧式開發(fā)、人工智能學(xué)習(xí)資源@林編程關(guān)鍵詞【資料】獲取。
作者:戴鏈接:
Https://juejin.cn/post/6953443849482010638來源:掘金