Python簡單驗證碼登錄

背景

前幾天想用Python模擬登錄教務(wù)系統(tǒng)瓷马,但是我們學(xué)校的教務(wù)系統(tǒng)做了驗證碼識別,既然如此捕仔,剛好學(xué)習(xí)一下識別簡單驗證碼

Tesseract

簡介

Tesseract(/'tes?r?kt/) 這個詞的意思是"超立方體"呜袁,指的是幾何學(xué)里的四維標(biāo)準(zhǔn)方體,又稱"正八胞體"肝劲。不過這里要講的梁沧,是一款以其命名的開源 OCR(Optical Character Recognition, 光學(xué)字符識別) 軟件。

所謂 OCR 是圖像識別領(lǐng)域中的一個子領(lǐng)域重虑,該領(lǐng)域?qū)W⒂趯D片中的文字信息進(jìn)行識別并轉(zhuǎn)換成能被常規(guī)文本編輯器編輯的文本践付。

在 1995 年 Tesseract 曾是世界前三的 OCR 引擎,而且在現(xiàn)在的免費 OCR 引擎中嚎尤,其識別精度也仍然是出類拔萃的荔仁。因為其免費與較好的效果伍宦,許多的個人開發(fā)者以及一些較小的團(tuán)隊在使用著 Tesseract 芽死,諸如驗證碼識別、車牌號識別等應(yīng)用中次洼,不難見到 Tesseract 的身影关贵。

MacPorts安裝

MacPorts是mac上的一個包管理軟件,他使得mac用戶安裝編譯軟件十分方便卖毁,我們打算用MacPorts來安裝Tesseract揖曾。

在官網(wǎng)上下載MacPorts的pkg,雙擊即可安裝亥啦。查看port是否安裝成功

~:port version

為了防止出現(xiàn)'commond not found'炭剪,要把port指令加入環(huán)境變量PATH之中

~:where port
/opt/local/bin/port
~:export PATH=/opt/local/bin:/opt/local/sbin:$PATH

在正式使用之前,一定要對MacPorts進(jìn)行升級翔脱,不然找不到很多軟件

~:sudo port selfupdate

這個過程可能很慢奴拦,甚至?xí)驗榫W(wǎng)路狀況失敗,多試幾次就好

Tesseract安裝

Tesseract 的編譯需要 automake, autoconf, libtool 支持

~:sudo port install autoconf
~:sudo port install automake
~:sudo port install libtool

當(dāng)然了, Tesseract 還依賴一些圖像庫:

~:sudo port install jpeg tiff libpng

Leptonica是Tesseract 的一個比較重要的依賴届吁,而且不同版本的 Tesseract 對 Leptonica 的版本要求也不一樣错妖,需要留意包管理器所安裝的 Leptonica 版本是否滿足要求

~:sudo port install leptonica

最后,安裝

sudo port install tesseract

安裝完成之后就可以正常運行tesseract了疚沐。

一個小插曲暂氯,我今天到公司后運行tesseract,輸出 commond not found亮蛔,再輸入運行Port痴施,也是commond not found,嚇我一跳,以為中了病毒辣吃。最后發(fā)現(xiàn)原來是他們的運行文件的路徑都不在環(huán)境變量$PATH中了锉矢,趕緊加了進(jìn)去。

之后我從學(xué)校教務(wù)處下載了一些驗證碼

驗證碼

使用tesseract識別

tesseract 1.jpeg ouput
vi output.txt
識別結(jié)果

準(zhǔn)備工作已經(jīng)做好齿尽,接下來可以寫Python程序了
ok,先上代碼

 __author__='fanyiting'
#coding=utf-8

import requests
from PIL import Image
import os

vcode_path='http://202.118.31.197/ACTIONVALIDATERANDOMPICTURE.APPPROCESS?id=72.8565560350367'
url='http://202.118.31.197/ACTIONLOGON.APPPROCESS?mode='
headers={'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36'}

my_session=requests.Session()
def down_png(req,img_path):
    with open('check.png','wb') as f:
        img_stream=req.get(img_path,stream=True)
#       print tuple(img_stream.cookies)
        for chunk in img_stream.iter_content(chunk_size=1024):
            if chunk:
                f.write(chunk)
                f.flush
        f.close()       

def get_vcode(req,vcode_path):
    down_png(req,vcode_path)
    os.popen('tesseract check.png check')
    vcode=file('check.txt').read().strip()
    return vcode

def login(req,code):
    payload={'WebUserNO':'20124964','Password':'*****','Agnomen':code,'applicant':'ACTIONQUERYBASESTUDENTINFO','submit7':'%B5%C7%C2%BC'}
    r=req.post(url,headers=headers,data=payload)
    return r    
    
page=my_session.get(url)
vcode=get_vcode(my_session,vcode_path)
page=login(my_session,vcode)
print page.text




最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末沽损,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子循头,更是在濱河造成了極大的恐慌绵估,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件卡骂,死亡現(xiàn)場離奇詭異国裳,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)全跨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進(jìn)店門缝左,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人浓若,你說我怎么就攤上這事渺杉。” “怎么了挪钓?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵是越,是天一觀的道長。 經(jīng)常有香客問我碌上,道長倚评,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任馏予,我火速辦了婚禮天梧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘霞丧。我一直安慰自己呢岗,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布蚯妇。 她就那樣靜靜地躺著敷燎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪箩言。 梳的紋絲不亂的頭發(fā)上硬贯,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天,我揣著相機(jī)與錄音陨收,去河邊找鬼饭豹。 笑死鸵赖,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的拄衰。 我是一名探鬼主播它褪,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼翘悉!你這毒婦竟也來了茫打?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤妖混,失蹤者是張志新(化名)和其女友劉穎老赤,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體制市,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡抬旺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了祥楣。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片开财。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖误褪,靈堂內(nèi)的尸體忽然破棺而出责鳍,到底是詐尸還是另有隱情,我是刑警寧澤振坚,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布薇搁,位于F島的核電站斋扰,受9級特大地震影響渡八,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜传货,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一屎鳍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧问裕,春花似錦逮壁、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至巍杈,卻和暖如春忧饭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背筷畦。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工词裤, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留刺洒,地道東北人。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓吼砂,卻偏偏與公主長得像逆航,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子渔肩,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內(nèi)容