文章目录
功能介绍首先安装需要的库编写代码功能介绍
本文章实现自动识别验证码并且自动登陆网站,完全不需要人工操作
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
到此执行第一的文件就可以自动打开助学贷款官网,并且实现自动登陆,以及其他操作。如有疑问请多多交流。