python获取验证码(pythonselenium获取短信验证码是字符和数字怎么读取数字)

1.python selenium 获取短信验证码是字符和数字怎么读取数字

读取短信需要在相应的手机上读取呀 由于工作需要,登录网站需要用到验证码。

最初是研究过验证码识别的,但是总是不能获取到我需要的那个验证码。直到这周五,才想起这事来,昨天顺利的解决了。

下面正题:Python版本:3.4.3 所需要的代码库:PIL,selenium,tesseract 先上代码:#coding:utf-8 import subprocess from PIL import Image from PIL import ImageOps from selenium import webdriver import time,os,sys def cleanImage(imagePath):image = Image.open(imagePath) #打开图片 image = image.point(lambda x: 0 if x<143 else 255) #处理图片上的每个像素点,使图片上每个点“非黑即白” borderImage = ImageOps.expand(image,border=20,fill='white') borderImage.save(imagePath) def getAuthCode(driver, url="mon/random" driver.get(captchaUrl) time.sleep(0.5) driver.save_screenshot("captcha.jpg") #截屏,并保存图片#urlretrieve(captchaUrl, "captcha.jpg") time.sleep(0.5) cleanImage("captcha.jpg") p = subprocess.Popen(["tesseract", "captcha.jpg", "captcha"], stdout=\ subprocess.PIPE,stderr=subprocess.PIPE) p.wait() f = open("captcha.txt", "r")#Clean any whitespace characters captchaResponse = f.read().replace(" ", "").replace("\n", "") print("Captcha solution attempt: " + captchaResponse) if len(captchaResponse) == 4:return captchaResponse else:return False def withoutCookieLogin(url=""):driver = webdriver.Chrome() driver.maximize_window() driver.get(url) while True:authCode = getAuthCode(driver, url) if authCode:driver.back() driver.find_element_by_xpath("//input[@id='orgCode' and @name='orgCode']").clear() driver.find_element_by_xpath("//input[@id='orgCode' and @name='orgCode']").send_keys("orgCode") driver.find_element_by_xpath("//input[@id='account' and @name='username']").clear() driver.find_element_by_xpath("//input[@id='account' and @name='username']").send_keys("username") driver.find_element_by_xpath("//input[@type='password' and @name='password']").clear() driver.find_element_by_xpath("//input[@type='password' and @name='password']").send_keys("password") driver.find_element_by_xpath("//input[@type='text' and @name='authCode']").send_keys(authCode) driver.find_element_by_xpath("//button[@type='submit']").click() try:time.sleep(3) driver.find_element_by_xpath("//*[@id='side-menu']/li[2]/ul/li/a").click() return driver except:print("authCode Error:", authCode) driver.refresh() return driver driver = withoutCookieLogin("mand as "tesseract". If thisisn't the case, for example because tesseract isn't in your PATH, you willhave to change the "tesseract_cmd" variable at the top of 'tesseract.py'.Under Debian/Ubuntu you can use the package "tesseract-ocr".Installing via pip: See the [pytesseract package page](hi/pytesseract) ```$> sudo pip install pytesseract 翻译一下:a、Python-tesseract支持python2.5及更高版本;b、Python-tesseract需要安装PIL(Python Imaging Library) ,来支持更多的图片格式;c、Python-tesseract需要安装tesseract-ocr安装包,具体参看上一篇博文。

