selenium我爱编程

Python自动化——识别验证码2,保存验证码图片

2017-12-21  本文已影响64人  努力学习的小白
最近发现小伙伴不会保存验证码图片。所以我这里以百度为例。
写了一个非常简单例子。
主要用到的是python下面的三个库
步骤如下:

1.通过selenium定位元素,获取元素的坐标的尺寸
2.截取全图
3.通过截取验证码元素的位置,获取验证码的图片

from selenium import webdriver
from PIL import Image
import time

#  打开一个谷歌浏览器的实例
b = webdriver.Chrome()
b.get("https://www.baidu.com/")
b.maximize_window() #  最大化浏览器
time.sleep(2)
# 获取元素的尺寸
size =  b.find_element_by_xpath("//*[@id=\"lg\"]/img").size
# 获取元素的坐标
location  =  b.find_element_by_xpath("//*[@id=\"lg\"]/img").location
# 截取全屏
b.save_screenshot('1.png')
# 设置好图片的位置
left = location['x']
upper = location['y']
right = size['width'] + location['x']
lower = size['height'] + location['y']
# 打开全屏,进行验证码截取
img = Image.open('1.png')
#  将图片的位置作为一个元祖传入
im = img.crop((left, upper, right, lower))
# 最后保存图片
im.save('img.png')
截取后的百度图片

再搭配上:http://www.jianshu.com/p/b609150d6f02 识别验证码这个教程。
就可以非常轻松的完成自动化验证码识别了。

上一篇下一篇

猜你喜欢

热点阅读