您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關(guān)通過抓包實現(xiàn)Python模擬登陸各網(wǎng)站的原理分析是怎樣的,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
一、教程簡介
1.1 基本介紹(私信小編001 、002 、003 、007任何一個即可獲取Python學習資料)
通過分析登陸流程并使用 Python 實現(xiàn)模擬登陸到一個實驗提供的網(wǎng)站,在實驗過程中將學習并實踐 Python 的網(wǎng)絡(luò)編程,Python 實現(xiàn)模擬登陸的方法,使用 Firefox 抓包分析插件分析網(wǎng)絡(luò)數(shù)據(jù)包等知識。
模擬登錄可以幫助用戶自動化完成很多操作,在不同場合下有不同的用處,無論是自動化一些日常的繁瑣操作還是用于爬蟲都是一項很實用的技能。本課程通過 Firefox 和 Python 來實現(xiàn),環(huán)境要求如下:
Python 庫:urllib, http.cookiejar, Django
Firefox 要求:裝有 live http header插件 (已提供)
1.3 材料
1.4 準備
1) 安裝抓包插件Live Http Headers
2)啟動web應(yīng)用
使用 ps -aux | grep codebox 查詢獲得 codebox 的進程號,然后使用 kill -9 進程號 停止 codebox 進程。執(zhí)行過程見下圖:
首先安裝demo依賴的web框架django,并測試是否安裝成功:
啟動成功后在瀏覽器中輸入 http://localhost:8000/polls 看到登錄頁面表示啟動成功
二、分析登錄過程
要通過編程實現(xiàn)登錄,首先需要理解一般Web應(yīng)用的登陸過程。
2.1 抓取請求
2.2原理分析
為什么是2個請求而不是1個呢?通過分析登錄請求發(fā)現(xiàn),登陸成功之后服務(wù)器發(fā)送了302重定向響應(yīng),服務(wù)器要求瀏覽器重新請求首頁,這就產(chǎn)生了第二個請求。再來分析第二個請求,可以看到它相比登錄請求多了一個請求頭:
整個登錄流程如下圖所示:
服務(wù)器到底是如何區(qū)別不同用戶的session的?為什么登陸成功會后要回寫cookie呢?
2.3小結(jié)
對于服務(wù)器來說,登錄=驗證+寫session。對于瀏覽器來說,登錄=發(fā)送登錄信息+獲取帶sessionid的cookie??梢哉f,只要獲得了sessionid,就算實現(xiàn)了模擬登錄。有了它我們便可以游離于系統(tǒng)之中。
三、使用Python實現(xiàn)登錄(簡單實例)
理解了登錄過程的原理和細節(jié)之后,開始用Python來編寫模擬登陸程序吧。
3.1導入模塊
不要忘記編寫文件頭、導入必要的依賴模塊
3.2構(gòu)造登錄請求
登錄請求的實體部分如下:
全部Python代碼:
附加參數(shù)
防盜鏈
Web 應(yīng)用的資源都是有url的,只要獲得了url就能夠在任何地方引用。聽起來很方便,但這可能會導致你的資源被別人盜用。
3.3發(fā)送請求并保存cookie
Python代碼如下:
如果登陸成功
就可以在指定的文件my_cookies.txt中看到sessionid了。
3.4 使用cookie訪問系統(tǒng)服務(wù)
在我們模擬登錄成功后,就可以直接通過opener打開這個url來使用這項系統(tǒng)服務(wù)。代碼實現(xiàn)如下:
如果有是在另外一個python文件中使用這個cookie的話,再打開url之前需要先載入cookie:
關(guān)于通過抓包實現(xiàn)Python模擬登陸各網(wǎng)站的原理分析是怎樣的就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。