Python爬蟲、資料分析、網站開發等案例教程視頻免費在線觀看
https://space.bilibili.com/523606542
Python學習交流群:1039649593
驗證碼概述
什么是圖片驗證碼?
驗證碼(CAPTCHA)是"Completely Automated Public Turing test to tell Computers andHumans Apart”(全自動區分計算機和人類的圖靈測驗)的縮寫,是一種區分用戶是計算機還是人的公共全自動程式,
驗證碼的作用
防止惡意破解密碼、刷票、論壇灌水、刷頁,有效防止某個黑客對某一個特定注冊用戶用特定程式暴力破解方式進行不斷的登錄嘗試,實際上使用驗證碼是現在很多網站通行的方式(比如招商銀行的網上個人銀行,百度社區),我們利用比較簡易的方式實作了這個功能,雖然登錄麻煩一點,但是對網友的密碼安全來說這個功能還是很有必要,也很重要,
圖片驗證碼使用場景
- 注冊
- 登錄
- 頻繁發送請求時,服務器彈出驗證碼進行驗證
圖片驗證碼的處理方案
- 手動輸入(input)這種方法僅限于登錄一次就可持續使用的情況
- 影像識別引擎決議使用光學識別引擎處理圖片中的資料,目前常用于圖片資料提取,較少用于驗證碼處理
- 打碼平臺爬蟲常用的驗證碼解決方案
對于驗證碼的處理,我們今天主要學習通過打碼平臺去處理驗證碼
圖片在網頁頁面中的形式
圖片在網頁頁面中的形式一般就兩種:一種是以一個連接形式存在html中,另外一種是以字串的形式存在于html中,
以鏈接形式存在于html中的圖片,意味著每次瀏覽器執行渲染的時候會發送圖片鏈接地址請求,請求到了之后再渲染到頁面,目前大部分網站都是以這種形式去加載圖片的,之前我們也學習過通過獲取圖片的鏈接地址就可以請求圖片資料,
這樣的形式存在于頁面當中的圖片,如果一旦頁面圖片很多的話,就意味著需要發送很多次網路請求,去請求圖片資料,
以字串形式存在于html中的圖片,和上述形式有明顯的區別,這樣形式的圖片在html頁面中是以字串的形式去展示圖片,而不是一個鏈接,
這樣的好處是加載頁面的時候,不用發送網路請求去請求圖片資料,因為我們在請求html頁面的時候就已經拿到圖片的字串資料,瀏覽器只需要轉換圖片為二進制形式展示就可以了,
有利也有弊,這樣做雖然網路請求的次數少了,但是我們需要把圖片轉換成字串形式才可以放到標簽里面,如果圖片資料過大,那么轉換之后的字符長度就會很長,所以一般網頁中字串形式的圖片都是資料量比較小的圖片,比如驗證碼,
如何進行圖片形式的轉化
前面我們講了圖片有兩種形式,鏈接形式的圖片我們通過requests發送請求就可以拿到圖片的二進制資料,保存下來就可以用看圖軟體查看,這種形式的圖片處理就不做贅述了,
那么字串的形式的圖片我們應該如何處理呢?
字串形式的圖片我們可以借助base64模塊進行處理,
-
base64.b64decode()
把字串形式的圖片轉化為二進制的資料,傳入圖片的字串資料 -
base64.b64encode()
把二進制形式的圖片轉化為字串資料,傳入圖片的二進制資料
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/285596.html
標籤:Python
