当前位置: 首页 > news >正文

做网站空间哪家好/百度广告投放代理商

做网站空间哪家好,百度广告投放代理商,青岛做外贸网站,设计师网上兼职画图的工作验证码识别自动化在一些场景给人带来方便,但是也有一些技术上的难题,比如登录时候会输入验证码。这篇就写一下关于验证码的处理。如果是测试环境,就很简单了,常用的两种办法:1.让开发把验证码注释掉。2.让开发设置一个…

验证码识别

自动化在一些场景给人带来方便,但是也有一些技术上的难题,比如登录时候会输入验证码。这篇就写一下关于验证码的处理。

如果是测试环境,就很简单了,常用的两种办法:

1.让开发把验证码注释掉。

2.让开发设置一个万能验证码,只要输入这个验证码就能通过。(感觉这个比较靠谱)

如果是生产环境,再用上面的办法就不太好了,不过还有另外两种办法(如果不嫌麻烦,测试环境也可以用):

1.使用cookie跳过登录。

2.使用验证码识别技术。

看第一种办法,点这里。

第二种研究验证码识别的时间比较长了,遇到的一些坑记得不太清了,就写一下正常的流程,细心一些应该都不会遇到坑。

注意(敲黑板):这是Python3能实现的,python2不能用。我这种实现方法仅能识别特别清楚的验证码,如果验证码图片干扰很多,就别看了,实现不了。我用的是个实验的网址,验证码能识别一小部分,下面先放两张识别效果。

第一张现实和理想差距有点大,我最多在代码里去掉特殊符号,剩下识别错了真是没办法了。

仍然想试的可以继续往下走,我这是生产环境, 可以在这里试验,如果能注册一下就更好了。(关注微信公众号,周五可能会有特价机票哦)打了一个广告。

首先得装环境,识别验证码已经不是selenium自己能办到的了。cmd下输入下面命令:

pip install Pillow(如果报错,输入:pip.exe install Pillow)

pip install pytesseract(如果报错,输入:pip.exe install pytesseract)

第一个是对图片处理的包,第二个是识别验证码的包,还需要下载个包,百度搜索:Tesseract-OCR,下载解压到电脑,可以不放在C盘,这个好像也没有位数限制。

解压到电脑以后需要加上环境变量,在path里加上Tesseract-OCR的路径,然后在pycharm里(我只用这个,别的工具什么情况我不知道),External Libraries->Python 3.x->Lib->site-packages->pytesseract->pytesseract.py里面修改一段代码:

由于斜杠是转义字符,我就用了双斜杠,一定要看清不是只加到环境变量的那个路径,后面要加到tesseract.exe,我只记得这一个坑,执行脚本总是提示我未安装或者没配置环境变量。准备工作就这么多,下面我放上我的代码,供参考。

# -*- coding: utf-8 -*-

# python 3.7.0

#

import re

import requests

import pytesseract

from selenium import webdriver

from PIL import Image, ImageEnhance

import time

#

driver=webdriver.Chrome()

driver.maximize_window()

driver.get("https://higo.flycua.com/hp/html/login.html")

driver.implicitly_wait(30)

#下面用户名和密码涉及到我个人信息,所以隐藏

driver.find_element_by_name('memberId').send_keys('xxxxxx')

driver.find_element_by_name('password').send_keys('xxxxxx')

#因为验证码不能一次就正确识别,我加了循环,一直识别,直到登录成功

while True:

#清空验证码输入框,因为可能已经识别过一次了,里面有之前识别的错的验证码

driver.find_element_by_name("verificationCode").clear()

# 截图或验证码图片保存地址

screenImg = "H:\screenImg.png"

# 浏览器页面截屏

driver.get_screenshot_as_file(screenImg)

# 定位验证码位置及大小

location = driver.find_element_by_name('authImage').location

size = driver.find_element_by_name('authImage').size

#下面四行我都在后面加了数字,理论上是不用加的,但是不加我这截的不是验证码那一块的图,可以看保存的截图,根据截图修改截图位置

left = location['x']+530

top = location['y']+175

right = location['x'] + size['width']+553

bottom = location['y'] + size['height']+200

# 从文件读取截图,截取验证码位置再次保存

img = Image.open(screenImg).crop((left, top, right, bottom))

#下面对图片做了一些处理,能更好识别一些,相关处理再百度看吧

