1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python+selenium+pytesseract实现自动识别简单验证码 并且自动登陆网站

python+selenium+pytesseract实现自动识别简单验证码 并且自动登陆网站

时间:2019-02-12 20:25:44

相关推荐

python+selenium+pytesseract实现自动识别简单验证码 并且自动登陆网站

文章目录

功能介绍首先安装需要的库编写代码

功能介绍

本文章实现自动识别验证码并且自动登陆网站,完全不需要人工操作

Python版本:3.6

Selenium:selenium 是一个用于 Web 应用程序测试的工具,支持多平台、多浏览、多语言去实现自动化测试。

Pillow:python中进行图像处理的库

Pytesseract:图像识别工具

首先安装需要的库

1、安装Python就不用写啦,不知道的可以去搜一下

2、安装Selenium库:win+r输入cmd,pip install selenium

3、安装Pillow库:win+r输入cmd,pip install pillow

4、安装Pytesseract:pip install pytesseract

5、 安装tesseract-ocr :因为 pytesserat 依赖于 tesseract-ocr ,否则无法使用。tesseract-ocr GitHub 官方地址,请根据自己电脑和操作系统版本自行下载

6、修改pytesseract.py文件:不修改的话进行图片识别的时候可能会报错。找到python的安装路径下的pytesseract(例如:C:\Python3.7.1\Lib\site-packages\pytesseract)用任意编辑器打开,查找tesseract_cmd,将原来的tesseract_cmd = 'tesseract'改为:tesseract_cmd = 'OCR的安装路径下的tessract.exe'(例如tesseract_cmd = 'C:\Program Files\Tesseract-OCR\\tesseract.exe'

有的地方需要转义 例如\tesseract.exe

7、安装浏览器驱动:使用Selenium库需要下载对应的驱动

点击此处下载浏览器驱动

安装 chrome 浏览器驱动,下载 ChromeDriver_win64.zip(根据自己系统下载不同的版本驱动),解压

得到 chromedriver.exe 文件放到环境变量 Path 所设置的目录下,如果前面我们已经将(C:\Python34 )

添加到了环境变量 Path 所设置的目录,可以将 chromedriver.exe 放到 C:\Python34\目录下。

编写代码

功能实现代码:

import timefrom selenium import webdriver# 打开谷歌浏览器from functions import loginbrowser = webdriver.Chrome()# 浏览器最大化browser.maximize_window()url = "/#/"browser.get(url)print("已经打开助学贷款官方网站")ID = browser.find_element_by_xpath("//*[@id='app']/div[1]/div[1]/div/div[2]/div[2]/input")ID.clear()time.sleep(5)ID.send_keys("自己注册的身份证号")print("已经输入身份证号")password = browser.find_element_by_xpath("//*[@id='app']/div[1]/div[1]/div/div[2]/div[3]/input")password.clear()time.sleep(5)password.send_keys("自己的登陆密码")print("已经输入了密码")# 登陆result = login(browser, url)while 0 < 1:if result != 0:login(browser, url)else:breaktime.sleep(10)# 注销browser.find_element_by_xpath("//*[@id='bs-example-navbar-collapse-1']/ul/li[2]/a").click()print("注销登陆")time.sleep(3)browser.find_element_by_xpath("//*[@id='app']/div[1]/div[3]/div/div/button[1]").click()time.sleep(3)# 退出browser.quit()print("关闭浏览器")

functions 代码:

import timefrom PIL import Imageimport pytesseract as pytesseractdef picture(browser):print("现在开始识别验证码")# 截图保存browser.save_screenshot("picture.png")ce = browser.find_element_by_xpath("//*[@id='app']/div[1]/div[1]/div/div[2]/div[4]/div[2]/input")print(ce.location)left = ce.location["x"]top = ce.location["y"]right = ce.size["width"] + leftheight = ce.size["height"] + topim = Image.open("picture.png")img = im.crop((left, top, right, height))img.save("picture2.png")print("截取图片结束,开始识别")image1 = Image.open('picture2.png')text = pytesseract.image_to_string(image1)print(text)return textdef login(browser, url):print("输入查询到的二维码")yzm = browser.find_element_by_xpath("//*[@id='app']/div[1]/div[1]/div/div[2]/div[4]/div[1]/input")yzm.clear()yzm.send_keys(picture(browser))time.sleep(5)print("点击登录按钮")login_first = browser.find_element_by_xpath("//*[@id='app']/div[1]/div[1]/div/div[2]/div[5]/input")login_first.click()time.sleep(3)print("获取当前页面的URL")url_first = browser.current_urlprint(url_first)print("登陆页面URL:%s" % url)if url != url_first:print("登陆成功")time.sleep(3)# 查看申请进度browser.find_element_by_xpath("//*[@id='app']/div[1]/div[2]/div[2]/div[1]/div/div/div/div[2]/div[1]/div[1]/div[3]/button").click()print("正在查看申请进度")return 0else:print("登陆失败,重新登陆")return 1

到此执行第一的文件就可以自动打开助学贷款官网,并且实现自动登陆,以及其他操作。如有疑问请多多交流。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。