中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

Python模擬登錄的幾種方法

發布時間:2020-07-16 02:46:54 來源:網絡 閱讀:681 作者:Python熱愛者 欄目:編程語言

方法一:直接使用已知的cookie訪問

特點:

  簡單,但需要先在瀏覽器登錄

原理:

  簡單地說,cookie保存在發起請求的客戶端中,服務器利用cookie來區分不同的客戶端。因為http是一種無狀態的連接,當服務器一下子收到好幾個請求時,是無法判斷出哪些請求是同一個客戶端發起的。而“訪問登錄后才能看到的頁面”這一行為,恰恰需要客戶端向服務器證明:“我是剛才登錄過的那個客戶端”。于是就需要cookie來標識客戶端的身份,以存儲它的信息(如登錄狀態)。

  當然,這也意味著,只要得到了別的客戶端的cookie,我們就可以假冒成它來和服務器對話。這給我們的程序帶來了可乘之機。

  我們先用瀏覽器登錄,然后使用開發者工具查看cookie。接著在程序中攜帶該cookie向網站發送請求,就能讓你的程序假扮成剛才登錄的那個瀏覽器,得到只有登錄后才能看到的頁面。

具體步驟:

1.用瀏覽器登錄,獲取瀏覽器里的cookie字符串

  先使用瀏覽器登錄。再打開開發者工具,轉到network選項卡。在左邊的Name一欄找到當前的網址,選擇右邊的Headers選項卡,查看Request Headers,這里包含了該網站頒發給瀏覽器的cookie。對,就是后面的字符串。把它復制下來,一會兒代碼里要用到。

  注意,最好是在運行你的程序前再登錄。如果太早登錄,或是把瀏覽器關了,很可能復制的那個cookie就過期無效了。

Python模擬登錄的幾種方法

2.寫代碼

  urllib庫的版本:


Python模擬登錄的幾種方法

requests庫的版本:


Python模擬登錄的幾種方法

方法二:模擬登錄后再攜帶得到的cookie訪問

原理:

  我們先在程序中向網站發出登錄請求,也就是提交包含登錄信息的表單(用戶名、密碼等)。從響應中得到cookie,今后在訪問其他頁面時也帶上這個cookie,就能得到只有登錄后才能看到的頁面。

具體步驟:

1.找出表單提交到的頁面

  還是要利用瀏覽器的開發者工具。轉到network選項卡,并勾選Preserve Log(重要!)。在瀏覽器里登錄網站。然后在左邊的Name一欄找到表單提交到的頁面。怎么找呢?看看右側,轉到Headers選項卡。首先,在General那段,Request Method應當是POST。其次最下方應該要有一段叫做Form Data的,里面可以看到你剛才輸入的用戶名和密碼等。也可以看看左邊的Name,如果含有login這個詞,有可能就是提交表單的頁面(不一定!)。

Python模擬登錄的幾種方法

  這里要強調一點,“表單提交到的頁面”通常并不是你填寫用戶名和密碼的頁面!所以要利用工具來找到它。

2.找出要提交的數據

  雖然你在瀏覽器里登陸時只填了用戶名和密碼,但表單里包含的數據可不只這些。從Form Data里就可以看到需要提交的所有數據。

Python模擬登錄的幾種方法

3.寫代碼

?  urllib庫的版本:


Python模擬登錄的幾種方法

requests庫的版本:


Python模擬登錄的幾種方法

 明顯感覺requests庫用著更方便啊~~~


方法三:模擬登錄后用session保持登錄狀態

原理:

  session是會話的意思。和cookie的相似之處在于,它也可以讓服務器“認得”客戶端。簡單理解就是,把每一個客戶端和服務器的互動當作一個“會話”。既然在同一個“會話”里,服務器自然就能知道這個客戶端是否登錄過。

具體步驟:

1.找出表單提交到的頁面

2.找出要提交的數據

  這兩步和方法二的前兩步是一樣的

3.寫代碼

  requests庫的版本


Python模擬登錄的幾種方法

方法四:使用無頭瀏覽器訪問

特點:

  功能強大,幾乎可以對付任何網頁,但會導致代碼效率低

原理:

  如果能在程序里調用一個瀏覽器來訪問網站,那么像登錄這樣的操作就輕而易舉了。在Python中可以使用Selenium庫來調用瀏覽器,寫在代碼里的操作(打開網頁、點擊……)會變成瀏覽器忠實地執行。這個被控制的瀏覽器可以是Firefox,Chrome等,但最常用的還是PhantomJS這個無頭(沒有界面)瀏覽器。也就是說,只要把填寫用戶名密碼、點擊“登錄”按鈕、打開另一個網頁等操作寫到程序中,PhamtomJS就能確確實實地讓你登錄上去,并把響應返回給你。

具體步驟:

1.安裝selenium庫、PhantomJS瀏覽器

2.在源代碼中找到登錄時的輸入文本框、按鈕這些元素

  因為要在無頭瀏覽器中進行操作,所以就要先找到輸入框,才能輸入信息。找到登錄按鈕,才能點擊它。

  在瀏覽器中打開填寫用戶名密碼的頁面,將光標移動到輸入用戶名的文本框,右鍵,選擇“審查元素”,就可以在右邊的網頁源代碼中看到文本框是哪個元素。同理,可以在源代碼中找到輸入密碼的文本框、登錄按鈕。

Python模擬登錄的幾種方法

3.考慮如何在程序中找到上述元素

  Selenium庫提供了find_element(s)_by_xxx的方法來找到網頁中的輸入框、按鈕等元素。其中xxx可以是id、name、tag_name(標簽名)、class_name(class),也可以是xpath(xpath表達式)等等。當然還是要具體分析網頁源代碼。

4.寫代碼


Python模擬登錄的幾種方法


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鸡西市| 荔浦县| 青田县| 新竹县| 景谷| 东城区| 集贤县| 宽城| 邵阳市| 当涂县| 库车县| 钦州市| 高陵县| 太湖县| 云龙县| 开鲁县| 陆河县| 永善县| 泽州县| 崇州市| 开阳县| 台中县| 林西县| 太仓市| 鄱阳县| 鹿邑县| 内黄县| 山东省| 高淳县| 抚州市| 阜城县| 西和县| 连州市| 定兴县| 通道| 长沙市| 孙吴县| 泾源县| 新乡县| 额敏县| 砀山县|