溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

發(fā)布時間:2021-10-28 16:58:59 來源:億速云 閱讀:333 作者:柒染 欄目:編程語言

今天就跟大家聊聊有關(guān)通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

一、教程

1.1 基本介紹

通過分析登陸流程并使用 Python 實(shí)現(xiàn)模擬登陸到一個實(shí)驗(yàn)提供的網(wǎng)站,在實(shí)驗(yàn)過程中將學(xué)習(xí)并實(shí)踐 Python 的網(wǎng)絡(luò)編程,Python 實(shí)現(xiàn)模擬登陸的方法,使用 Firefox 抓包分析插件分析網(wǎng)絡(luò)數(shù)據(jù)包等知識。

模擬登錄可以幫助用戶自動化完成很多操作,在不同場合下有不同的用處,無論是自動化一些日常的繁瑣操作還是用于爬蟲都是一項(xiàng)很實(shí)用的技能。本課程通過 Firefox 和 Python 來實(shí)現(xiàn),環(huán)境要求如下:

  • Python 庫:urllib, http.cookiejar, Django

  • Firefox 要求:裝有 live http header插件 (已提供)

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

1.3 材料

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

1.4 準(zhǔn)備

1) 安裝抓包插件Live Http Headers

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

2)啟動web應(yīng)用

使用 ps -aux | grep codebox 查詢獲得 codebox 的進(jìn)程號,然后使用 kill -9 進(jìn)程號 停止 codebox 進(jìn)程。執(zhí)行過程見下圖:

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

首先安裝demo依賴的web框架django,并測試是否安裝成功:

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

啟動成功后在瀏覽器中輸入 http://localhost:8000/polls 看到登錄頁面表示啟動成功

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

二、分析登錄過程

要通過編程實(shí)現(xiàn)登錄,首先需要理解一般Web應(yīng)用的登陸過程。

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

2.1 抓取請求

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

2.2原理分析

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

為什么是2個請求而不是1個呢?通過分析登錄請求發(fā)現(xiàn),登陸成功之后服務(wù)器發(fā)送了302重定向響應(yīng),服務(wù)器要求瀏覽器重新請求首頁,這就產(chǎn)生了第二個請求。再來分析第二個請求,可以看到它相比登錄請求多了一個請求頭:

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

整個登錄流程如下圖所示:

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

服務(wù)器到底是如何區(qū)別不同用戶的session的?為什么登陸成功會后要回寫cookie呢?

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

2.3小結(jié)

對于服務(wù)器來說,登錄=驗(yàn)證+寫session。對于瀏覽器來說,登錄=發(fā)送登錄信息+獲取帶sessionid的cookie??梢哉f,只要獲得了sessionid,就算實(shí)現(xiàn)了模擬登錄。有了它我們便可以游離于系統(tǒng)之中。

三、使用Python實(shí)現(xiàn)登錄(簡單實(shí)例)

理解了登錄過程的原理和細(xì)節(jié)之后,開始用Python來編寫模擬登陸程序吧。

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

3.1導(dǎo)入模塊

不要忘記編寫文件頭、導(dǎo)入必要的依賴模塊

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

3.2構(gòu)造登錄請求

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

登錄請求的實(shí)體部分如下:

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

全部Python代碼:

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

附加參數(shù)

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

防盜鏈

Web 應(yīng)用的資源都是有url的,只要獲得了url就能夠在任何地方引用。聽起來很方便,但這可能會導(dǎo)致你的資源被別人盜用。

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

3.3發(fā)送請求并保存cookie

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

Python代碼如下:

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

如果登陸成功

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

就可以在指定的文件my_cookies.txt中看到sessionid了。

3.4 使用cookie訪問系統(tǒng)服務(wù)

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

在我們模擬登錄成功后,就可以直接通過opener打開這個url來使用這項(xiàng)系統(tǒng)服務(wù)。代碼實(shí)現(xiàn)如下:

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

如果有是在另外一個python文件中使用這個cookie的話,再打開url之前需要先載入cookie:

通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析

看完上述內(nèi)容,你們對通過抓包實(shí)現(xiàn)Python模擬登陸各網(wǎng)站的原理分析有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI