波多野结衣按摩,在线观看亚洲视频,国产嫩草在线观看,91视频最新地址

首頁 保險 > 正文

盤點一個Python網(wǎng)絡爬蟲過驗證碼的問題(方法一) 環(huán)球今熱點

點擊上方“Python爬蟲與數(shù)據(jù)挖掘”,進行關注

回復“書籍”即可獲贈Python從入門到進階共10本電子書


(資料圖)

低眉信手續(xù)續(xù)彈,說盡心中無限事。

大家好,我是皮皮。

一、前言

前幾天在Python最強王者群【鶏啊鶏。】問了一個Python網(wǎng)絡爬蟲的問題,這里拿出來給大家分享下。

下面是他的代碼:

from?selenium?import?webdriverfrom?selenium.webdriver.common.by?import?Byimport?timefrom?PIL?import?Imageimport?ddddocrocr?=?ddddocr.DdddOcr()options?=?webdriver.ChromeOptions()options.add_argument("user-agent=Mozilla/5.0?(Macintosh;?Intel?Mac?OS?X?10_15_7)?AppleWebKit/537.36?(KHTML,?like?Gecko)?Chrome/86.0.4240.198?Safari/537.36")options.add_argument("--disable-blink-features=AutomationControlled")driver?=?webdriver.Chrome(options=options)#?打開目標網(wǎng)頁driver.get("https://sol.sinosure.com.cn")time.sleep(5)driver.maximize_window()#?定位驗證碼圖片元素并模擬鼠標懸停以加載圖片yanzhengma?=?driver.find_element(By.CSS_SELECTOR,?".pass-form-item.pass-form-item-code")captcha_element?=?yanzhengma.find_element(By.CSS_SELECTOR,??".pass-label-img")webdriver.ActionChains(driver).move_to_element(captcha_element).perform()time.sleep(5)#?獲取驗證碼圖片元素的位置和大小location?=?captcha_element.locationsize?=?captcha_element.sizeprint(location)print(size)#?截取整個網(wǎng)頁的截圖driver.save_screenshot("screenshot.png")#?根據(jù)驗證碼圖片元素的位置和大小,從整個網(wǎng)頁截圖中裁剪出驗證碼圖片left?=?int(location["x"])top?=?int(location["y"])right?=?int(location["x"]?+?size["width"])bottom?=?int(location["y"]?+?size["height"])captcha_screenshot?=?Image.open("screenshot.png").crop((left,?top,?right,?bottom))print(left)print(top)print(location)print(bottom)#?保存裁剪后的驗證碼圖片,并進行識別captcha_screenshot.save("captcha.png")with?open("captcha.png",?"rb")?as?f:????img_bytes?=?f.read()res?=?ocr.classification(img_bytes)print("識別的驗證碼是:"?+?res)

基本思路是沒啥問題的,確實也是可以拿到對應界面的截圖,只不過是驗證碼的位置截取出現(xiàn)了點偏差,導致驗證碼沒正確識別到。

下面這個代碼是獲取驗證碼圖片元素的位置和大小:

location?=?captcha_element.locationsize?=?captcha_element.size

這個部分我看介紹應該是會返回定位的元素位置,我剛剛大致拖拉了一下在裁剪前的定位打印出來確實就已經(jīng)去了輸入密碼附近的位置了 但是我定位的元素是驗證碼的地方,并且我也嘗試了先定位驗證那個位置的大元素再定位至具體的驗證碼圖片位置 ?問題依舊。

上面是粉絲的疑惑,下面一起來看看解決辦法。

二、實現(xiàn)過程

這里【魏哥】嘗試了下代碼,但是出現(xiàn)下圖報錯:

這個報錯還是蠻常見的,對于時常使用sel的人來說,這個報錯算是家常便飯了,報錯的原因是本地瀏覽器驅(qū)動和谷歌瀏覽器的版本不匹配,需要更換本地瀏覽器驅(qū)動。

關于這個問題的解決方法,就是去網(wǎng)頁下載對應瀏覽器版本的對應驅(qū)動,放到本地指定文件夾,確保該文件夾路徑有加入環(huán)境變量。該問題的解決辦法公眾號歷史文章也有提及,網(wǎng)上的解決教程也一大堆,這里不再贅述。

