Python用代码实现验证码登录
2019-04-10 16:03
288 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_40539525/article/details/89185834
由于自己的工作需要,经常会用到这种需要输入图形验证码的登录,网上也有很多方式。
经常会遇到需要模拟手工操作输入验证的时候,也看了很多的方法,最后想了一下,决定写一个识别图像验证码的脚本。
其实也就是将有图形验证码的页面截图下来,在使用Python的PIL库将验证码识别成可操作的对象。
代码如下:
# -*- coding: UTF-8 -*_ from PIL import Image from pytesseract import * import PIL.ImageOps from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.get(url) #url是你的网址 driver.get_screenshot_as_file(r'D:\PIC\PIC.png') #将该页面截图保存 path = r'D:\PIC\PIC.png' #导入有验证码的图片 im1 = Image.open(path) #图片的宽度和高度 img_size = im1.size print("图片宽度和高度分别是{}".format(img_size)) ''' 裁剪:传入一个元组作为参数 元组里的元素分别是:(距离图片左边界距离x, 距离图片上边界距离y,距离图片左边界距离+裁剪框宽度x+w,距离图片上边界距离+裁剪框高度y+h) ''' #截取图片中一块有验证码的区域,这个位置需要自己去调整 x = 1311 y = 459 w = 115 h = 52 region = im1.crop((x, y, x + w, y + h)) region.save("D:/PIC/test1.png")#保存 def initTable(threshold=140): table = [] for i in range(256): if i < threshold: table.append(0) else: table.append(1) return table im = Image.open('G:/PIC/test1.png') #图片的处理过程 im = im.convert('L') binaryImage = im.point(initTable(), '1') im1 = binaryImage.convert('L') im2 = PIL.ImageOps.invert(im1) im3 = im2.convert('1') im4 = im3.convert('L') #将图片中字符裁剪保留 box = (10,10,110,48) region = im.crop(box) #将图片字符放大 out = region.resize((128,49)) code = pytesseract.image_to_string(out)#code就是图形中的验证码 print(code) #print (out.show())
相关文章推荐
- 用Python实现china-pub登录验证码的识别--代码版
- Python Selenium Cookie 绕过验证码实现登录示例代码
- Python爬虫实现验证码登录代码实例
- ssh批量登录并执行命令的python实现代码
- Python使用Socket(Https)Post登录百度的实现代码
- ssh批量登录并执行命令的python实现代码
- PHP实现注册登录功能完整教程及代码 含验证码
- selenium和Python3.6实现招聘狗网站自动识别验证码登录、列表页、详情页爬取
- 后台登录(包含验证码)的php代码实现
- Python模拟登录验证码(代码简单)
- 登录验证码JAVA代码实现
- Python Selenium Cookie 绕过验证码实现登录
- python flask 用pillow实现登录验证码验证
- asp带验证码的用户登录及校验代码实现
- java登录验证码实现代码
- 用Python实现china-pub登录验证码的识别
- Python模拟登录验证码(代码简单)
- python django 实现验证码的功能实例代码
- java登录验证码实现代码
- python实现带验证码网站的自动登陆实现代码