極驗(yàn)驗(yàn)證碼破解—超詳細(xì)教程(三)

極驗(yàn)驗(yàn)證碼破解—超詳細(xì)教程(一)

極驗(yàn)驗(yàn)證碼破解—超詳細(xì)教程(二)

極驗(yàn)驗(yàn)證碼破解—超詳細(xì)教程(三)

Gayhub:FanhuaandLuomu/geetest_break

2017.8.21 代碼以上傳,可供參考

[國家企業(yè)信用信息公示系統(tǒng)為例]

目錄

一虽另、網(wǎng)站http://www.gsxt.gov.cn滑動(dòng)驗(yàn)證碼概述.

二誓琼、極驗(yàn)驗(yàn)證碼破解-抓包分析.

三听系、極驗(yàn)驗(yàn)證碼破解-搭建本地驗(yàn)證碼服務(wù).

四原杂、極驗(yàn)驗(yàn)證碼破解-分析geetest.js盯拱,得到所需參數(shù).

五祥得、極驗(yàn)驗(yàn)證碼破解-Track的獲取.

六允青、極驗(yàn)驗(yàn)證碼破解-獲取背景圖片及缺口距離d的計(jì)算.

七橄碾、極驗(yàn)驗(yàn)證碼破解-總結(jié).

參考文獻(xiàn).

運(yùn)行截圖.


五、極驗(yàn)驗(yàn)證碼破解-Track的獲取

1. Track的生成可以根據(jù)圖片缺口的距離d颠锉,使用隨機(jī)函數(shù)隨機(jī)采樣生成法牲。比如d=120,則我們控制總拖動(dòng)時(shí)間為t(t一般小于3s),則可以每很小的時(shí)間內(nèi)(每次隨機(jī)時(shí)間,如10ms)移動(dòng)一小段隨機(jī)距離琼掠,最后在時(shí)刻t時(shí)正好移動(dòng)到d拒垃。但考慮人拖動(dòng)會(huì)有先加速在減速的特點(diǎn)(或許還有其他特點(diǎn)),geetest的服務(wù)器可能會(huì)識(shí)別到時(shí)機(jī)器所為瓷蛙,我們很難找到人行為的軌跡特點(diǎn)并且難以模擬恶复,因此生成軌跡不太可行(也許可行,但代價(jià)較大)速挑。

2. 我們提出另一種方法替代Track的生成,即手工事先存儲(chǔ)備用Track副硅。驗(yàn)證碼圖片總長大概250左右姥宝,由于我們已經(jīng)實(shí)現(xiàn)了在Console中打印Track的js,因此我們可以多次刷新http://localhost:8000/頁面恐疲,得到不同缺口位置的驗(yàn)證碼腊满,手動(dòng)拖動(dòng)至缺口處套么,保存Console中的Track。

3. 經(jīng)過試驗(yàn)發(fā)現(xiàn)碳蛋,缺口位置大多停留在中間位置胚泌,并且拖動(dòng)誤差在3以內(nèi)都可以接受。因此我們可以用當(dāng)前位置d的Track來代替d-1和d+1的Track(如缺口位置120肃弟,則119和121的Track可以不用測試玷室,直接使用120的Track)。這樣大大減少了刷新頁面獲取Track的次數(shù)笤受,我收集的Track列表如下:

為了方便統(tǒng)計(jì)穷缤,我按個(gè)位數(shù)將Track存放在10個(gè)文件中。

我們將所有的Track整合為dict(t_dict.pkl)箩兽,格式如下:

{k1:v1}津肛,其中k1為缺口位置,v1為Track(字符串形式)汗贫。

至此我們得到Track備用列表身坐,我們可以根據(jù)實(shí)際的缺口位置獲得相應(yīng)的Track值,下一節(jié)我們將會(huì)講解如何得到缺口距離驗(yàn)證碼左邊的相對(duì)距離d落包。

六部蛇、極驗(yàn)驗(yàn)證碼破解-獲取背景圖片及缺口距離d的計(jì)算

1. 我們首先尋找圖片的來源⊥咨回憶分析get.php搪花?的時(shí)候,看到過“fullbg”的出現(xiàn)嘹害,因此很大可能背景圖片信息是通過get.php撮竿?傳來的。查看Response如下:

根據(jù)圖片的url打開圖片:

可以發(fā)現(xiàn)圖片已經(jīng)亂碼笔呀,這是因?yàn)榉祷氐膱D片是局部重合產(chǎn)生的幢踏。

查看驗(yàn)證碼圖片的審查元素:

