網站驗證碼的生成原理、難度控制,及Python實現!

圖片驗證碼已經廣泛的使用在各種反爬蟲的場景中,驗證碼的的生成驗證過程對於開發者來說是零成本的,對於用戶體驗來說可能稍差、但是對於爬蟲來說是致命的和高成本的。

下面將介紹使用python實現網站驗證碼的產生及驗證的全過程,然我們對驗證碼的生成有所理解,同時對於機器識別在驗證碼利於的作用有個認識。

其過程是是用戶請求驗證後,生成驗證碼圖片並後臺session保存驗證的字符串,當用戶提交驗證信息後,取出後臺session中的字符集對比,相同的則驗證通過。

網站驗證碼的生成原理、難度控制,及Python實現!
session["verifycode"] = rand_str是在網站後臺的session中保存正確的驗證值,在post提交登陸後進行對比。

buf = io.BytesIO()、im.save(buf, 'png')是創建bytes類型的內存對象用於保存生成的圖片數據。

self.set_header('Content-type','image/jpg')

self.write(buf.getvalue()),構件response相應對象返回前端。

效果如下:

網站驗證碼的生成原理、難度控制,及Python實現!
網站驗證碼的生成原理、難度控制,及Python實現!
網站驗證碼的生成原理、難度控制,及Python實現!
效果還是不錯,生成驗證碼的複雜度和字符集相關、和字體相關、和噪點相關,也可以生成表達式類型的驗證碼,同時因爲採取隨機生成,幾百萬張圖片中也不會存在相同的圖片,可見驗證碼對於反爬蟲而言任然是最簡單、無成本的反爬蟲措施。

好啦,以上就是本文的分享,如果你跟我一樣都喜歡python,想成爲一名優秀的程序員,也在學習python的道路上奔跑,歡迎你加入python學習羣:839383765 羣內每天都會分享最新業內資料,分享python免費課程,共同交流學習,讓學習變(編)成(程)一種習慣!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章