通過抓包實現Python模擬登陸各網站原理分析

陶然陶然發表於2018-07-17

   一、教程簡介

  1.1 基本介紹(私信小編001 、002 、003 、007任何一個即可獲取Python學習資料)

  通過分析登陸流程並使用 Python 實現模擬登陸到一個實驗提供的網站,在實驗過程中將學習並實踐 Python 的網路程式設計,Python 實現模擬登陸的方法,使用 Firefox 抓包分析外掛分析網路資料包等知識。

  模擬登入可以幫助使用者自動化完成很多操作,在不同場合下有不同的用處,無論是自動化一些日常的繁瑣操作還是用於爬蟲都是一項很實用的技能。本課程通過 Firefox 和 Python 來實現,環境要求如下:

  Python 庫:urllib, http.cookiejar, Django

  Firefox 要求:裝有 live http header外掛 (已提供)

   通過抓包,實現Python模擬登陸各網站,原理分析!

  1.3 材料

   通過抓包,實現Python模擬登陸各網站,原理分析!

  1.4 準備

  1) 安裝抓包外掛Live Http Headers

   通過抓包,實現Python模擬登陸各網站,原理分析!

   通過抓包,實現Python模擬登陸各網站,原理分析!

   通過抓包,實現Python模擬登陸各網站,原理分析!

   通過抓包,實現Python模擬登陸各網站,原理分析!

   通過抓包,實現Python模擬登陸各網站,原理分析!

  2)啟動web應用

  使用 ps -aux | grep codebox 查詢獲得 codebox 的程式號,然後使用 kill -9 程式號 停止 codebox 程式。執行過程見下圖:

   通過抓包,實現Python模擬登陸各網站,原理分析!

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

   通過抓包,實現Python模擬登陸各網站,原理分析!

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

   通過抓包,實現Python模擬登陸各網站,原理分析!

  二、分析登入過程

  要通過程式設計實現登入,首先需要理解一般Web應用的登陸過程。

   通過抓包,實現Python模擬登陸各網站,原理分析!

  2.1 抓取請求

   通過抓包,實現Python模擬登陸各網站,原理分析!

  2.2原理分析

   通過抓包,實現Python模擬登陸各網站,原理分析!

   通過抓包,實現Python模擬登陸各網站,原理分析!

  為什麼是2個請求而不是1個呢?通過分析登入請求發現,登陸成功之後伺服器傳送了302重定向響應,伺服器要求瀏覽器重新請求首頁,這就產生了第二個請求。再來分析第二個請求,可以看到它相比登入請求多了一個請求頭:

   通過抓包,實現Python模擬登陸各網站,原理分析!

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

   通過抓包,實現Python模擬登陸各網站,原理分析!

  伺服器到底是如何區別不同使用者的session的?為什麼登陸成功會後要回寫cookie呢?

   通過抓包,實現Python模擬登陸各網站,原理分析!

  2.3小結

  對於伺服器來說,登入=驗證+寫session。對於瀏覽器來說,登入=傳送登入資訊+獲取帶sessionid的cookie。可以說,只要獲得了sessionid,就算實現了模擬登入。有了它我們便可以遊離於系統之中。

  三、使用Python實現登入(簡單例項)

  理解了登入過程的原理和細節之後,開始用Python來編寫模擬登陸程式吧。

   通過抓包,實現Python模擬登陸各網站,原理分析!

  3.1匯入模組

  不要忘記編寫檔案頭、匯入必要的依賴模組

   通過抓包,實現Python模擬登陸各網站,原理分析!

  3.2構造登入請求

   通過抓包,實現Python模擬登陸各網站,原理分析!

  登入請求的實體部分如下:

   通過抓包,實現Python模擬登陸各網站,原理分析!

   通過抓包,實現Python模擬登陸各網站,原理分析!

  全部Python程式碼:

   通過抓包,實現Python模擬登陸各網站,原理分析!

  附加引數

   通過抓包,實現Python模擬登陸各網站,原理分析!

  防盜鏈

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

   通過抓包,實現Python模擬登陸各網站,原理分析!

  3.3傳送請求並儲存cookie

   通過抓包,實現Python模擬登陸各網站,原理分析!

  Python程式碼如下:

   通過抓包,實現Python模擬登陸各網站,原理分析!

  如果登陸成功

   通過抓包,實現Python模擬登陸各網站,原理分析!

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

  3.4 使用cookie訪問系統服務

   通過抓包,實現Python模擬登陸各網站,原理分析!

   通過抓包,實現Python模擬登陸各網站,原理分析!

   通過抓包,實現Python模擬登陸各網站,原理分析!

  在我們模擬登入成功後,就可以直接通過opener開啟這個url來使用這項系統服務。程式碼實現如下:

   通過抓包,實現Python模擬登陸各網站,原理分析!

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

  教程取自實驗樓。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28285180/viewspace-2157951/,如需轉載,請註明出處,否則將追究法律責任。

相關文章