可以發(fā)現(xiàn),展示的圖片是從原始亂碼圖片中多次截取小段许师,合成而成的房蝉。具體的合成方式如background-position所示。如background-position:-157px,-58px微渠。則該小段圖片為源亂碼圖片的(157,58搭幻,157+10,58+58)。根據(jù)上述分析逞盆,我么可以還原bg和fullbg的非亂碼圖片(即所看見的背景圖片)檀蹋。

我們通過比較兩張圖片的像素值,即可得到缺口的位置云芦,缺口左上角橫坐標(biāo)的值即為d俯逾。我們封裝了get_dist函數(shù)如下:

函數(shù)其它細(xì)節(jié)請(qǐng)參見項(xiàng)目源碼贸桶。

七、極驗(yàn)驗(yàn)證碼破解-總結(jié)

1. 至此桌肴,geetest驗(yàn)證碼的關(guān)鍵技術(shù)點(diǎn)已經(jīng)講解完皇筛,有沒有感覺號(hào)稱使用深度學(xué)習(xí)技術(shù)進(jìn)行人機(jī)驗(yàn)證的滑動(dòng)驗(yàn)證碼也不過如此。最近我會(huì)在Github上開源所有代碼坠七,希望得到大家的指點(diǎn)水醋。

2. 當(dāng)時(shí)做這個(gè)項(xiàng)目大概斷斷續(xù)續(xù)做了兩星期左右(2017.03),開始是參照網(wǎng)上教程使用selenium控制鼠標(biāo)來實(shí)現(xiàn)灼捂,后來發(fā)現(xiàn)鼠標(biāo)移動(dòng)的速度太機(jī)械化离例,成功率太低(滑動(dòng)到缺口處,但被識(shí)別為機(jī)器行為)悉稠。所以宫蛆,我采取了退而求其次的方法,避免對(duì)軌跡路徑的生成的猛,直接使用已經(jīng)成功驗(yàn)證的歷史軌跡來作為當(dāng)前軌跡耀盗。經(jīng)過試驗(yàn),這種方法成功率接近100%卦尊,且復(fù)雜度不高叛拷,歷史軌跡單獨(dú)存在硬盤,可定期更新(以防止軌跡被封)岂却。

3. 最近(2017.07)突然想寫個(gè)文檔教程分享技術(shù)忿薇,算是個(gè)學(xué)習(xí)筆記,也算是對(duì)自己曾經(jīng)努力的記載躏哩。該文檔斷斷續(xù)續(xù)寫了4個(gè)晚上的時(shí)間署浩,歡迎大家閱讀并指正。

4. 最后附上Github地址扫尺,里面有一些小爬蟲和NLP相關(guān)的項(xiàng)目筋栋,歡迎圍觀。https://github.com/FanhuaandLuomu

參考文獻(xiàn)

1.http://blog.csdn.net/paololiu/article/details/52514504

2.https://zhuanlan.zhihu.com/p/22866110?refer=windev

3.https://zhuanlan.zhihu.com/p/22404294

(向以上參考文章的作者致謝~)

運(yùn)行截圖

Python geetest_spider.py

注意:要爬取的企業(yè)列表寫在searchword_list正驻。

(THE END弊攘,如果對(duì)您有幫助,請(qǐng)點(diǎn)個(gè)贊~~~)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末姑曙,一起剝皮案震驚了整個(gè)濱河市襟交,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌伤靠,老刑警劉巖婿着,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡竟宋,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門形纺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來丘侠,“玉大人,你說我怎么就攤上這事逐样∥献郑” “怎么了?”我有些...
    開封第一講書人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵脂新,是天一觀的道長挪捕。 經(jīng)常有香客問我,道長争便,這世上最難降的妖魔是什么级零? 我笑而不...
    開封第一講書人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮滞乙,結(jié)果婚禮上奏纪,老公的妹妹穿的比我還像新娘。我一直安慰自己斩启,他們只是感情好序调,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著兔簇,像睡著了一般发绢。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上垄琐,一...
    開封第一講書人閱讀 49,111評(píng)論 1 285
  • 那天边酒,我揣著相機(jī)與錄音,去河邊找鬼此虑。 笑死甚纲,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的朦前。 我是一名探鬼主播介杆,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼韭寸!你這毒婦竟也來了春哨?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤恩伺,失蹤者是張志新(化名)和其女友劉穎赴背,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡凰荚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年燃观,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片便瑟。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡缆毁,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出到涂,到底是詐尸還是另有隱情脊框,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布践啄,位于F島的核電站浇雹,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏屿讽。R本人自食惡果不足惜昭灵,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望聂儒。 院中可真熱鬧虎锚,春花似錦、人聲如沸衩婚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽非春。三九已至柱徙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間奇昙,已是汗流浹背护侮。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留储耐,地道東北人羊初。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像什湘,于是被迫代替她去往敵國和親长赞。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

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