本文目錄一覽:
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從哪裡入手
初學者學習Python需循序漸進,可以從以下內容入手學習:
1.Python基礎知識
學習任何一門編程語言都需要學習相關語法知識,Python基礎知識的學習主要包括Python解釋器執行原理、字符編碼、注釋、變量、縮進、流程控制、文件操作、數據類型、數據類型內置方法、字符串格式化、運算符、輸入輸出、三元運算、collections、列表、字典、元組、集合、IO操作、文件增刪改查、函數等。
2.函數和常用模塊
函數和常用模塊的學習內容主要包括裝飾器原理和使用、高階函數、迭代器與生成器、函數式編程、函數遞歸、二分查找、模塊介紹、re正則模塊、os\sys模塊、subprocess模塊、shuti\shelve\itertools模塊、hashlib模塊、logging日誌模塊、time\datetime\traceback模塊、json\pickle\yam\configparser處理模塊、urllib\paramiko模塊等。
3.面向對象
Python面向對象知識的學習主要包括面向對象和類介紹、創建類、經典類與新式類、面向對象的三大特性、類的普通成員、字段方法屬性、類的高級成員、靜態字段、靜態方法、靜態屬性、類方法、MetaClass\AbstractClass、類成員修飾符等。
4.網絡編程基礎
Python網絡編程基礎學習內容包括Python模塊SocketServer使用和源碼剖析、GIL內部機制、線程鎖、事件、生產者消費模型、進程的使用、進程間數據共享等。
5.數據庫、緩存、隊列
Python數據庫、緩存、隊列學習內容為Python操作redis、Python操作memcache、rabbitMQ消息隊列、數據庫介紹、mysql數據庫安裝使用、mysql管理、mysql數據類型、常用mysql命令、創建數據庫、外鍵、增刪改查表、權限、事務、索引、Python操作mysql等。
6.Web開發基礎
Python之Web開發基礎學習內容為HTML基礎、CSS基礎、JavaScript基礎、局部變量和全局變量、集合、數組、字典、函數參數、原型、面向對象、作用域、dom編程、jquery介紹、jquery選擇器、jquery屬性和CSS操作、jquery文檔處理、jquery篩選、jquery事件託管、jquery事件、jquery
ajax、jquery擴展方法、bootstrap使用、EasyUI介紹和使用等。
7.Web框架學習
Python之Web框架學習內容為Web框架本質、socket服務器、基於反射的路由系統、WSGI介紹及原理實現、開發自己的Web框架、MVC和MTV、路由系統、模板、django基礎學習與使用、普通路由和動態路由、模板引擎、ORM介紹、Django
ORM增刪改查學習、自定義tag、django進階學習與使用、模型綁定、Form表單驗證、Django
ORM進階學習、ModelForm、自定義Validator等。
python爬驗證碼
1.找地址
首先,我們要找到這個網站生成驗證碼的地址,這個地址我們可以通過查看他的源代碼來實現。
1.找地址
首先,我們要找到這個網站生成驗證碼的地址,這個地址我們可以通過查看他的源代碼來實現。
就以某大學教務網為例,這個教務網的模板很多學校都在採用:
我就截取表單的驗證碼部分即可。
td align=”center” rowspan=”3″
img id=”imgCode” src=”../sys/ValidateCode.aspx”
onclick=”changeValidateCode(this)” alt=”單擊可更換圖片!”
style=”CURSOR: pointer;”
br看不清,則單擊圖片!
/td123456123456
這裡就可以知道,地址就是../sys/ValidateCode.aspx
組合一下地址就是
也就是我們等一下要用到的地址了。
我們可以查看一下那個網頁。
2.處理圖片
去查看了一下那個地址
果不其然,都是亂碼,因為驗證碼分為兩種。
1)直接處理成JPG/GIF/PNG或者其他格式,然後直接讀取到一個圖片地址。
2)接收用戶觸發,然後生成,再直接處理成圖像,不讀取到一個圖片地址。
我們這裡是第二種,我們要自己來讀取他,到本地,再手動輸入驗證碼。
# -*- coding: utf-8 -*-
import urllib2
#驗證碼的處理#
#驗證碼生成頁面的地址#
im_url = ”
#讀取驗證碼圖片#
im_data = urllib2.urlopen(im_url).read()
#打開一個Code.PNG文件在D盤,沒有的話自動生成#
f=open(‘d:\\Code.png’,’wb’)
#寫入圖片內容#
f.write(im_data)
#關閉文件#
f.close()1234567891011121312345678910111213
這裡包括兩個部分:
1)打開那個生成驗證碼圖片的頁面,讀取
2)將讀取到的內容,保存成圖片,下載到本地
我們這裡的地址是可以隨便寫的,保存在你想保存的地方。
到這裡我們就完成了驗證碼的一小部分。
by–LoDog
希望能幫到你!
Python 入門需要學些什麼?
Python相對比較簡單,零基礎也能學。系統學習的話,一般4-6個月左右能學好。
建議大家可以從以下三方面來入手:
①先自學一些python書籍
大家可以從書中了解一些基礎知識,建立一些編程認知。
但是這樣的方式,還是難免會因為沒什麼基礎很快就覺得枯燥了,所以在書籍方面還是建議大家結合視頻課程一起來學習,才能更高效一點。
②網上找相關課程
在mooc網學習的是北京理工大學的一門python公開課,整個流程學習下來能夠了解一些基礎相關,但課程比較淺顯,還是感覺有些不系統,也很難靠自學迅速入門。
③報班學習
很多人對網上報班有些排斥,因為難免會覺得會被割韭菜。但是對於零基礎的小白學習python編程而言,跟着專業系統化一點的團隊一起學習,勢必會更省時省力一點的。
畢竟我們沒有基礎,靠自學又沒啥時間去堅持,能有合適的【線上陪伴式】的課程,還是挺值得一試的。建議大家可以先從體驗課開始,了解清楚課程含金量,看看往期學員的體驗回饋後再報班學習。
Python的學習學習順序如下:
①Python軟件開發基礎
②Python軟件開發進階
③Python全棧式WEB工程師
④Python多領域開發
互聯網行業目前還是最熱門的行業之一,學習IT技能之後足夠優秀是有機會進入騰訊、阿里、網易等互聯網大廠高薪就業的,發展前景非常好,普通人也可以學習。
想要系統學習,你可以考察對比一下開設有相關專業的熱門學校,好的學校擁有根據當下企業需求自主研發課程的能力,能夠在校期間取得大專或本科學歷,中博軟件學院、南京課工場、南京北大青鳥等開設相關專業的學校都是不錯的,建議實地考察對比一下。
祝你學有所成,望採納。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/295103.html