综上,Pytesseract原理:1、上一篇博文中提到,执行命令行 tesseract.exe 1.png output -l eng ,可以识别1.png中文字,并把识别结果输出到output.txt中;2、Pytesseract对上述过程进行了二次封装,自动调用tesseract.exe,并读取output.txt文件的内容,作为函数的返回值进行返回。二、pytesseract使用USAGE:```> try:> import Image> except ImportError:> from PIL import Image> import pytesseract> print(pytesseract.image_to_string(Image.open('test.png')))> print(pytesseract.image_to_string(Image.open('test-european.jpg'),))可以看到:1、核心代码就是image_to_string函数,该函数还支持-l eng 参数,支持-psm 参数。

用法:image_to_string(Image.open('test.png'),lang="eng" config="-psm 7")2、pytesseract里调用了image,所以才需要PIL,其实tesseract.exe本身是支持jpeg、png等图片格式的。实例代码,识别某公共网站的验证码(大家千万别干坏事啊,思虑再三,最后还是隐掉网站域名,大家去找别的网站试试吧……): View Code三、pytesseract代码优化上述程序在windows平台运行时,会发现有黑色的控制台窗口一闪而过的画面,不太友好。

略微修改了pytesseract.py(C:\Python27\Lib\site-packages\pytesseract目录下),把上述过程进行了隐藏。# modified by zhongtang hide console window# new codeIS_WIN32 = 'win32' in str(sys.platform).lower()if IS_WIN32:startupinfo = subprocess.STARTUPINFO()startupinfo.dwFlags |= subprocess.STARTF_.wShowWindow = subprocess.SW_HIDEproc = subprocess.Popen(command,stderr=subprocess.PIPE,startupinfo=startupinfo)'''# old codeproc = subprocess.Popen(command,stderr=subprocess.PIPE)'''# modified end为了方便初学者,把pytesseract.py也贴出来,高手自行忽略。

View Code。

python获取验证码

转载请注明出处代码入门网 » python获取验证码(pythonselenium获取短信验证码是字符和数字怎么读取数字)

资讯

python文件版本(Python的这几个版本区别)

阅读(30)

本文主要为您介绍python文件版本,内容包括Python的这几个版本区别,Python的这几个版本区别,python文件和解释器版本不同如何解决。系统区别:Download Windows X86 可供电脑系统32位使用。2、Download Windows X86-64 可供电脑

资讯

python取最大值(python中如何取一列数最大值)

阅读(38)

本文主要为您介绍python取最大值,内容包括python中如何取一列数最大值,python中如何取一列数最大值,python如何求最大值最小值。如果是从列表中找最大值,则可以使用max(),如:In [279]: a = range(10)In [280]: max(a)Out[

资讯

pythonwmi安装(windowspython怎样安装freetype)

阅读(38)

本文主要为您介绍pythonwmi安装,内容包括python导入wmi模块失败,python怎么安装xlrd,windowspython怎样安装freetype。现在需要安装一个matplotlib模块,首先使用的easy_install matplotlib安装提示错误:缺少 libpng fr

资讯

pythonopencvsift(python哪个版本opencv可以直接调用sift)

阅读(40)

本文主要为您介绍pythonopencvsift,内容包括python哪个版本opencv可以直接调用sift,求opencv实现sift算法的程序,我要用python实现捕获鼠标和键盘操作,并运用sift识别图像需要哪些模。这几天继续在看Lowe大神的SIFT神作,看的眼花手脚抽筋。

资讯

list替换python(Python里面如何实现tuple和list的转换)

阅读(34)

本文主要为您介绍list替换python,内容包括python替换list元素,列表alist中有很多0数字,要替换成1,python列表,如何批量查找替换,Python中怎么把list转换为字符串。list转为tuple:temp_list = [1,2,3,4,5]将temp_list进行强制转换:tuple(temp

资讯

pythonujson(reportlab怎么安装)

阅读(43)

本文主要为您介绍pythonujson,内容包括pythonjson数据怎么获取数据,Python中json的取值,reportlab怎么安装。1. 先安装pipa) https://pip.pypa.io/en/latest/installing.htmlb) 获取上面网址的g

资讯

pythonvimwindows(python在linux和windows的区别)

阅读(37)

本文主要为您介绍pythonvimwindows,内容包括在windows下怎么用vim运行python,如何在windows下实现vim与python的交互,非常新的手请教vim编写python的问题。python是一种对缩进有严格要求的语言, Python脚本可以使用非常多的工具进行编写,笔者

资讯

python找最大(python如何将一串数字找出里面最大和最小)

阅读(50)

本文主要为您介绍python找最大,内容包括python如何将一串数字找出里面最大和最小,python找最大值,Python用while循环在一组数中找出最大值,力求简单。目标:我们的目标是把一串数字拆开,查找最大值和最小值做法:1. 将数值转化为字符串2. 将字符

资讯

python3索引(如何用Python建立索引)

阅读(42)

本文主要为您介绍python3索引,内容包括如何用Python建立索引,如何用Python建立索引建立索引:首先输入100行字符串,用于构建,python如何将列表作为列表的索引。import repatt = re.compile("\w+")def makeIndex(filename):index = {}w

资讯

pythonsetdefault(python中.setdefault是什么)

阅读(26)

本文主要为您介绍pythonsetdefault,内容包括python中.setdefault()是什么,python中.setdefault()是什么,python关于dict中的setdefault的问题。>> trainSet={}>>> trainSet.setdefault(1,2) # 给字典trainSet 设置键为1 值为2的键

资讯

python获取文件修改时间(python中如何获得文件的修改时间)

阅读(25)

本文主要为您介绍python获取文件修改时间,内容包括python中如何获得文件的修改时间,如何在Python中获取文件创建和修改日期/时间,python中怎样获取文件的修改时间及其他系统信息状态。我们通过文件属性的获取,os.stat() 方法:>>>import os>>>s

资讯

python文件版本(Python的这几个版本区别)

阅读(30)

本文主要为您介绍python文件版本,内容包括Python的这几个版本区别,Python的这几个版本区别,python文件和解释器版本不同如何解决。系统区别:Download Windows X86 可供电脑系统32位使用。2、Download Windows X86-64 可供电脑

资讯

python取最大值(python中如何取一列数最大值)

阅读(38)

本文主要为您介绍python取最大值,内容包括python中如何取一列数最大值,python中如何取一列数最大值,python如何求最大值最小值。如果是从列表中找最大值,则可以使用max(),如:In [279]: a = range(10)In [280]: max(a)Out[

资讯

pythonwmi安装(windowspython怎样安装freetype)

阅读(38)

本文主要为您介绍pythonwmi安装,内容包括python导入wmi模块失败,python怎么安装xlrd,windowspython怎样安装freetype。现在需要安装一个matplotlib模块,首先使用的easy_install matplotlib安装提示错误:缺少 libpng fr

资讯

pythonopencvsift(python哪个版本opencv可以直接调用sift)

阅读(40)

本文主要为您介绍pythonopencvsift,内容包括python哪个版本opencv可以直接调用sift,求opencv实现sift算法的程序,我要用python实现捕获鼠标和键盘操作,并运用sift识别图像需要哪些模。这几天继续在看Lowe大神的SIFT神作,看的眼花手脚抽筋。

资讯

list替换python(Python里面如何实现tuple和list的转换)

阅读(34)

本文主要为您介绍list替换python,内容包括python替换list元素,列表alist中有很多0数字,要替换成1,python列表,如何批量查找替换,Python中怎么把list转换为字符串。list转为tuple:temp_list = [1,2,3,4,5]将temp_list进行强制转换:tuple(temp

资讯

pythonujson(reportlab怎么安装)

阅读(43)

本文主要为您介绍pythonujson,内容包括pythonjson数据怎么获取数据,Python中json的取值,reportlab怎么安装。1. 先安装pipa) https://pip.pypa.io/en/latest/installing.htmlb) 获取上面网址的g

资讯

python测试平台(Python平台)

阅读(35)

本文主要为您介绍python测试平台,内容包括求推荐一个python+selenium做web自动化的平台.,Python平台,中国十大软件测试网站。官方主页 : http://www.python.org/ For windows的 python解释器 (包括tkInterGUI开发

资讯

pythondll指针(怎样用python调用dll)

阅读(1)

本文主要为您介绍pythondll指针,内容包括python中如何查看dll文件中的函数,如何用python调用应用程序的.dll文件,回调函数指针在python中怎么用。可以的,python中一般有两种方法调用DLL中的函数。1.直接使用函数名,函数名可以用dependencywal

资讯

python日志统计(python有没有通用的日志统计系统)

阅读(1)

本文主要为您介绍python日志统计,内容包括python有没有通用的日志统计系统,如何用python,每隔5分钟对实时日志做统计处理,如何用python分析网站日志。logging模块import logging# 配置日志,输出到控制台logging.basicConfig(level=loggin

资讯

pythonmultiply(Python实现输出1*2*3*4*5)

阅读(1)

本文主要为您介绍pythonmultiply,内容包括python中的multiply函数怎么用,numpy中multiply函数怎么用,Python实现输出1*2*3*4*5100的和。究竟是和还是积呢?如果是积的话,我们设计的代码如下,有注释multi_num = 1 # 乘法结果初始化for i in rang

资讯

pythongui界面(python图形化界面设计tkinter)

阅读(1)

本文主要为您介绍pythongui界面,内容包括python图形化界面设计tkinter,python编写gui界面,pythongui图形界面。python提供了多个图形开发界面的库,几个常用Python GUI库如下:Tkinter: Tkinter模块("Tk 接口")是Py

资讯

pythonintellij(intellijidea怎么编写python程序打包发送到spark)

阅读(1)

本文主要为您介绍pythonintellij,内容包括如何使用intellijidea编写python,intellij可以跑python吗,如何使用idea开发python。,客户端和虚拟集群中hadoop、spark、scala的安装目录是一致的,这样开发的spark应用程序的时候不需要打包spark开发

资讯

aucpython(auc论文里的怎么计算pythonsvm)

阅读(1)

本文主要为您介绍aucpython,内容包括auc论文里的怎么计算pythonsvm,pythontensorflow怎么添加auc,怎么用Python软件算模型的AUC和ROC曲线啊。利用Python画ROC曲线,以及值的计算\ 前言 R

资讯

python三元运算符if(python没有三元运算符吗)

阅读(1)

本文主要为您介绍python三元运算符if,内容包括python没有三元运算符吗,什么时候三元运算符python,如何用Python的if条件运算符去求三个值中最大的值,并返回最大值的。Python没有三目运算符(?:),但也有类似的替代方案,那就是true_part if conditio