Python驗證碼截取識別代碼實例
1.環(huán)境
- python3.7
- selenium
- webdriver
- PIL
- Image
2.下面demo是截取“去哪兒”官網(wǎng)的驗證碼
# -*- coding=utf-8 -*-
# CodeDemo.py
# PyCharm Slade 2019/7/20
# import selenium,os
from selenium import webdriver
from PIL import Image
def aucthcode(coderddr):
"""
傳參驗證碼的Xpath
頁面全圖為'code.png' 命名這個你們開心就好
驗證碼截圖名為"aucthcode.png
:param coderddr:
:return:
"""
driver.save_screenshot('code.png')
element = driver.find_element_by_xpath(coderddr) # 獲取驗證碼的div位置
left = element.location['x'] +280
top = element.location['y'] +81
right = left + element.size['width'] + int(13)
bottom = top + element.size['height'] + int(2)
img = Image.open('code.png')
imgcod = img.crop((left,top,right,bottom)) # 根據(jù) div的長寬截圖
imgcod.save('aucthcode.png')
print((left,top,right,bottom))
if __name__ == '__main__':
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://user.qunar.com/passport/login.jsp')
driver.find_element_by_css_selector('a.pwd-login').click()
aucthcode('//*[@id="captcha"][1]/p[1]')
driver.quit()
# img = Image.open('code.png')
# imgcod = img.crop((1392,393,1490,425)) # 根據(jù) div的長寬截圖
# imgcod.save('aucthcodeN.png')
注:代碼中的驗證碼截取坐標(biāo),不一定是標(biāo)準(zhǔn)的,我是通過獲取元素的坐標(biāo)為基礎(chǔ)參數(shù),然后在main里面進(jìn)行調(diào)試最終得到我適用的坐標(biāo)
運行效果展示 code.png

運行截取的驗證碼效果展示 aucthcode.png

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python中復(fù)數(shù)的共軛復(fù)數(shù)知識點總結(jié)
在本篇內(nèi)容里小編給大家整理的是關(guān)于python中復(fù)數(shù)的共軛復(fù)數(shù)知識點總結(jié),有需要的朋友們可以學(xué)習(xí)下。2020-12-12
在django中使用apscheduler 執(zhí)行計劃任務(wù)的實現(xiàn)方法
這篇文章主要介紹了如何在django中使用apscheduler 執(zhí)行計劃任務(wù),本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02
python實現(xiàn)在windows服務(wù)中新建進(jìn)程的方法
這篇文章主要介紹了python實現(xiàn)在windows服務(wù)中新建進(jìn)程的方法,涉及Python針對Windows服務(wù)與進(jìn)程操作的相關(guān)技巧,需要的朋友可以參考下2015-06-06
selenium框架中driver.close()和driver.quit()關(guān)閉瀏覽器
這篇文章主要介紹了selenium框架中driver.close()和driver.quit()關(guān)閉瀏覽器,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
python獲取天氣接口給指定微信好友發(fā)天氣預(yù)報
這篇文章主要介紹了python獲取天氣接口給指定微信好友發(fā)天氣預(yù)報的步驟,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-12-12
解決pytorch 交叉熵?fù)p失輸出為負(fù)數(shù)的問題
這篇文章主要介紹了解決pytorch 交叉熵?fù)p失輸出為負(fù)數(shù)的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07

