當前位置:首頁 » 編程語言 » python驗證碼生成

python驗證碼生成

發布時間: 2023-11-24 11:21:09

python開發文字點選驗證碼,有什麼推薦的方法

文字點選驗證碼(Click Captcha)是一種常見的驗證碼形式,納雹通常由若干個字元或單片語成,要求用戶點擊其中指定的字元或單詞,以驗證用戶身份。

在Python開發中實現文字點選驗證碼,一種常用的方法是使用圖像處理庫和機器學習庫,以下是一些常用的庫和方法:

  • PIL庫:Python Imaging Library(PIL)是一個Python圖像處理庫,提供了豐富的圖像處理功能,包括圖像讀寫、縮放、旋轉、裁剪、濾波等。可以使用PIL庫生成包含隨機字元的驗證碼圖片,並將其保存為本地文件。

  • OpenCV庫:OpenCV是一個計算機視覺庫,提供了大量的圖像處理和計算機視覺演算法,包括圖像讀寫、濾波、邊緣檢測、特徵提取等。可以使用OpenCV庫對驗證碼圖片進行預處理,提取出驗證碼中的字元或單詞,以便後續的識別。

  • PyTesseract庫伍和:PyTesseract是一個Python的OCR庫,基於Google的Tesseract-OCR引擎,可以對圖像中的文字進行識別。可以使用PyTesseract庫對驗證碼圖片中的字元或單詞進行識別和分類。

  • KNN演算法:KNN是一種常用的機器學習演算法,可以用於對驗證腔茄盯碼圖片中的字元或單詞進行分類。可以使用KNN演算法對預處理後的驗證碼圖片進行特徵提取和分類,以識別出驗證碼中的正確字元或單詞。

  • 綜合使用以上方法,可以實現一個較為穩定和准確的文字點選驗證碼。具體實現細節需要根據具體情況進行調整和優化。

❷ python如何識別驗證碼

我們首先識別最簡單的一種驗證碼,即圖形驗證碼。這種驗證碼最早出現,現在也很常見,一般由4位字母或者數字組成。例如,中國知網的注冊頁面有類似的驗證碼,頁面如下所示:

表單中最後一項就是圖形驗證碼,我們必須完全正確輸入圖中的字元才可以完成注冊。

更多有關驗證碼的知識,可以參考這些文章:

Python3爬蟲進階:識別圖形驗證碼

Python3爬蟲進階:識別極驗滑動驗證碼

Python3爬蟲進階:識別點觸點選驗證碼

Python3爬蟲進階:識別微博宮格驗證碼

·本節目標以知網的驗證碼為例,講解利用OCR技術識別圖形驗證碼的方法。

·准備工作識別圖形驗證碼需要庫tesserocr,以mac安裝為例:在mac下,我們首先使用Homebrew安裝ImageMagick和tesseract庫: brew install imagemagickbrew install tesseract 接下來再安裝tesserocr即可:pip3 install tesserocr pillow這樣我們就完成了 tesserocr的安裝。

·獲取驗證碼為了便於實驗,我們先將驗證碼的圖片保存到本地。打開開發者工具,找到驗證碼元素。驗證碼元素是一張圖片,它的ser屬 性是CheckCode.aspk。所以我們直接打開如下鏈接就可以看到一個驗證碼,右鍵保存即可,將其命名為code.jpg:

這樣我們就得到一張驗證碼圖片,以供測試識別使用。

相關推薦:《Python教程》

識別測試

接下來新建一個項目,將驗證碼圖片放到項目根目錄下,用tesserocr庫識別該驗證碼,代碼如下所示:

這里我們新建了一個Image對戲那個,調用了tesserocr的image_to_text( )方法。傳入該Image對象即可完成識別,實現過程非常簡單,結果如下:

我們可以看到,識別的結果和實際結果有偏差,這是因為驗證碼內的多餘線條干擾了圖片的識別。

另外,tesserocr還有一個更加簡單的方法,這個方法可以直接將圖片文件轉為字元串,代碼如下:

不過這種方法的識別效果不如上一種的好。

驗證碼處理

對於上面的圖片,我們可以看到其實並沒有完全識別正確,所以我們需要對圖像作進一步的處理,如灰度轉換、二值化等操作。

我們可以利用Image對象的convert( )方法參數傳入L,即可將圖片轉化為灰度圖像,代碼如下:

傳入1即可將圖片進行二值化處理,如下所示:

