Python爬蟲之表單和登入視窗採集

2021-08-13 04:42:49 字數 2648 閱讀 9609

python自帶的urllib庫實現了http基本的get功能,當我們想要實現比get更多的事情時,那麼就需要去尋找支援python標準的第三方庫了。

requests庫可以成為你的選擇,它可以處理複雜的http請求,cookie,header等內容,是乙個第三方庫。

可以使用python包管理器,執行命令pip install requests安裝requests庫。

瀏覽器的位址列讓我們可以進行get請求,而網頁上的表單則方便我們進行post請求。

利用python**模擬網頁上表單提交時,我們需要通過form標籤的action獲取到進行post請求的位址,然後找到form表單中有name屬性的輸入域,這些輸入域即是我們進行post請求需要傳遞的資料。下面是乙個提交基本表單的例子。

簡單表單提交

我們看到過網頁上最簡單的表單應該是這樣的

對於這個表單使用python模擬提交的實現**如下:

可以看到對於這樣乙個基本的表單,使用python僅僅需要四行**,非常容易。

提交檔案和影象

網路上上傳檔案是很普遍的功能,但是在資料採集時並不會常用。不過如果想為自己的**檔案上傳功能進行測試,用python寫測試指令碼還是很容易的。

上傳表單源**:

python檔案上傳測試指令碼原始碼:

提交給表單的uploadfile的值不是乙個簡單的字串,而是乙個用open函式開啟的python檔案物件。

cookie處理

**使用者在登入後,在每個頁面之間跳轉之後都是已經登入狀態,像這種回話狀態通常在客戶端用cookie實現,而如果是在後台那麼使用session實現。對於後一種方式我們可以按照正常的表單處理方式進行。大多數新式**都用cookie跟蹤使用者是否已登入的狀態資訊,一旦**驗證了你的登入權證,它就會將他們儲存在你的瀏覽器cookie中,裡面通常包含乙個伺服器生成的令牌、登入有效時限和狀態跟蹤資訊。這樣當你瀏覽其他頁面時,**會給每個頁面提供權證。

request庫提供了跟蹤cookie的功能

print("訪問下乙個頁面")

通過r.cookies可以獲取到cookies,但是這樣每次請求都需要手動獲取未必有點麻煩。requests提供了一種更便利的方式:會話物件

print("訪問下乙個頁面")

http基本接入認證

處理**登入還有一種方法就是http基本接入認證,通常這種方式用在比較早期且安全性較高的**或公司**以及一些api的使用上。

requests庫有專門的auth模組來處理http認證:

如果認證成功,那麼結果就是認證成功之後顯示的頁面,如果失敗,那麼就會拒絕接入。

帶驗證碼的表單

有的登錄檔單會帶有驗證碼,可以使用ocr庫來識別的文字內容。

python爬蟲之模擬登入

pip install requests post cid 137 pip install ddddocr基礎使用方法 print res 官方詳細用法 pip install fake useragent使用方法 from fake useragent import useragent ua us...

python爬蟲爆破web表單

coding utf 8 利用python 寫的多執行緒爆破後台使用者名稱 密碼 自備字典 比較實用,即使是在資訊保安這麼重視的今天,還是有人不加驗證碼或者異常訪問限制之類的登陸驗證方式,這樣就很容易被弱口令爆破工具拿下,本 僅限學習實用,禁止進行web攻擊,不承擔法律責任 referer refe...

python自動化之爬蟲模擬登入

from selenium import webdriver import time driver webdriver.phantomjs executable path r d phantomjs 2.1.1 windows phantomjs 2.1.1 windows bin phantomj...