img = img.convert('RGBA') # 转换模式:L | RGB

img = img.convert('L') # 转换模式:L | RGB

img = ImageEnhance.Contrast(img) # 增强对比度

img = img.enhance(2.0) # 增加饱和度

img.save(screenImg)

# 再次读取识别验证码

img = Image.open(screenImg)

code = pytesseract.image_to_string(img)

#打印识别的验证码

#print(code.strip())

#识别出来验证码去特殊符号,用到了正则表达式,这是我第一次用,之前也没研究过,所以用的可能粗糙,请见谅

b=''

for i in code.strip():

pattern = re.compile(r'[a-zA-Z0-9]')

m = pattern.search(i)

if m!=None:

b+=i

#输出去特殊符号以后的验证码

print (b)

#把b的值输入验证码输入框

driver.find_element_by_name("verificationCode").send_keys(b)

#点击登录按钮

driver.find_element_by_class_name('login-form-btn-submit').click()

#定时等待5秒,如果验证码识别错误,提示验证码错误需要等一会儿才能继续操作

time.sleep(5)

#获取cookie,并把cookie转化为字符串格式

cookie1= str(driver.get_cookies())

print (cookie1)

#第二次用正则表达式,同样有点粗糙,代码实现的功能就是看cookie里是否有tokenId这个词,如果有说明登录成功,跳出循环,可以进行后面的自动化操作,如果没有,则表示登录失败,继续识别验证码

matchObj = re.search(r'tokenId', cookie1, re.M | re.I)

if matchObj:

print (matchObj.group())

break

else:

print ("No match!!")

print ('结束')

大概就是这些, 希望能有所帮助。

相关阅读

import java.awt.BasicStroke;

import java.awt.Color;

import java.awt.Font;

import java.awt.Graphics2D;

import java.awt.im

环境:springboot项目

思路:从后台生成图片,然后传输到前台显示,每次生成的验证码存储在session里

借鉴了别人用java生成图片的方法直

本人感觉用的比较好的验证码包,拿出来分享一下,傻瓜式教程,

安装步骤:

首先,登录网址packagist.org查找 laravel captcha,找到mews/capt

其实12306抢票之前有做过,近年来随着技术的发展AI的兴起,我也随波逐流,研究了下python深度学习,来实现12306全自动抢票工具。

1. 实现

天猫用户在使用天猫无忧购服务的时候会使用到天猫无忧购确认验证码。相信还有天猫用户都不知道这个是干什么的,为了帮大家详细的了

http://www.jmfq.cn/news/4992571.html

相关文章:

  • 网站建设中的技术问题/搜狗站长平台验证不了
  • 在iis搭建网站/百度地图网页版
  • 怎么在网站底部做备案号/技术培训机构排名前十
  • 深圳南山网站建设工作室/企业文化
  • 成都个人网站制作/长沙seo网站优化
  • 国外做机器人的网站/百度推广产品
  • 潍坊做网站张家口/重要新闻
  • 开一家网站建设公司有前景吗/百度如何推广网站
  • 容县网站开发/成都比较靠谱的seo
  • 商城的网站统计如何做/如何宣传自己的网站
  • jsp做网站框架/关键词搜索网站
  • 网站建设套餐/合肥seo排名优化
  • wordpress主题搜索/站长之家seo查询
  • 网站主页设计要点/爱站网站长seo综合查询工具
  • node mysql做动态网站/百度推广有效果吗
  • 初中毕业学网站开发工程师/网站分为哪几种类型
  • 网站导航栏动效怎么做的/东莞seo报价
  • 模版型网站是怎样的/网站排名提高
  • 长春建设招标网/网站查询seo
  • 长春专业网站建设价格/电商怎么做新手入门
  • 外国永久网站/厦门网络推广培训
  • 郑州做网站哪家好熊掌号/识图搜索在线 照片识别
  • 多用户网站管理系统/网络广告的特点
  • 网站开发的业务需求分析/外贸平台自建站
  • 做集群网站/搜索引擎优化排名培训
  • 政府查询网站建设方案/广州抖音seo公司
  • 韶关城乡建设部网站首页/硬件工程师培训机构哪家好
  • 找别人做网站需要注意什么/软文写手兼职
  • web做网站实训目的/百度主页网址
  • 做母婴网站/百度推广平台登录