盤點(diǎn)一個(gè)Python網(wǎng)絡(luò)爬蟲過驗(yàn)證碼的問題(方法一) 環(huán)球今熱點(diǎn)
回復(fù)“書籍”即可獲贈(zèng)Python從入門到進(jìn)階共10本電子書
(資料圖)
今
日
雞
湯
低眉信手續(xù)續(xù)彈,說盡心中無(wú)限事。大家好,我是皮皮。
一、前言前幾天在Python最強(qiáng)王者群【鶏啊鶏?!繂柫艘粋€(gè)Python網(wǎng)絡(luò)爬蟲的問題,這里拿出來給大家分享下。
下面是他的代碼:
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)#?打開目標(biāo)網(wǎng)頁(yè)driver.get("https://sol.sinosure.com.cn")time.sleep(5)driver.maximize_window()#?定位驗(yàn)證碼圖片元素并模擬鼠標(biāo)懸停以加載圖片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)#?獲取驗(yàn)證碼圖片元素的位置和大小location?=?captcha_element.locationsize?=?captcha_element.sizeprint(location)print(size)#?截取整個(gè)網(wǎng)頁(yè)的截圖driver.save_screenshot("screenshot.png")#?根據(jù)驗(yàn)證碼圖片元素的位置和大小,從整個(gè)網(wǎng)頁(yè)截圖中裁剪出驗(yàn)證碼圖片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)#?保存裁剪后的驗(yàn)證碼圖片,并進(jìn)行識(shí)別captcha_screenshot.save("captcha.png")with?open("captcha.png",?"rb")?as?f:????img_bytes?=?f.read()res?=?ocr.classification(img_bytes)print("識(shí)別的驗(yàn)證碼是:"?+?res)
基本思路是沒啥問題的,確實(shí)也是可以拿到對(duì)應(yīng)界面的截圖,只不過是驗(yàn)證碼的位置截取出現(xiàn)了點(diǎn)偏差,導(dǎo)致驗(yàn)證碼沒正確識(shí)別到。
下面這個(gè)代碼是獲取驗(yàn)證碼圖片元素的位置和大?。?/p>
location?=?captcha_element.locationsize?=?captcha_element.size
這個(gè)部分我看介紹應(yīng)該是會(huì)返回定位的元素位置,我剛剛大致拖拉了一下在裁剪前的定位打印出來確實(shí)就已經(jīng)去了輸入密碼附近的位置了 但是我定位的元素是驗(yàn)證碼的地方,并且我也嘗試了先定位驗(yàn)證那個(gè)位置的大元素再定位至具體的驗(yàn)證碼圖片位置 ?問題依舊。
上面是粉絲的疑惑,下面一起來看看解決辦法。
二、實(shí)現(xiàn)過程這里【魏哥】嘗試了下代碼,但是出現(xiàn)下圖報(bào)錯(cuò):
這個(gè)報(bào)錯(cuò)還是蠻常見的,對(duì)于時(shí)常使用sel的人來說,這個(gè)報(bào)錯(cuò)算是家常便飯了,報(bào)錯(cuò)的原因是本地瀏覽器驅(qū)動(dòng)和谷歌瀏覽器的版本不匹配,需要更換本地瀏覽器驅(qū)動(dòng)。
關(guān)于這個(gè)問題的解決方法,就是去網(wǎng)頁(yè)下載對(duì)應(yīng)瀏覽器版本的對(duì)應(yīng)驅(qū)動(dòng),放到本地指定文件夾,確保該文件夾路徑有加入環(huán)境變量。該問題的解決辦法公眾號(hào)歷史文章也有提及,網(wǎng)上的解決教程也一大堆,這里不再贅述。
言歸正傳,繼續(xù)回到這個(gè)問題的解決辦法。這里【甯同學(xué)】給了一個(gè)思路,直接找到 驗(yàn)證碼的圖片的url 用requests 請(qǐng)求 驗(yàn)證碼的.content 用 ocr.classification(驗(yàn)證碼的.content) 就可以了 不用保存圖片 在open讀取二進(jìn)制流,代碼如下所示:
順利地解決了粉絲的問題,如果對(duì)requests和Beautiful還不熟悉的小伙伴,可能接受起來就比較困難一些。
這里只是給出了其中一個(gè)方法,另外的一個(gè)方法,一起看下一篇文章,敬請(qǐng)期待!
三、總結(jié)大家好,我是皮皮。這篇文章主要盤點(diǎn)了一個(gè)Python網(wǎng)絡(luò)爬蟲過驗(yàn)證碼的問題,文中針對(duì)該問題,給出了具體的解析和代碼實(shí)現(xiàn),幫助粉絲順利解決了問題。
最后感謝粉絲【鶏啊鶏】提問,感謝【甯同學(xué)】、【魏哥】給出的思路和代碼解析,感謝【Ineverleft】等人參與學(xué)習(xí)交流。
【提問補(bǔ)充】溫馨提示,大家在群里提問的時(shí)候??梢宰⒁庀旅鎺c(diǎn):如果涉及到大文件數(shù)據(jù),可以數(shù)據(jù)脫敏后,發(fā)點(diǎn)demo數(shù)據(jù)來(小文件的意思),然后貼點(diǎn)代碼(可以復(fù)制的那種),記得發(fā)報(bào)錯(cuò)截圖(截全)。代碼不多的話,直接發(fā)代碼文字即可,代碼超過50行這樣的話,發(fā)個(gè).py文件就行。
大家在學(xué)習(xí)過程中如果有遇到問題,歡迎隨時(shí)聯(lián)系我解決(我的微信:pdcfighting1),應(yīng)粉絲要求,我創(chuàng)建了一些高質(zhì)量的Python付費(fèi)學(xué)習(xí)交流群和付費(fèi)接單群,歡迎大家加入我的Python學(xué)習(xí)交流群和接單群!
小伙伴們,快快用實(shí)踐一下吧!如果在學(xué)習(xí)過程中,有遇到任何問題,歡迎加我好友,我拉你進(jìn)Python學(xué)習(xí)交流群共同探討學(xué)習(xí)。
-------------------?End?-------------------
往期精彩文章推薦:
if a and b and c and d:這種代碼有優(yōu)雅的寫法嗎?
Pycharm和Python到底啥關(guān)系?
都說chatGPT編程怎么怎么厲害,今天試了一下,有個(gè)靜態(tài)網(wǎng)頁(yè),chatGPT居然沒搞定?
站不住就準(zhǔn)備加倉(cāng),這個(gè)pandas語(yǔ)句該咋寫?
歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持
想加入Python學(xué)習(xí)群請(qǐng)?jiān)诤笈_(tái)回復(fù)【入群】
萬(wàn)水千山總是情,點(diǎn)個(gè)【在看】行不行
/今日留言主題/
隨便說一兩句吧~~
關(guān)鍵詞:
您可能也感興趣:
今日熱點(diǎn)
為您推薦
石藥集團(tuán)(01093)6月21日根據(jù)股份獎(jiǎng)勵(lì)計(jì)劃購(gòu)買1000萬(wàn)股-天天看熱訊
天天快資訊丨生馬錢子枯礬散_關(guān)于生馬錢子枯礬散介紹
桂東電力:證券簡(jiǎn)稱擬變更為廣西能源 今日熱議
更多
- 寧夏銀川燒烤店爆炸事故已造成31人死亡 世界資訊
- 每日熱訊!學(xué)習(xí)貫徹全會(huì)精神丨巴中:搶抓機(jī)遇 堅(jiān)定推進(jìn)工業(yè)興...
- 每日看點(diǎn)!為什么說越了解產(chǎn)業(yè)才能越從產(chǎn)業(yè)中賺錢?真相了!
- 王金星副秘書長(zhǎng)一行赴廊坊與分支機(jī)構(gòu)座談BICES和主要業(yè)務(wù)工作
- 用于改善設(shè)備的單手操作的用戶界面_關(guān)于用于改善設(shè)備的單手操...
- 暑期旅游熱提前釋放 飛豬618訂單量同比增長(zhǎng)160%|環(huán)球今熱點(diǎn)
- 范曉_關(guān)于范曉的簡(jiǎn)介
- 超聲技術(shù)出手,給電池做無(wú)損“體檢”
更多
- 熱點(diǎn)聚焦:價(jià)差預(yù)備費(fèi)計(jì)算公式及例題計(jì)算_價(jià)差預(yù)備費(fèi)的計(jì)算公...
- 信息:2023粵港澳車展:911 GT3 RS實(shí)車首次公眾亮相
- 外觀和動(dòng)力均有升級(jí) 新款吉利星瑞申報(bào)圖
- 最后一小時(shí)!“極目錦鯉”即將開獎(jiǎng)! 當(dāng)前動(dòng)態(tài)
- 時(shí)隔一年券商“白名單”更新 5家公司新進(jìn)4家被調(diào)出
- 環(huán)球微動(dòng)態(tài)丨成都理工大學(xué):成都校區(qū)今年計(jì)劃招生較去年增加300人
- “中國(guó)皮影藝術(shù)了不起!”(僑界關(guān)注)
- 因賽集團(tuán):擬定增募資不超6.45億元 用于營(yíng)銷AIGC大模型研發(fā)...
排行
- 盤點(diǎn)一個(gè)Python網(wǎng)絡(luò)爬蟲過驗(yàn)證碼的問題(方法一) 環(huán)球今熱點(diǎn)
- 豐富普惠保險(xiǎn)產(chǎn)品業(yè)務(wù),探索面向小微企業(yè)的保單融資產(chǎn)品
- 慧擇一季度總營(yíng)收7.3億元,同比增長(zhǎng)195.5%
- 數(shù)字化正改變壽險(xiǎn)和非壽險(xiǎn)公司的銷售和服務(wù)
- 水滴保上半年平均理賠時(shí)效縮短至15.7小時(shí)
- 內(nèi)蒙古將開展草原保險(xiǎn)試點(diǎn),面積達(dá)3797.88萬(wàn)畝
- 三孩政策放開,適合孕期的保險(xiǎn)該如何買?
- 北京普惠健康保參保人數(shù)破百萬(wàn),打工族醫(yī)療保障需求旺盛
- 中國(guó)太保,前四月保費(fèi)收入1630.66億元
- 《醫(yī)療保障法(征求意見稿)》明確要鼓勵(lì)發(fā)展商業(yè)健康保險(xiǎn)
最近更新
- 盤點(diǎn)一個(gè)Python網(wǎng)絡(luò)爬蟲過驗(yàn)證碼的問題(方法一) 環(huán)球今熱點(diǎn)
- 【環(huán)球新要聞】618新消費(fèi)⑧|年輕人“養(yǎng)生”意愿強(qiáng)烈 “銀發(fā)...
- 速訊:提前封頂!??诮瓥|新區(qū)瓊臺(tái)師范學(xué)院綜合樓項(xiàng)目建設(shè)提...
- 江西省余干縣發(fā)布暴雨藍(lán)色預(yù)警-環(huán)球播報(bào)
- 世界熱資訊!帶娃在小區(qū)內(nèi)玩耍時(shí),有哪些潛在的危險(xiǎn)?
- 你好意思說它不紅?
- 華為向日本公司收專利費(fèi)
- 得了這病要分房睡?霍啟剛常因此病半夜驚醒,浙江醫(yī)生半天接...
- 女子喊3遍拔針護(hù)士打游戲不理會(huì) 基本信息講解
- 華碩靈耀X Ultra評(píng)測(cè):華碩輕薄科技與性能的完美結(jié)合
- 臨時(shí)停火協(xié)議到期 蘇丹多地再度爆發(fā)沖突_聚看點(diǎn)
- 如何創(chuàng)作特色小丑服裝——送給女友的與眾不同的圣誕禮物和祝...
- 連續(xù)3天、30多場(chǎng)演出免費(fèi)看?和“思南Yé派對(duì)?夏至音樂日”一起嗨
- 天天百事通!2023年湖南省退休工資上調(diào)最新消息公布時(shí)間 湖...
- 6月份青海省養(yǎng)老金調(diào)整最新消息(2023青海省養(yǎng)老金上調(diào)方案細(xì)...
- 6月份89款國(guó)產(chǎn)游戲版號(hào)過審 上半年發(fā)放數(shù)量已超去年全年 今亮點(diǎn)
- “3小時(shí)高鐵圈”,“圈”出幾多精彩?
- “豐”景如畫 特色產(chǎn)業(yè)助力鄉(xiāng)村振興_環(huán)球熱點(diǎn)
- 今日視點(diǎn):別再只認(rèn)識(shí)文班亞馬了!NBA23屆模擬選秀:今年還有...
- 資訊:歐盤歐元/美元匯率走勢(shì)分析(2023年6月21日)
- 電腦如何連接打印機(jī)步驟(電腦如何連接打印機(jī)步驟)
- 【環(huán)球熱聞】2022年博羅上良民宿五一假期游玩推薦(博羅上良村)
- ppt是一種什么軟件 ppt屬于什么軟件_天天觀點(diǎn)
- 抖音卸載了聊天記錄還有嗎(抖音卸載了聊天記錄還有嗎怎么恢復(fù))
- 正宗啤酒鴨的制作方法(怎樣做啤酒鴨才好吃)_每日關(guān)注
- 銀企對(duì)接助發(fā)展,攜手共進(jìn)開新局——郵儲(chǔ)銀行淥口區(qū)支行參加...
- 原子內(nèi)部幾乎是虛空 但為什么我們?nèi)梭w看起來 卻很實(shí)在|焦點(diǎn)報(bào)道
- 視訊!這3大生肖女天生富貴命,旺夫益子相,越老越有錢花,有...
- 新冠疫苗滅活疫苗有哪幾種? 新冠疫苗哪一種是滅活疫苗
- 我國(guó)成為全球生態(tài)治理典范
今日要聞
- 重慶動(dòng)物園大熊貓吃特制香粽慶端午
- 熱點(diǎn)聚焦:價(jià)差預(yù)備費(fèi)計(jì)算公式及例題計(jì)算_價(jià)差預(yù)備費(fèi)的計(jì)算公式是如何推導(dǎo)出來的
- 新冠疫苗滅活疫苗有哪幾種? 新冠疫苗哪一種是滅活疫苗
- 公安部發(fā)布端午節(jié)假期道路交通安全預(yù)警
- 房地產(chǎn)投資吸引力哪些城市更強(qiáng)?機(jī)構(gòu):北上廣深仍是首選
- 子午線輪胎的標(biāo)識(shí)(子午線輪胎如何識(shí)別)
- 世界今日訊!現(xiàn)在做TikTok跨境電商還有市場(chǎng)嗎?
- 信息:2023粵港澳車展:911 GT3 RS實(shí)車首次公眾亮相
- 熱消息:進(jìn)大學(xué)之前,你還有這些事情需要做!
- 寧夏銀川燒烤店爆炸事故已造成31人死亡 世界資訊