我們還可以指定二值化的閾值。上面的方法採用的是默認閾值127。不過我們不能直接轉化原圖,要將原圖先轉化為灰度圖像,然後再指定二值化閾值,代碼如下:

在這里,變數threshold代表二值化閾值,閾值設置為160,之後我們來看看我們的結果:

我們可以看到現在的二維碼就比較方便我們進行識別了;那麼對於一些有干擾的圖片,我們做一些灰度和二值化處理,這會提高圖片識別的正確率。

❸ 如何利用Python做簡單的驗證碼識別

1摘要

驗證碼是目前互聯網上非常常見也是非常重要的一個事物,充當著很多系統的防火牆功能,但是隨時OCR技術的發展,驗證碼暴露出來的安全問題也越來越嚴峻。本文介紹了一套字元驗證碼識別的完整流程,對於驗證碼安全和OCR識別技術都有一定的借鑒意義。

然後經過了一年的時間,筆者又研究和get到了一種更強大的基於CNN卷積神經網路的直接端到端的驗證識別技術(文章不是我的,然後我把源碼整理了下,介紹和源碼在這裡面):

基於python語言的tensorflow的『端到端』的字元型驗證碼識別源碼整理(github源碼分享)

2關鍵詞

關鍵詞:安全,字元圖片,驗證碼識別,OCR,Python,SVM,PIL

3免責聲明

本文研究所用素材來自於某舊Web框架的網站完全對外公開的公共圖片資源。

本文只做了該網站對外公開的公共圖片資源進行了爬取,並未越權做任何多餘操作。

本文在書寫相關報告的時候已經隱去漏洞網站的身份信息。

本文作者已經通知網站相關人員此系統漏洞,並積極向新系統轉移。

本報告的主要目的也僅是用於OCR交流學習和引起大家對驗證安全的警覺。

4引言

關於驗證碼的非技術部分的介紹,可以參考以前寫的一篇科普類的文章:

互聯網安全防火牆(1)--網路驗證碼的科普

裡面對驗證碼的種類,使用場景,作用,主要的識別技術等等進行了講解,然而並沒有涉及到任何技術內容。本章內容則作為它的技術補充來給出相應的識別的解決方案,讓讀者對驗證碼的功能及安全性問題有更深刻的認識。

5基本工具

要達到本文的目的,只需要簡單的編程知識即可,因為現在的機器學習領域的蓬勃發展,已經有很多封裝好的開源解決方案來進行機器學習。普通程序員已經不需要了解復雜的數學原理,即可以實現對這些工具的應用了。

主要開發環境:

  • python3.5

  • python SDK版本

  • PIL

  • 圖片處理庫

  • libsvm

  • 開源的svm機器學習庫

  • 關於環境的安裝,不是本文的重點,故略去。

    6基本流程

    一般情況下,對於字元型驗證碼的識別流程如下:

  • 准備原始圖片素材

  • 圖片預處理

  • 圖片字元切割

  • 圖片尺寸歸一化

  • 圖片字元標記

  • 字元圖片特徵提取

  • 生成特徵和標記對應的訓練數據集

  • 訓練特徵標記數據生成識別模型

  • 使用識別模型預測新的未知圖片集

  • 達到根據「圖片」就能返回識別正確的字元集的目標

  • 7素材准備

    7.1素材選擇

    由於本文是以初級的學習研究目的為主,要求「有代表性,但又不會太難」,所以就直接在網上找個比較有代表性的簡單的字元型驗證碼(感覺像在找漏洞一樣)。

    最後在一個比較舊的網站(估計是幾十年前的網站框架)找到了這個驗證碼圖片。

    原始圖:

  • def get_feature(img): """

  • 獲取指定圖片的特徵值,

  • 1. 按照每排的像素點,高度為10,則有10個維度,然後為6列,總共16個維度

  • :param img_path:

  • :return:一個維度為10(高度)的列表 """


  • width, height = img.size


  • pixel_cnt_list = []

  • height = 10 for y in range(height):

  • pix_cnt_x = 0 for x in range(width): if img.getpixel((x, y)) == 0: # 黑色點

  • pix_cnt_x += 1


  • pixel_cnt_list.append(pix_cnt_x) for x in range(width):

  • pix_cnt_y = 0 for y in range(height): if img.getpixel((x, y)) == 0: # 黑色點

  • pix_cnt_y += 1


  • pixel_cnt_list.append(pix_cnt_y) return pixel_cnt_list

  • 然後就將圖片素材特徵化,按照libSVM指定的格式生成一組帶特徵值和標記值的向量文

