热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python中selenium自动化windows安装Pillow

操作系统:windows 10 安装






操作系统:windows 10

安装模块:Pillow pytesseract tesseract-ocr

1、首先安装Pillow,可以选择安装windows版的安装包

   下载地址:https://pypi.org/project/Pillow/#files

   此处我选择安装 Pillow-6.1.0.win-amd64-py2.7.exe

2、安装完成后再进行安装  pytesseract 

   下载地址:https://pypi.org/project/pytesseract/#files

   解压安装包,然后切换到根目录,执行 : python setup.py install

3、接着继续安装 tesseract-ocr

   下载地址:https://download.csdn.net/download/wangleittt/10358361

    安装完成后,设置环境变量

    

python中 selenium自动化windows安装Pillow、pytesseract实现识别图片验证码登录_第1张图片

    TESSDATA_PREFIX = C:\Program Files (x86)\Tesseract-OCR

    然后在Path 新增 C:\Program Files (x86)\Tesseract-OCR

    

python中 selenium自动化windows安装Pillow、pytesseract实现识别图片验证码登录_第2张图片

以上即完成了环境的安装,接下来就愉快的玩耍代码吧!

附上我的代码:


#!/usr/bin/python
#-*- coding:utf8 -*-
# encoding: utf-8
# auth by huwj 2019-07-29
from selenium import webdriver
import time
from PIL import Image, ImageEnhance
from pytesseract import image_to_string
URL = "http://www.xxxx.com"
user = 'hu_wen'
password = '123456'
def login():
try:
# 静默模式
# option = webdriver.ChromeOptions()
# option.add_argument('headless')
# driver = webdriver.Chrome(chrome_optiOns=option)
# 实例化出一个chrome浏览器
driver = webdriver.Chrome()
# 设置浏览器窗口的位置和大小
driver.maximize_window()
driver.get(URL)
time.sleep(2)
# 通过使用选择器选择到表单元素进行模拟输入和点击按钮提交
driver.find_element_by_id('txt_user').clear()
driver.find_element_by_id('txt_user').send_keys(user)
driver.find_element_by_id('txt_pwd').clear()
driver.find_element_by_id('txt_pwd').send_keys(password)
# 识别图片验证码
driver.save_screenshot('D://360Downloads/All.png') # 截取当前网页,该网页有我们需要的验证码
imgelement = driver.find_element_by_id('verifyImg')
location = imgelement.location # 获取验证码x,y轴坐标
size = imgelement.size # 获取验证码的长宽
rangle = (int(location['x']), int(location['y']), int(location['x'] + size['width']),
int(location['y'] + size['height'])) # 写成我们需要截取的位置坐标
i = Image.open("D://360Downloads/All.png") # 打开截图
result = i.crop(rangle) # 使用Image的crop函数,从截图中再次截取我们需要的区域
result.save('D://360Downloads/result.png')
text = image_to_string('D://360Downloads/result.png', 'eng').strip()
print("pic_text:", text)
driver.find_element_by_id("txt_verifyCode").send_keys(text)
driver.find_element_by_id('btn_login').click()
time.sleep(6)
return driver
except Exception, e:
print e
driver.quit()


 

 








推荐阅读
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 深入理解Tornado模板系统
    本文详细介绍了Tornado框架中模板系统的使用方法。Tornado自带的轻量级、高效且灵活的模板语言位于tornado.template模块,支持嵌入Python代码片段,帮助开发者快速构建动态网页。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 本文介绍如何通过注册表编辑器自定义和优化Windows文件右键菜单,包括删除不需要的菜单项、添加绿色版或非安装版软件以及将特定应用程序(如Sublime Text)添加到右键菜单中。 ... [详细]
  • 本文介绍了如何在C#中启动一个应用程序,并通过枚举窗口来获取其主窗口句柄。当使用Process类启动程序时,我们通常只能获得进程的句柄,而主窗口句柄可能为0。因此,我们需要使用API函数和回调机制来准确获取主窗口句柄。 ... [详细]
  • 离线环境下的Python及其第三方库安装指南
    在项目开发中,有时会遇到电脑只能连接内网或完全无法联网的情况。本文将详细介绍如何在这种环境下安装Python及其所需的第三方库,确保开发工作的顺利进行。 ... [详细]
  • 本文介绍了如何在C#应用程序中有效隐藏SQLCMD命令行窗口,确保程序运行时不会弹出黑色命令提示符窗口。 ... [详细]
  • 本文介绍了如何通过 Maven 依赖引入 SQLiteJDBC 和 HikariCP 包,从而在 Java 应用中高效地连接和操作 SQLite 数据库。文章提供了详细的代码示例,并解释了每个步骤的实现细节。 ... [详细]
  • 本文详细介绍了如何在CentOS 7操作系统上安装和配置Grafana,包括必要的依赖项安装、插件管理以及服务启动等步骤。 ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 选择适合生产环境的Docker存储驱动
    本文旨在探讨如何在生产环境中选择合适的Docker存储驱动,并详细介绍不同Linux发行版下的配置方法。通过参考官方文档和兼容性矩阵,提供实用的操作指南。 ... [详细]
author-avatar
赵博钧石博
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有