真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Python模擬登錄的幾種方法

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

創(chuàng)新互聯(lián)主要為客戶提供服務(wù)項(xiàng)目涵蓋了網(wǎng)頁視覺設(shè)計、VI標(biāo)志設(shè)計、營銷網(wǎng)站、網(wǎng)站程序開發(fā)、HTML5響應(yīng)式重慶網(wǎng)站建設(shè)公司成都做手機(jī)網(wǎng)站、微商城、網(wǎng)站托管及網(wǎng)站維護(hù)、WEB系統(tǒng)開發(fā)、域名注冊、國內(nèi)外服務(wù)器租用、視頻、平面設(shè)計、SEO優(yōu)化排名。設(shè)計、前端、后端三個建站步驟的完善服務(wù)體系。一人跟蹤測試的建站服務(wù)標(biāo)準(zhǔn)。已經(jīng)為門簾行業(yè)客戶提供了網(wǎng)站建設(shè)服務(wù)。

特點(diǎn):

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

原理:

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

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

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

具體步驟:

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

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

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

Python模擬登錄的幾種方法

2.寫代碼

urllib庫的版本:

Python模擬登錄的幾種方法

requests庫的版本:

Python模擬登錄的幾種方法

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

原理:

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

具體步驟:

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

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

Python模擬登錄的幾種方法

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

2.找出要提交的數(shù)據(jù)

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

Python模擬登錄的幾種方法

3.寫代碼

?  urllib庫的版本:

Python模擬登錄的幾種方法

requests庫的版本:

Python模擬登錄的幾種方法

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

方法三:模擬登錄后用session保持登錄狀態(tài)

原理:

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

具體步驟:

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

2.找出要提交的數(shù)據(jù)

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

3.寫代碼

requests庫的版本

Python模擬登錄的幾種方法

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

特點(diǎn):

功能強(qiáng)大,幾乎可以對付任何網(wǎng)頁,但會導(dǎo)致代碼效率低

原理:

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

具體步驟:

1.安裝selenium庫、PhantomJS瀏覽器

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

因?yàn)橐跓o頭瀏覽器中進(jìn)行操作,所以就要先找到輸入框,才能輸入信息。找到登錄按鈕,才能點(diǎn)擊它。

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

Python模擬登錄的幾種方法

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

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

4.寫代碼

Python模擬登錄的幾種方法


本文標(biāo)題:Python模擬登錄的幾種方法
當(dāng)前路徑:http://weahome.cn/article/poioch.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部