最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python通過pillow識別動態(tài)驗證碼的示例代碼

 更新時間:2021年11月23日 15:40:08   作者:香博士  
在上網時,經常會遇到驗證碼,本次試驗將帶領大家認識驗證碼的一些特性,并利用 Python 中的 pillow 庫完成對驗證碼的破解。感興趣的可以了解一下

生活中,我們在登錄微博,郵箱的時候,常常會碰到驗證碼。在工作時,如果想要爬取一些數據,也會碰到驗證碼的阻礙。本次試驗將帶領大家認識驗證碼的一些特性,并利用 Python 中的 pillow 庫完成對驗證碼的破解。

環(huán)境配置

  • Python 2.7
  • Pillow 模塊

有個問題就是python2.7目前只能讓使用到2020年,現在再利用2.7下載好多東西都會報錯,也該是時候更新到python3.7了,本文還是依賴于2.7的環(huán)境。

在這里插入圖片描述

識別驗證碼的代碼下載地址:python_captcha_jb51.rar

?安裝 pillow(PIL)庫

sudo apt-get update
sudo apt-get install python-dev libtiff5-dev libjpeg8-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python-tk
sudo pip2 install pillow

識別過程

將驗證碼文件python_captcha下載到運行目錄下,解壓后,在 python_captcha 目錄新建 crack.py 文件,進行編輯。

#-*- coding:utf8 -*-
from PIL import Image

im = Image.open("captcha.gif")
#(將圖片轉換為8位像素模式)
im.convert("P")

# 打印顏色直方圖
print im.histogram()

輸出:

在這里插入圖片描述

顏色直方圖的每一位數字都代表了在圖片中含有對應位的顏色的像素的數量。

每個像素點可表現 256 種顏色,你會發(fā)現白點是最多(白色序號 255 的位置,也就是最后一位,可以看到,有 625 個白色像素)。紅像素在序號 200 左右,我們可以通過排序,得到有用的顏色。

his = im.histogram()
values = {}

for i in range(256):
    values[i] = his[i]

for j,k in sorted(values.items(),key=lambda x:x[1],reverse = True)[:10]:
    print j, k

輸出:

在這里插入圖片描述

我們得到了圖片中最多的 10 種顏色,其中 220 與 227 才是我們需要的紅色和灰色,可以通過這一訊息構造一種黑白二值圖片。

#-*- coding:utf8 -*-
from PIL import Image

im = Image.open("captcha.gif")
im.convert("P")
im2 = Image.new("P",im.size,255)


for x in range(im.size[1]):
    for y in range(im.size[0]):
        pix = im.getpixel((y,x))
        if pix == 220 or pix == 227: # these are the numbers to get
            im2.putpixel((y,x),0)

im2.show()

輸出:

在這里插入圖片描述

局限及遇到的問題

#-*- coding:utf8 -*-

此行命令流在windows環(huán)境下運行會報錯,具體原因可參考python(2)中文編碼亂碼問題

該命令流有很大的局限性,識別的動態(tài)代買也只有此類:

在這里插入圖片描述

到此這篇關于python通過pillow識別動態(tài)驗證碼的示例代碼的文章就介紹到這了,更多相關python pillow識別動態(tài)驗證碼內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python腳本文件打包成可執(zhí)行文件的方法

    Python腳本文件打包成可執(zhí)行文件的方法

    這篇文章主要介紹了Python腳本文件打包成可執(zhí)行文件的方法,本主要講解了Python2.X版本的打包方法,對Python3.X的打包也有簡單介紹,需要的朋友可以參考下
    2015-06-06
  • Python 高級變量之字典和字符串詳解

    Python 高級變量之字典和字符串詳解

    這篇文章主要為大家介紹了Python 字典和字符串,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • 如何將一個CSV格式的文件分割成兩個CSV文件

    如何將一個CSV格式的文件分割成兩個CSV文件

    這篇文章主要介紹了如何將一個CSV格式的文件分割成兩個CSV文件,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Python字符串格式化輸出方法分析

    Python字符串格式化輸出方法分析

    這篇文章主要介紹了Python字符串格式化輸出方法,結合實例形式分析了Python格式化構建字符串的三種常用技巧,需要的朋友可以參考下
    2016-04-04
  • 使用pytorch 篩選出一定范圍的值

    使用pytorch 篩選出一定范圍的值

    這篇文章主要介紹了使用pytorch 篩選出一定范圍的值,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • python中二維陣列的變換實例

    python中二維陣列的變換實例

    這篇文章主要介紹了python中二維陣列的變換實例,通過對比兩種不同的方法分析了二維陣列變換的實現方法,需要的朋友可以參考下
    2014-10-10
  • python中偏函數partial用法實例分析

    python中偏函數partial用法實例分析

    這篇文章主要介紹了python中偏函數partial用法,實例分析了偏函數partial的功能、定義及使用方法,需要的朋友可以參考下
    2015-07-07
  • Python3數據庫操作包pymysql的操作方法

    Python3數據庫操作包pymysql的操作方法

    這篇文章主要介紹了Python3數據庫操作包pymysql的操作方法,文章通過實例代碼相結合給大家介紹的非常詳細,需要的朋友可以參考下
    2018-07-07
  • Tensor和NumPy相互轉換的方法

    Tensor和NumPy相互轉換的方法

    本文主要介紹了Tensor和NumPy相互轉換的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • 在Python中處理字符串之ljust()方法的使用簡介

    在Python中處理字符串之ljust()方法的使用簡介

    這篇文章主要介紹了在Python中處理字符串之ljust()方法的使用,是Python學習中的基礎知識,需要的朋友可以參考下
    2015-05-05

最新評論

大安市| 宁强县| 长顺县| 马边| 乌鲁木齐县| 盐池县| 新建县| 渭南市| 汉川市| 涟水县| 盐池县| 梅河口市| 万宁市| 陕西省| 崇信县| 临江市| 瑞安市| 明溪县| 喀喇沁旗| 成武县| 胶州市| 阆中市| 秦安县| 马龙县| 漾濞| 柳江县| 湟源县| 怀安县| 丹阳市| 榆树市| 白城市| 白朗县| 盘锦市| 江源县| 鲁甸县| 贵定县| 岳西县| 香格里拉县| 信阳市| 察隅县| 科技|