言歸正傳,繼續(xù)回到這個問題的解決辦法。這里【甯同學】給了一個思路,直接找到 驗證碼的圖片的url 用requests 請求 驗證碼的.content 用 ocr.classification(驗證碼的.content) 就可以了 不用保存圖片 在open讀取二進制流,代碼如下所示:

順利地解決了粉絲的問題,如果對requests和Beautiful還不熟悉的小伙伴,可能接受起來就比較困難一些。

這里只是給出了其中一個方法,另外的一個方法,一起看下一篇文章,敬請期待!

三、總結(jié)

大家好,我是皮皮。這篇文章主要盤點了一個Python網(wǎng)絡爬蟲過驗證碼的問題,文中針對該問題,給出了具體的解析和代碼實現(xiàn),幫助粉絲順利解決了問題。

最后感謝粉絲【鶏啊鶏】提問,感謝【甯同學】、【魏哥】給出的思路和代碼解析,感謝【Ineverleft】等人參與學習交流。

【提問補充】溫馨提示,大家在群里提問的時候。可以注意下面幾點:如果涉及到大文件數(shù)據(jù),可以數(shù)據(jù)脫敏后,發(fā)點demo數(shù)據(jù)來(小文件的意思),然后貼點代碼(可以復制的那種),記得發(fā)報錯截圖(截全)。代碼不多的話,直接發(fā)代碼文字即可,代碼超過50行這樣的話,發(fā)個.py文件就行。

大家在學習過程中如果有遇到問題,歡迎隨時聯(lián)系我解決(我的微信:pdcfighting1),應粉絲要求,我創(chuàng)建了一些高質(zhì)量的Python付費學習交流群和付費接單群,歡迎大家加入我的Python學習交流群和接單群!

小伙伴們,快快用實踐一下吧!如果在學習過程中,有遇到任何問題,歡迎加我好友,我拉你進Python學習交流群共同探討學習。

-------------------?End?-------------------

往期精彩文章推薦:

if a and b and c and d:這種代碼有優(yōu)雅的寫法嗎?

Pycharm和Python到底啥關系?

都說chatGPT編程怎么怎么厲害,今天試了一下,有個靜態(tài)網(wǎng)頁,chatGPT居然沒搞定?

站不住就準備加倉,這個pandas語句該咋寫?

歡迎大家點贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持

想加入Python學習群請在后臺回復【入群】

萬水千山總是情,點個【在看】行不行

/今日留言主題/

隨便說一兩句吧~~

關鍵詞:

最近更新

關于本站 管理團隊 版權申明 網(wǎng)站地圖 聯(lián)系合作 招聘信息

Copyright © 2005-2023 創(chuàng)投網(wǎng) - www.extremexp.net All rights reserved
聯(lián)系我們:39 60 29 14 2@qq.com
皖ICP備2022009963號-3

主站蜘蛛池模板: 娇妻之欲海泛舟1一42| 亚洲va韩国va欧美va| 口工里番h全彩动态图| 啊轻点灬大ji巴太粗太长了h| 下面一进一出好爽视频| 国产成人精品久久| 538精品在线视频| 美女黄色录像| 久久亚洲伊人中字综合精品| 美女奶口隐私免费视频网站| 最近免费中文字幕大全高清片| 好男人视频社区精品免费| 一级做α爱**毛片| 国产精品一区二区av| 小时代1免费观看完整版| 男孩子和男孩子在一起do| 性伦片美国刺激片在线观看| 国产精品视频不卡| 中文毛片无遮挡高清免费| 调教在线观看| 丝袜美腿中文字幕| 欧美精品一区二区精品久久| 红色一级毛片| 嗯啊用力视频| 乱妇伦| 处处吻动漫免费观看全集| 品色堂永久免费| 性伦片美国刺激片在线观看| 亚洲乱码中文字幕综合| 免费观看黄页| 欧美xxxx做受性欧美88| 香港一级毛片免费看| 日韩欧美一区二区三区免费观看 | 狠狠色综合网站久久久久久久| 国产男男| 久久综合资源| 中文黄色片| 日韩三级免费看| 自拍欧美亚洲| 麻豆传煤入口麻豆公司传媒| 欧美va天堂在线电影|