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