1.环境
- python3.7
- selenium
- webdriver
- PIL
- Image
# -*- 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)) # 根据 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)) # 根据 div的长宽截图 # imgcod.save(\'aucthcodeN.png\')
注:代码中的验证码截取坐标,不一定是标准的,我是通过获取元素的坐标为基础参数,然后在main里面进行调试最终得到我适用的坐标
运行效果展示 code.png
运行截取的验证码效果展示 aucthcode.png
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自学编程网。