




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Python網(wǎng)絡(luò)爬蟲(chóng)第四單元
反爬蟲(chóng)策略及解決辦法教學(xué)概述概述
在第二部分的相關(guān)知識(shí)點(diǎn):Requests的相關(guān)技術(shù)介紹的同時(shí),向大家同步闡述了爬蟲(chóng)過(guò)程中常見(jiàn)的難題,也就是反爬蟲(chóng)。
我們先來(lái)認(rèn)知一下爬蟲(chóng)和反爬蟲(chóng)的對(duì)比和歷史。爬蟲(chóng):自動(dòng)獲取網(wǎng)站數(shù)據(jù)的程序,常伴隨批量的獲取。反爬蟲(chóng):使用技術(shù)手段防止爬蟲(chóng)程序的方法。
反爬蟲(chóng)的最終目的是:數(shù)據(jù)保護(hù)。因?yàn)榘殡S著爬蟲(chóng)程序的運(yùn)行,會(huì)造成:粗暴爬取,服務(wù)器壓力過(guò)大,網(wǎng)站癱瘓。爬蟲(chóng)失控,演變成服務(wù)器攻擊。
商業(yè)數(shù)據(jù)泄露,競(jìng)爭(zhēng)能力流失等教學(xué)概述教學(xué)導(dǎo)航知識(shí)重點(diǎn)反爬蟲(chóng)策略之Headers、Cookies、Proxies,Tesseract安裝與配置和Pytesseract應(yīng)用。知識(shí)難點(diǎn)Pytesseract應(yīng)用。推薦教學(xué)方式從學(xué)習(xí)情境任務(wù)書入手,通過(guò)對(duì)任務(wù)的解讀,引導(dǎo)思維獲取信息,引導(dǎo)學(xué)生制作工作計(jì)劃;根據(jù)標(biāo)準(zhǔn)工作流程,調(diào)整學(xué)生計(jì)劃并提出決策方案;通過(guò)對(duì)相關(guān)案例的實(shí)施演練讓學(xué)生掌握任務(wù)的實(shí)現(xiàn)流程及技能。建議學(xué)時(shí)8學(xué)時(shí)推薦學(xué)習(xí)方法根據(jù)任務(wù)要求獲取信息,制定工作計(jì)劃;根據(jù)教師演示,動(dòng)手實(shí)踐完成工作實(shí)施,掌握任務(wù)實(shí)現(xiàn)的流程與技能;并進(jìn)行課后的自我評(píng)價(jià)與擴(kuò)展思考。必須掌握的理論知識(shí)反爬蟲(chóng)策略之Headers、Cookies及Pytesseract應(yīng)用。必須掌握的技能使用Headers模擬瀏覽器操作;使用Cookies記錄身份信息。安裝Tesseract軟件;使用Pytesseract識(shí)別驗(yàn)證碼。第四單元
反爬蟲(chóng)策略及解決辦法0304反爬蟲(chóng)的三大策略輸入式、行為式、智能三大驗(yàn)證碼Tesseract使用
Pytesseract有效識(shí)別輸入式驗(yàn)證碼0102情境一:常見(jiàn)反爬蟲(chóng)策略及解決辦法010302情景概述知識(shí)準(zhǔn)備總結(jié)PART01情境概述情境一:常見(jiàn)反爬蟲(chóng)策略及解決辦法情境概述學(xué)習(xí)情境描述1.教學(xué)情境描述:根據(jù)自我網(wǎng)絡(luò)爬蟲(chóng)技術(shù)的學(xué)習(xí),總結(jié)歸納出所遇見(jiàn)的反爬蟲(chóng)策略以及自己是如何解決它的。并結(jié)合老師或其他資料完善自己對(duì)反爬蟲(chóng)策略及技術(shù)的認(rèn)知,完善反爬蟲(chóng)策略體系,并針對(duì)反爬蟲(chóng)策略構(gòu)思對(duì)應(yīng)的解決辦法。2.關(guān)鍵知識(shí)點(diǎn):反爬蟲(chóng)策略之Headers、反爬蟲(chóng)策略之Cookies、反爬蟲(chóng)策略之Proxies。3.關(guān)鍵技能點(diǎn):使用Headers模擬瀏覽器操作、使用Cookies記錄身份信息。情境一:常見(jiàn)反爬蟲(chóng)策略及解決辦法情境概述本節(jié)課的學(xué)習(xí)目標(biāo)了解常見(jiàn)的反爬蟲(chóng)策略。掌握常見(jiàn)反爬蟲(chóng)策略的解決辦法。掌握學(xué)習(xí)新型反爬蟲(chóng)技術(shù)能力。掌握學(xué)習(xí)和思考新型反爬蟲(chóng)解決方案。情境一:常見(jiàn)反爬蟲(chóng)策略及解決辦法PART02知識(shí)準(zhǔn)備情境一:常見(jiàn)反爬蟲(chóng)策略及解決辦法知識(shí)準(zhǔn)備引導(dǎo)問(wèn)題了解什么是反爬蟲(chóng)策略。你都遇到過(guò)哪些反爬蟲(chóng)策略?你還知道哪些反爬蟲(chóng)策略?對(duì)你遇到的反爬蟲(chóng)策略,你是如何處理的?對(duì)你沒(méi)遇見(jiàn)過(guò)的反爬蟲(chóng)策略,你準(zhǔn)備如何處理?情境一:常見(jiàn)反爬蟲(chóng)策略及解決辦法知識(shí)準(zhǔn)備知識(shí)點(diǎn)介紹反爬蟲(chóng)策略之Headers反爬蟲(chóng)策略之Cookie反爬蟲(chóng)策略之Proxies情境一:常見(jiàn)反爬蟲(chóng)策略及解決辦法知識(shí)準(zhǔn)備思維導(dǎo)圖情境一:常見(jiàn)反爬蟲(chóng)策略及解決辦法知識(shí)準(zhǔn)備反爬蟲(chóng)策略之HeadersHeaders是指網(wǎng)絡(luò)請(qǐng)求的頭部信息,也就是網(wǎng)絡(luò)請(qǐng)求過(guò)程中所攜帶的描述信息,允許您對(duì)HTTP請(qǐng)求和響應(yīng)頭執(zhí)行各種操作。
Headers中常見(jiàn)字段有:Accept、Accept-Encoding、Accept-Language、Content-Type、Connection、User-Agent、Host、Referer、Cookie等。
基于Headers的反爬蟲(chóng)策略常見(jiàn)的為:根據(jù)User-Agent識(shí)別瀏覽器行為;根據(jù)Cookie識(shí)別用戶信息;根據(jù)Referer識(shí)別鏈路、根據(jù)Content-Type識(shí)別數(shù)據(jù)類型。以下我們針對(duì)User-Agent和Referer進(jìn)行處理(其中Cookie單獨(dú)講解,此處不做處理;Content-Type是服務(wù)器進(jìn)行類型判斷識(shí)別,此處亦不做講解)。情境一:常見(jiàn)反爬蟲(chóng)策略及解決辦法知識(shí)準(zhǔn)備反爬蟲(chóng)策略之Headers1.User-Agent
服務(wù)器會(huì)通過(guò)判斷客戶端請(qǐng)求頭中的User-Agent是否來(lái)源于瀏覽器。所以針對(duì)Web訪問(wèn)的頁(yè)面或接口,我們需要把自己偽裝成一個(gè)瀏覽器來(lái)發(fā)起訪問(wèn)。因此就要指定User-Agent來(lái)偽裝成瀏覽器發(fā)起請(qǐng)求。
樣例4-1:模擬谷歌瀏覽器,訪問(wèn)百度搜索。importrequestsheaders={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/89.0.4389.90Safari/537.36'}requests.get(url='/',headers=headers)情境一:常見(jiàn)反爬蟲(chóng)策略及解決辦法知識(shí)準(zhǔn)備反爬蟲(chóng)策略之Headers1.User-Agent
樣例4-2:隨機(jī)模擬瀏覽器,訪問(wèn)百度搜索。importrequestsfromfake_useragentimportUserAgentheaders={'User-Agent':UserAgent().random}requests.get(url='/',headers=headers)情境一:常見(jiàn)反爬蟲(chóng)策略及解決辦法知識(shí)準(zhǔn)備反爬蟲(chóng)策略之Headers2.Referer
很多網(wǎng)站群的訪問(wèn)都是級(jí)聯(lián)的,而如何去判斷當(dāng)前的訪問(wèn)是通過(guò)用戶交互行為操作的還是直接訪問(wèn)目標(biāo)地址的呢?就是通過(guò)Headers中的Referer。Referer會(huì)自動(dòng)保存并設(shè)置鏈路,也就是上一步歷史記錄地址,服務(wù)器就可以以此為參數(shù)判定是否是交互行為的產(chǎn)物。那么我們?cè)诔绦蛑腥绾伪苊膺@種反爬蟲(chóng)策略呢?情境一:常見(jiàn)反爬蟲(chóng)策略及解決辦法知識(shí)準(zhǔn)備反爬蟲(chóng)策略之Headers2.Referer
樣例4-3:隨機(jī)模擬瀏覽器,訪問(wèn)百度搜索。importrequestsfromfake_useragentimportUserAgenturl='/search?q=user-agent&qs=n&form=QBRE&sp=-1&pq=user-agent&sc=10-10&sk=&cvid=5A450C85AD6E40CFB5D9D9810A2504EE'referer='/search?q=Headers&qs=n&form=QBRE&sp=-1&pq=headers&sc=10-7&sk=&cvid=7C6B7E50739E4FD29EFDE523EA3E508D'headers={'User-Agent':UserAgent().random,'Referer':referer,}requests.get(url=url,headers=headers)情境一:常見(jiàn)反爬蟲(chóng)策略及解決辦法知識(shí)準(zhǔn)備反爬蟲(chóng)策略之CookieCookie是請(qǐng)求頭的一部分,同時(shí)也web瀏覽器的憑證,根據(jù)實(shí)際情況,有時(shí)候要指定Cookie參數(shù)。requests將Cookie從中剝離出來(lái),可以使用cookies參數(shù)直接指定。url="/cookies"r=requests.get(url,cookies={'myname':'lisi'})情境一:常見(jiàn)反爬蟲(chóng)策略及解決辦法知識(shí)準(zhǔn)備反爬蟲(chóng)策略之CookieCookie最常用的場(chǎng)景是:用戶登錄信息管理。在爬取有些網(wǎng)頁(yè)是要求登錄之后的才能爬取,所以要和服務(wù)器一直保持登錄狀態(tài),有時(shí)的策略不都指定cookies,而是會(huì)使用session來(lái)完成,Session提供的API和requests是一樣的,并且可將Cookie自動(dòng)保存。s.Session()對(duì)象自動(dòng)保存和傳遞的方式。s=requests.Session()s.cookies=requests.utils.cookiejar_from_dict({"b":"d"})r=s.get('/cookies')r=s.get('/cookies')綜上所述,對(duì)于Cookie的問(wèn)題,若在初始狀態(tài)需要傳遞,可以作為屬性放置在Headers的Cookie屬性中;可以單獨(dú)設(shè)置在參數(shù)cookies中。若在訪問(wèn)過(guò)程實(shí)時(shí)攜帶,可以使用requests.Session()對(duì)象自動(dòng)保存和傳遞的方式。情境一:常見(jiàn)反爬蟲(chóng)策略及解決辦法知識(shí)準(zhǔn)備反爬蟲(chóng)策略之Proxies服務(wù)器會(huì)針對(duì)用戶操作對(duì)用戶行為進(jìn)行記錄,當(dāng)根據(jù)規(guī)則匹配識(shí)別為程序操作,可能會(huì)進(jìn)行IP封禁的操作。當(dāng)我們發(fā)現(xiàn)IP已經(jīng)被封了,此IP就再也訪問(wèn)不到目標(biāo)網(wǎng)站了。為了面對(duì)封禁IP的操作,我們可以:做更完善的設(shè)置,避免瀏覽器識(shí)別并封禁IP;使用代理IP,隱藏真實(shí)IP;設(shè)置好訪問(wèn)間隔,避免服務(wù)器壓力過(guò)大。對(duì)于使用代理IP,保護(hù)真實(shí)機(jī)器IP的方式如下,設(shè)置proxies參數(shù):proxies={'https':'8:8118','http':':9999'}r=requests.get('',proxies=proxies,timeout=2)情境一:常見(jiàn)反爬蟲(chóng)策略及解決辦法PART03總結(jié)情境一:常見(jiàn)反爬蟲(chóng)策略及解決辦法總結(jié)總結(jié)本情景,主要介紹了完成Fiddler及模擬器軟件軟件的安裝配置。通過(guò)對(duì)案例的學(xué)習(xí),讓同學(xué)們掌握
Requests、BeautifulSoup4、CSV技術(shù)的應(yīng)用,學(xué)習(xí)如何在實(shí)際靜態(tài)網(wǎng)頁(yè)數(shù)據(jù)采集中應(yīng)用Requests獲取網(wǎng)頁(yè)源數(shù)據(jù);使情境一:常見(jiàn)反爬蟲(chóng)策略及解決辦法情景二:處理輸入式驗(yàn)證碼校驗(yàn)01030204情景概述知識(shí)準(zhǔn)備案例講解總結(jié)PART01情境概述情景二:處理輸入式驗(yàn)證碼校驗(yàn)情境概述學(xué)習(xí)情境描述1.教學(xué)情境描述:在上一個(gè)學(xué)習(xí)情境中,簡(jiǎn)單介紹了常見(jiàn)的網(wǎng)絡(luò)請(qǐng)求反爬蟲(chóng)策略和解決方法。接下來(lái),我們來(lái)看看網(wǎng)絡(luò)訪問(wèn)的時(shí)候常見(jiàn)的驗(yàn)證碼問(wèn)題。驗(yàn)證碼(CAPTCHA)是“CompletelyAutomatedPublicTuringtesttotellComputersandHumansApart”(全自動(dòng)區(qū)分計(jì)算機(jī)和人類的圖靈測(cè)試)的縮寫,是一種區(qū)分用戶是計(jì)算機(jī)還是人的公共全自動(dòng)程序。可以防止注冊(cè)機(jī)批量注冊(cè)和惡意登錄;防止惡意刷單,投票、評(píng)論等;防止爬蟲(chóng)盜取網(wǎng)頁(yè)內(nèi)容和數(shù)據(jù);防止虛假交易,盜卡支付等。實(shí)際上用驗(yàn)證碼是現(xiàn)在很多網(wǎng)站通行的方式,我們利用比較簡(jiǎn)易的方式實(shí)現(xiàn)了這個(gè)功能。這個(gè)問(wèn)題可以由計(jì)算機(jī)生成并評(píng)判,但是必須只有人類才能解答。由于計(jì)算機(jī)無(wú)法解答CAPTCHA的問(wèn)題,所以回答出問(wèn)題的用戶就可以被認(rèn)為是人類。情景二:處理輸入式驗(yàn)證碼校驗(yàn)情境概述學(xué)習(xí)情境描述2.關(guān)鍵知識(shí)點(diǎn)(1)Tesseract;(2)Pytesseract。3.關(guān)鍵技能點(diǎn)(1)安裝Tesseract軟件;(2)使用Pytesseract識(shí)別驗(yàn)證碼。情景二:處理輸入式驗(yàn)證碼校驗(yàn)情境概述本節(jié)課的學(xué)習(xí)目標(biāo)了解驗(yàn)證碼的由來(lái)和意義。了解驗(yàn)證碼的類型和應(yīng)用場(chǎng)景。掌握網(wǎng)頁(yè)驗(yàn)證碼定位提取。掌握輸入式驗(yàn)證碼基礎(chǔ)識(shí)別技術(shù)。情景二:處理輸入式驗(yàn)證碼校驗(yàn)情境概述本節(jié)課的任務(wù)書完成Tesseract軟件的安裝配置。使用pytesseract識(shí)別圖片內(nèi)容。使用Pillow處理圖片干擾信息。情景二:處理輸入式驗(yàn)證碼校驗(yàn)PART02知識(shí)準(zhǔn)備情景二:處理輸入式驗(yàn)證碼校驗(yàn)知識(shí)準(zhǔn)備知識(shí)點(diǎn)介紹Tesseract軟件的安裝配置pytesseract識(shí)別圖片內(nèi)容Pillow處理圖片干擾信息情景二:處理輸入式驗(yàn)證碼校驗(yàn)知識(shí)準(zhǔn)備引導(dǎo)問(wèn)題什么是輸入式驗(yàn)證碼?如何才算通過(guò)校驗(yàn)?驗(yàn)證碼的生成機(jī)制是怎樣的?為什么爬蟲(chóng)中要處理驗(yàn)證碼校驗(yàn)?本次情境中驗(yàn)證碼具體類型和內(nèi)容范圍是什么?模擬用戶思維和行為,程序中識(shí)別輸入式驗(yàn)證碼的原理是什么?輸入型驗(yàn)證碼校驗(yàn)過(guò)程可能會(huì)遇到哪些問(wèn)題?如何定位和獲取實(shí)時(shí)驗(yàn)證碼?獲取到的驗(yàn)證碼是否有干擾信息?如何處理這些干擾信息?如何處理輸入式驗(yàn)證碼完成校驗(yàn)?情景二:處理輸入式驗(yàn)證碼校驗(yàn)知識(shí)準(zhǔn)備思維導(dǎo)圖情景二:處理輸入式驗(yàn)證碼校驗(yàn)知識(shí)準(zhǔn)備Tesseract1.Tesseract介紹Tesseract,一款由HP實(shí)驗(yàn)室開(kāi)發(fā)由Google維護(hù)的開(kāi)源OCR(OpticalCharacterRecognition,光學(xué)字符識(shí)別)引擎,與MicrosoftOfficeDocumentImaging(MODI)相比,我們可以不斷的訓(xùn)練的庫(kù),使圖像轉(zhuǎn)換文本的能力不斷增強(qiáng);如果團(tuán)隊(duì)深度需要,還可以以它為模板,開(kāi)發(fā)出符合自身需求的OCR引擎。情景二:處理輸入式驗(yàn)證碼校驗(yàn)知識(shí)準(zhǔn)備Tesseract2.Tesseract安裝與配置Tesseract的使用,需要環(huán)境的支持,以實(shí)現(xiàn)簡(jiǎn)單的轉(zhuǎn)換和訓(xùn)練。1.1.下載軟件Tesseract是Github項(xiàng)目,其源碼地址為:/tesseract-ocr/tesseractTesseract有兩個(gè)大的穩(wěn)定版本迭代,分別是3和4.也有一個(gè)最新開(kāi)發(fā)測(cè)試版本5.關(guān)于Windows編譯運(yùn)行軟件可以在官網(wǎng)下載,也可以在下載站下載,以下是官網(wǎng)地址:/tesseract-ocr/tesseract/releases/tag/4.1.1以下是下載站地址:https://digi.bib.uni-mannheim.de/tesseract情景二:處理輸入式驗(yàn)證碼校驗(yàn)知識(shí)準(zhǔn)備Tesseract2.Tesseract安裝與配置1.2.安裝軟件運(yùn)行下載的Tesseract安裝包:tesseract-ocr-w64-setup-v0190314.exe,選定安裝地址,默認(rèn)安裝即可,效果如圖4-4所示。
圖4-4Tesseract安裝情景二:處理輸入式驗(yàn)證碼校驗(yàn)知識(shí)準(zhǔn)備Tesseract2.Tesseract安裝與配置1.2.安裝軟件
圖4-4Tesseract安裝情景二:處理輸入式驗(yàn)證碼校驗(yàn)知識(shí)準(zhǔn)備Tesseract2.Tesseract安裝與配置1.3.Tesseract配置為了支持Python的pytesseract庫(kù)進(jìn)行OCR識(shí)別,需要系統(tǒng)識(shí)別到Tesseract環(huán)境。首先,在系統(tǒng)變量中添加一列:TESSDATA_PREFIX,并設(shè)置Tesseract安裝目錄下的tessdata文件夾地址,效果如圖4-5所示。
圖4-5TESSDATA_PREFIX配置情景二:處理輸入式驗(yàn)證碼校驗(yàn)知識(shí)準(zhǔn)備Tesseract2.Tesseract安裝與配置1.3.Tesseract配置接下來(lái),需要將其路徑配置在系統(tǒng)環(huán)境Path中,配置如圖4-6所示。
圖4-6Path配置情景二:處理輸入式驗(yàn)證碼校驗(yàn)知識(shí)準(zhǔn)備Tesseract2.Tesseract安裝與配置1.3.Tesseract配置接下來(lái),在命令行窗口中驗(yàn)證Tesseract環(huán)境及版本,輸入以下命令:$tesseract--versiontesseractv0190314leptonica-1.78.0libgif5.1.4:libjpeg8d(libjpeg-turbo1.5.3):libpng1.6.34:libtiff4.0.9:zlib1.2.11:libwebp0.6.1:libopenjp22.3.0FoundAVX2FoundAVXFoundSSE情景二:處理輸入式驗(yàn)證碼校驗(yàn)知識(shí)準(zhǔn)備Pytesseract1.Pytesseract介紹Python-tesseractisanopticalcharacterrecognition(OCR)toolforpython.Thatis,itwillrecognizeand“read”thetextembeddedinimages.Python-tesseractisawrapperfor
Google’sTesseract-OCREngine.Itisalsousefulasastand-aloneinvocationscripttotesseract,asitcanreadallimagetypessupportedbythePillowandLeptonicaimaginglibraries,includingjpeg,png,gif,bmp,tiff,andothers.Additionally,ifusedasascript,Python-tesseractwillprinttherecognizedtextinsteadofwritingittoafile.pytesseract是google做的ocr庫(kù),可以識(shí)別圖片中的文字,也是本次情境中用以識(shí)別輸入式驗(yàn)證碼的有利工具庫(kù)。情景二:處理輸入式驗(yàn)證碼校驗(yàn)知識(shí)準(zhǔn)備Pytesseract2.Pytesseract環(huán)境和其他三方庫(kù)一樣,Pytesseract不屬于Python本地環(huán)境,需要安裝后才能使用。2.1.安裝Pytesseract可以使用PIP安裝Python的Pytesseract庫(kù)。語(yǔ)法如下:$pipinstallPytesseract2.2.驗(yàn)證安裝可以使用PIP安裝Python的Pytesseract庫(kù)。語(yǔ)法如下:$piplist在已安裝列表中顯示了Pytesseract及其對(duì)應(yīng)版本,,表明Pytesseract庫(kù)安裝成功。情景二:處理輸入式驗(yàn)證碼校驗(yàn)知識(shí)準(zhǔn)備Pytesseract3.Pytesseract應(yīng)用Pytesseract是一個(gè)OCR識(shí)別庫(kù),Pytesseract具有的函數(shù)如表4-2所示。函數(shù)描述get_languages返回PytesseractOCR當(dāng)前支持的所有語(yǔ)言。get_tesseract_version返回安裝在系統(tǒng)中的Pytesseract版本。image_to_string返回未修改的輸出作為字符串從PytesseractOCR處理image_to_boxes包含識(shí)別字符及其框邊界的返回結(jié)果image_to_data返回結(jié)果包含框邊界、信任和其他信息。image_to_osd返回結(jié)果包含有關(guān)方向和腳本檢測(cè)的信息。image_to_alto_xml返回以Pytesseract的ALTOXML格式的形式產(chǎn)生。run_and_get_output返回PytesseractOCR的原始輸出。情景二:處理輸入式驗(yàn)證碼校驗(yàn)知識(shí)準(zhǔn)備Pytesseract3.Pytesseract應(yīng)用其中最常用,也最直接識(shí)別驗(yàn)證碼的函數(shù)是:image_to_string,將值作為字符串進(jìn)行輸出。樣例4-4:使用Pytesseract識(shí)別圖4-7的內(nèi)容。
圖4-7importpytesseractfromPILimportImageimage=Image.open(r'C:\Users\king1\Pictures\SavedPictures\code2.jpg')print(pytesseract.image_to_string(image))情景二:處理輸入式驗(yàn)證碼校驗(yàn)知識(shí)準(zhǔn)備Pytesseract3.Pytesseract應(yīng)用運(yùn)行程序,輸出識(shí)別內(nèi)容:C:\Software\anaconda3\python.exeC:/Repositories/PyCharm/Learning_Situation_7/樣例4-4.pyOFXoProcessfinishedwithexitcode0情景二:處理輸入式驗(yàn)證碼校驗(yàn)PART03案例講解情景二:處理輸入式驗(yàn)證碼校驗(yàn)案例講解使用Pytesseract有效識(shí)別輸入式驗(yàn)證碼實(shí)例:選擇中國(guó)知網(wǎng)會(huì)員注冊(cè)界面的驗(yàn)證碼進(jìn)行演示。情景二:處理輸入式驗(yàn)證碼校驗(yàn)案例講解使用Pytesseract有效識(shí)別輸入式驗(yàn)證碼步驟:確定目標(biāo)安裝環(huán)境構(gòu)建項(xiàng)目編寫驗(yàn)證碼校驗(yàn)程序運(yùn)行程序效果截圖優(yōu)化識(shí)別程序情景二:處理輸入式驗(yàn)證碼校驗(yàn)案例講解使用Pytesseract有效識(shí)別輸入式驗(yàn)證碼1.確定目標(biāo)a、本次純粹使用技術(shù)驗(yàn)證數(shù)據(jù),選擇中國(guó)知網(wǎng)會(huì)員注冊(cè)界面的驗(yàn)證碼進(jìn)行演示,注冊(cè)頁(yè)面如圖4-8所示。
圖4-8中國(guó)知網(wǎng)注冊(cè)頁(yè)情景二:處理輸入式驗(yàn)證碼校驗(yàn)案例講解使用Pytesseract有效識(shí)別輸入式驗(yàn)證碼1.確定目標(biāo)b、通過(guò)定位、檢索,得到注冊(cè)頁(yè)中圖片驗(yàn)證碼實(shí)際是由AJAX實(shí)時(shí)請(qǐng)求刷新的,URL地址為:/elibregister/CheckCode.aspx,定位效果如圖4-9。
圖4-9驗(yàn)證碼定位圖情景二:處理輸入式驗(yàn)證碼校驗(yàn)案例講解使用Pytesseract有效識(shí)別輸入式驗(yàn)證碼1.確定目標(biāo)c、通過(guò)觀察和操作網(wǎng)頁(yè)發(fā)現(xiàn),在“立即注冊(cè)”按鈕事件上,會(huì)校驗(yàn)并上傳數(shù)據(jù)進(jìn)行會(huì)員注冊(cè);在驗(yàn)證碼輸入框輸入驗(yàn)證碼并失去焦點(diǎn)時(shí),會(huì)自動(dòng)請(qǐng)求校驗(yàn),校驗(yàn)地址為:/elibregister/Server.aspx。綜上所述,本次使用Pytesseract進(jìn)行驗(yàn)證碼校驗(yàn)主要針對(duì)于驗(yàn)證碼獲取接口和校驗(yàn)接口,不做實(shí)際注冊(cè)操作。情景二:處理輸入式驗(yàn)證碼校驗(yàn)案例講解使用Pytesseract有效識(shí)別輸入式驗(yàn)證碼2.安裝環(huán)境
本次項(xiàng)目使用環(huán)境為以下內(nèi)容:本地語(yǔ)言環(huán)境:Python3.8編譯工具:PyCharm2021.2網(wǎng)絡(luò)請(qǐng)求框架:urllib1.26.4、Requests2.25.1圖片處理框架:Pillow8.2.0OCR識(shí)別框架:Pytesseract0.3.8情景二:處理輸入式驗(yàn)證碼校驗(yàn)案例講解使用Pytesseract有效識(shí)別輸入式驗(yàn)證碼3.構(gòu)建項(xiàng)目
在準(zhǔn)備工作都完成之后,即可通過(guò)工具PyCharm構(gòu)建項(xiàng)目,并開(kāi)始進(jìn)行項(xiàng)目開(kāi)發(fā)了。
使用PyCharm構(gòu)建基本Python項(xiàng)目:Learning_Situation_7,效果如圖4-10所示。
圖4-9驗(yàn)證碼定位圖情景二:處理輸入式驗(yàn)證碼校驗(yàn)案例講解使用Pytesseract有效識(shí)別輸入式驗(yàn)證碼4.編寫驗(yàn)證碼校驗(yàn)程序
在創(chuàng)建的項(xiàng)目:Learning_Situation_7中構(gòu)建驗(yàn)證碼校驗(yàn)程序,以下是具體操作步驟。4.1.構(gòu)建可執(zhí)行文件
創(chuàng)建網(wǎng)絡(luò)爬蟲(chóng)可執(zhí)行文件:check_the_verification_code.py。4.2.導(dǎo)入模塊importpytesseractfromPILimportImagefromurllib.requestimporturlretrieve情景二:處理輸入式驗(yàn)證碼校驗(yàn)案例講解使用Pytesseract有效識(shí)別輸入式驗(yàn)證碼4.編寫驗(yàn)證碼校驗(yàn)程序4.3.獲取驗(yàn)證碼圖片url_get_code='/elibregister/CheckCode.aspx'defgetImage(filename):urlretrieve(url=url_get_code,filename=filename)4.4.OCR識(shí)別圖片內(nèi)容defocrImage(filename):image=Image.open(filename)result_ocr=pytesseract.image_to_string(image)result_filter=''foriteminresult_ocr:ifstr(item).isalnum():result_filter+=itemreturnresult_filter情景二:處理輸入式驗(yàn)證碼校驗(yàn)案例講解使用Pytesseract有效識(shí)別輸入式驗(yàn)證碼5.運(yùn)行程序5.1.構(gòu)建程序啟動(dòng)入口if__name__=='__main__':filename='code.jpg'getImage(filena
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 旅游行業(yè)行程變動(dòng)及責(zé)任豁免協(xié)議書
- 電子支付平臺(tái)開(kāi)發(fā)與推廣合作協(xié)議
- 營(yíng)業(yè)辦公用房買賣協(xié)議書
- 中學(xué)生感恩教育故事觀后感
- 高考語(yǔ)文高頻文言實(shí)詞60詞表解
- 環(huán)保能源行業(yè)項(xiàng)目合作風(fēng)險(xiǎn)提示
- 高考語(yǔ)文備考之明朝作家文言文匯編(下)
- 購(gòu)銷家具合同家具購(gòu)銷合同
- 綠色農(nóng)業(yè)種植合同
- 裝修工程勞務(wù)外包合同
- 《研學(xué)旅行課程設(shè)計(jì)》課件-初識(shí)研學(xué)旅行發(fā)展歷程
- 傳染病手術(shù)的處理流程
- 新質(zhì)生產(chǎn)力:中國(guó)創(chuàng)新發(fā)展的著力點(diǎn)與內(nèi)在邏輯
- 《中醫(yī)常用護(hù)理技術(shù)基礎(chǔ)》課件-八綱辨證施護(hù)
- 心理健康與職業(yè)生涯(中等職業(yè))全套教學(xué)課件
- 市政園林安全生產(chǎn)培訓(xùn)課件
- 基于BIM的軸流通風(fēng)機(jī)施工工藝優(yōu)化
- 2024年大學(xué)生自我意識(shí)教學(xué)案
- 女生青春期知識(shí)講座(六年級(jí))課件
- 消化道出血講課課件
- 化工過(guò)程安全管理導(dǎo)則
評(píng)論
0/150
提交評(píng)論