基于反爬蟲的場景茎辐,有一些敏感元素例如手機(jī)號碼,有一些網(wǎng)站是直接用圖片的方式展示峡扩,這樣就沒有辦法爬炔湓健;還有一種是產(chǎn)品只有手機(jī)端教届,由于網(wǎng)絡(luò)的傳送過程是通過加密傳輸响鹃,即使截取了報文,也沒有辦法進(jìn)行解密巍佑,這個時候可以通過對手機(jī)的界面截圖茴迁,進(jìn)行圖片識別。
1. 思路
通過屏幕的截屏萤衰,保存要處理的界面的圖片,通過定位到要獲取信息的元素的位置猜旬,通過屬性獲取該元素的坐標(biāo)脆栋,然后在之前保存的圖片上,根據(jù)坐標(biāo)截圖對應(yīng)的區(qū)間洒擦,然后通過pytesseract的包的方法進(jìn)行圖片識別椿争。
2. 依賴的包安裝
安裝Pillow
pip install Pillow
安裝tesseract-ocr
github地址: https://github.com/tesseract-ocr/tesseract
直接安裝就可以
安裝pytesseract
pip install pytesseract
3. 代碼實現(xiàn)
screenshotPath="e:\pythonimage\image01.png"
saveImagePath="E:\pythonimage\yanzhengma01.png"
webdriver.save_screenshot(screenshotPath)
imglement = webdriver.find_element_by_id("genCheckCode") #定位驗證碼
location = imglement.location #獲取驗證碼X,Y的坐標(biāo)
size = imglement.size #獲取驗證碼的長寬
#寫成我們需要的位置坐標(biāo)
rangle = (int(location['x'])+10,int(location['y']),int(location['x']+size['width']-10),int(location['y']+size['height']))
image = Image.open((screenshotPath)) #打開截圖
frame4 = image.crop(rangle) #使用image的crop函數(shù),從截圖中再次截取我們的區(qū)域
frame4.save(saveImagePath)
qq = Image.open(saveImagePath)
text = pytesseract.image_to_string(qq).strip() # 使用image_to_string識別驗證碼
frame4.close
image.close()
qq.close()
歡迎關(guān)注公眾:sjyy_python