❹ 【python】爬蟲:簡訊驗證碼的獲取

最近一直在琢磨寫一個有點煩人的小爬蟲,結果琢磨著,就花了一點點時間山敗,寫了這樣一個「不友好」的,被許多人討厭的爬蟲😂:頻繁收取簡訊驗證碼的『壞』程序,姑且稱為是生活中的晌唯改一個"小惡作劇"吧。
對不起啦🙈,對那些老被我獲取驗證碼的網站(🙈並非有意要增加你們維護網站的成本💦)。

【備注】:此小程序僅用做技術探究學習,🚫不可用於宴判侵犯他人利益

【解釋一下】:對驗證碼的獲取,不同的網頁有不同的方式,但總結下來,主要分為以下幾種:

下面以蘇寧易購為例,(界面做的蠻好看的,點個贊)講述一下大致的簡訊獲取的步驟。

【後續 程序如下】:

【結語】:作者僅出於學習爬蟲的初衷,分享本文,如有問題,歡迎留言。

❺ python如何實現條形碼和二維碼製作

python中專門有生成條形碼和二維碼的庫, 這里簡單介紹一下實現過程,代碼量不多,也很好理解,實驗環境win10+python3.6+pycharm5.0,主要內容如下:
製作條形碼
這里有2個庫,分別是pybarcode和pystrich,可以直接根據輸入的數字生成條形碼,下面我簡單介紹一下這2個庫的安裝和使用:

1.安裝pybarcode,這個直接在cmd窗口輸入安裝命令「pip install pybarcode」就行,如下,很快就能安裝成功:

安裝完成後,我們就可以編寫相關代碼來實現製作條形碼了,測試代碼如下,很簡單,這里以生成ean13條形碼為例,程序默認會將條形碼保存為png格式:

生成的條形碼如下:

2.安裝pystrich,這個與上面類似,直接在cmd窗口輸入命令「pip install pystrich」就行,如下:

安裝成功後,我們就可以編寫測試代碼了,如下,很簡單:

生成的條形碼如下:

製作二維碼
這里有一個庫qrcode,專門用於製作二維碼,這銀段個我以前也介紹過,下面我再簡單介紹一下這個庫的安裝和使用:

1.安裝qrcode,這個直接在cmd窗口輸入命令「pip install qrcode」就行,如下:

2.安裝成功後,我們就可以編寫相關代碼來生成二兄搏寬維碼了,測試代碼如下,很簡單,也很好理解:

點擊運行程序,生成的二維碼如下:

手機掃描效果如下,如果是網址,會直接跳轉到對應網頁,如果是文字,則解析出對應內容:

至此,我們就完成了利用python來製作條形碼和二維碼。總的來說,整個過程不難,都有現成的庫可以直接使用,代碼量也不多,很好理解,只要你有一定的python基礎,熟悉一下相關示例和代碼,很快就能掌握的,網上也有相關教程和資料,感興趣的話,可以搜一下,希望以上分享的內容能對你羨亮有所幫助吧,也歡迎大家評論、留言。

❻ 用python如何直接獲取jsp生成的驗證碼圖片

你只需要正常請求圖片就行了,分析一下image的src,把它拼接成一個完整的URL去請求就好了,得到的有可能是BASE64編碼串,或者是文件,把它保存下來就可以了。

熱點內容
漫威超級戰爭如何配置核心組合 發布:2025-01-27 13:03:19 瀏覽:954
c語言五子棋程序 發布:2025-01-27 12:58:43 瀏覽:157
win10流媒體伺服器怎麼搭建 發布:2025-01-27 12:58:04 瀏覽:383
組合公式的演算法 發布:2025-01-27 12:45:50 瀏覽:277
落櫻小屋哪裡下載安卓 發布:2025-01-27 12:35:13 瀏覽:71
微信伺服器IP跳轉 發布:2025-01-27 12:26:54 瀏覽:73
oracle自動備份腳本linux 發布:2025-01-27 12:21:40 瀏覽:936
pop伺服器密碼怎麼填 發布:2025-01-27 12:20:02 瀏覽:968
oraclesqlnumber 發布:2025-01-27 12:04:22 瀏覽:849
如何看三才配置數理暗示力 發布:2025-01-27 12:04:15 瀏覽:811