用ddddocr识别图形字符验证码
函数很简单,这里主要分享流程
目标
这是一个网站 的注册页面
找接口
先在抓包工具或者浏览器检查界面找到验证码的位置
测试
测试下重放,发现数据可以正常发送,那就拷贝headers里面的一些参数和cookie到Postman做测试
逐步添加headers信息直到能拿到数据
组合带带弟弟编码
拷贝python-requests代码到编译器,修改下即可
为什么是带带弟弟,因为他就叫这个名字
get_time_stamp13函数用于生成13位时间戳,作为文件名,文件会保存到本地进行比较
ddddocr的用法很简单,生成类的实例之后可以直接用,读取的是二进制数据,但是要注意这个包的安装必须装到主环境,虚拟环境安装会出错
with open(filename,'wb') as f:f.write(response.content)
ocr=ddddocr.DdddOcr()
decode_1=ocr.classification(response.content)
requests的url可以将url的https改为http,可以解决连接错误。
from datetime import datetime
import re
import timeimport ddddocr
import requestsdef get_time_stamp13():t=datetime.now()n3=str(t)[-6:-3]datetime_str = datetime.strftime(datetime.now(), '%Y-%m-%d %H:%M:%S')datetime_obj = datetime.strptime(datetime_str, '%Y-%m-%d %H:%M:%S')# 10位,时间点相当于从1.1开始的当年时间编号date_stamp = str(int(time.mktime(datetime_obj.timetuple())))# 3位,微秒date_stamp = date_stamp + n3return int(date_stamp)def readimage():ocr=ddddocr.DdddOcr()res=requests.get()ocr.classification(res.content)
import requestsurl = "http://passport.tuniu.com/ajax/captcha/v/1447825328.4607"payload={}
headers = {'Cookie': 'tuniu_partner=MTU1OCwwLCw2ZGYxN2I2Y2Q1NDQxMzk4OGU1OTllYzE0NzQzNjlhZA%3D%3D; tuniuuser_citycode=MTYxMQ%3D%3D; p_phone_400=4007-999-999; p_phone_level=0; p_global_phone=%2B0086-25-8685-9999; _tacau=MCwzOGRjOGU0NC1hNjZlLTJiODctODRiZC0yOWJkMzBmMDY1ZGQs; udid=tn-100-1635931987040-0d25a6f1-3c89-11ec-b13c-a11f56f54905; _tact=NzUzOGJiOGQtZDMyNS04YjE3LTU2M2ItMmI1NmU1ZGY2NmM0; _tacz2=taccsr%3Dbaidu%7Ctacccn%3D%28cpc%29%7Ctaccmd%3DSE%7Ctaccct%3D%28none%29%7Ctaccrt%3D%28none%29; _taca=1635931985752.1635931985752.1635931985752.1; _tacb=ZDQwMThjYTItZGQ0OC03ZWQwLTYyZjEtYThkNGE2NzZiMWZm; _tacc=1; PageSwitch=1%2C213612736; _pzfxuvpc=1635931987031%7C4911940592134903408%7C1%7C1635931987038%7C1%7C%7C9096756265259129179; _pzfxsfc=u10316631.k217654437386.a45692303164.pb; _ga=GA1.2.1140816901.1635931987; _gid=GA1.2.227309581.1635931987; Hm_lvt_fe3fbe4228e14b1544525f058df92f91=1635931987; Hm_lpvt_fe3fbe4228e14b1544525f058df92f91=1635931987; OLBSESSID=qv6rqvguelg9jpe5pof87cabn7; PcHomeVisit=1; smidV2=202111031733099a86aac40b61c24bf383873ee97d86ca006e90c6558c92510; MOBILE_APP_SETTING_OPEN-154=1; acw_tc=2f624a4316359319997322452e655bb2fde9fcef4deb18f95221f62773e160; PASSPORTSESSID=84d706599d4fca2731ebbd62df9eebae; tuniu-assist={%22show%22:false%2C%22audio%22:false%2C%22speed%22:%22middle%22%2C%22zomm%22:1%2C%22cursor%22:false%2C%22pointer%22:false%2C%22bigtext%22:false%2C%22overead%22:false%2C%22bgcolor%22:false}; _uab_collina=163593199983111888803387; fp_ver=4.7.3; BSFIT_EXPIRATION=1637216066128; BSFIT_OkLJUJ=FHMohPnE-rBR2cxk5jzg-YgPjJrYrLan; BSFIT_DEVICEID=HXbehRnlOkhIHzzo4pE4Mvu9g71_5oAA3aRMpu1IQLZ7EKVSLjgOHe8N9LzewBS-FGAxhH684Fj-c0xfjHKuw84BkZ82bilae-hKd8cUpgBLHGjusXR_NmvBdN33AkzTOYGtRhNmd6FVUYQQgmIePfwyXMUB7XOJ; MOBILE_APP_SETTING_STATE-154=CLOSE; ssxmod_itna=mq0xnCyD9DzOG780P7Ki=w3iIMKDuv2cnK2eDsimDSxGKidDqxBWqQRHq7y5x0=AUlERm3dFGSy44fBCxc+dxVGbyIKDU4i8DCwuwKD4+KGwD0eG+DD4DWDmWHDnxAQDjcKGWDbO=DmDGAc3qDgDYQDGup6D7QDIk=q4gwcDCd4EwrgfDiYG7=DjurD/S+rEerb=ZwZiEQDzMaDtutSFdtKx0p1QDp=QAhLtOqaK0DwXB44fD7Y4g4qm8O57tS=GB84Yr4jmBqDGROoDU4xD; ssxmod_itna2=mq0xnCyD9DzOG780P7Ki=w3iIMKDuv2cnKxikviDyiQD05x2K03KaLnkaisXD6mq4=YKD4g+t+iDRwFP+aDUO7bFT=ikx2a557wB4GkLrx79Neonm7Bunbk/yiS1vy/SZndUl3UU//uqVW344LR5ZnrfVKgi6lgXtzCxwbkXU8C0dw+EV38w550u9KDKP=YWoqZv8+wch3Tjsb3Ll/R3M9hYON8Yhjw48j89kWwLwYGABIaBzWkfnD/6zEPXOVRFMRodiGZLRSMv30c62dNXqF4g2TSdg9Yd6N4fgvqffhftGjRCUcgqu4sl+sN2CNk8xrd5CYXutc+1cw1Oh7lkY6bOYAYCBPaiOV7xp2YwGKxoHX0Dsg5eGt+E5kOtd7dHOPfe4k78BjmKGOXD4iEauqATqAuntD=HLgzpmPS0YLjKVDCPrqbrvkB1bg4E2eemvNrOPgPHDsm25diYXkmujQ1hmtQKGhPQOYEophfUqT3g1L/et5lXylECisXuPQSX0Y=yOP9xIRb3ugwYhYvRDOOC9bEaDIHK8wqAmwY+kH7eG5o5wwLsBeD7QTj+/GiNkGa0a4eks/d8X+RlTs3=zHqqYT1Twa0kZZxYDGcDG7rR91Gx/eediDD=; PASSPORTSESSID=vlhu3brl4qqfkm1gip2enh1np0; acw_tc=2f624a3816359329976566427e1b7363f6a399a1c74d301ce47383a4c22a08','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36','sec-fetch-dest': 'image','sec-fetch-mode': 'no-cors','sec-fetch-site': 'same-origin','referer': 'https://passport.tuniu.com/register'
}response = requests.request("GET", url, headers=headers, data=payload)
filename='code/'+str(get_time_stamp13())+'.jpg'
with open(filename,'wb') as f:f.write(response.content)
ocr=ddddocr.DdddOcr()
decode_1=ocr.classification(response.content)
print(decode_1)
改用postman里面的另外一个Python-http.client的代码即可正常访问ssl连接
from datetime import datetime
import re
import timeimport ddddocr
import requestsdef get_time_stamp13():t=datetime.now()n3=str(t)[-6:-3]datetime_str = datetime.strftime(datetime.now(), '%Y-%m-%d %H:%M:%S')datetime_obj = datetime.strptime(datetime_str, '%Y-%m-%d %H:%M:%S')# 10位,时间点相当于从1.1开始的当年时间编号date_stamp = str(int(time.mktime(datetime_obj.timetuple())))# 3位,微秒date_stamp = date_stamp + n3return int(date_stamp)def readimage():ocr=ddddocr.DdddOcr()res=requests.get()ocr.classification(res.content)import http.clientconn = http.client.HTTPSConnection("passport.tuniu.com")
payload = ''
headers = {'Cookie': 'tuniu_partner=MTU1OCwwLCw2ZGYxN2I2Y2Q1NDQxMzk4OGU1OTllYzE0NzQzNjlhZA%3D%3D; tuniuuser_citycode=MTYxMQ%3D%3D; p_phone_400=4007-999-999; p_phone_level=0; p_global_phone=%2B0086-25-8685-9999; _tacau=MCwzOGRjOGU0NC1hNjZlLTJiODctODRiZC0yOWJkMzBmMDY1ZGQs; udid=tn-100-1635931987040-0d25a6f1-3c89-11ec-b13c-a11f56f54905; _tact=NzUzOGJiOGQtZDMyNS04YjE3LTU2M2ItMmI1NmU1ZGY2NmM0; _tacz2=taccsr%3Dbaidu%7Ctacccn%3D%28cpc%29%7Ctaccmd%3DSE%7Ctaccct%3D%28none%29%7Ctaccrt%3D%28none%29; _taca=1635931985752.1635931985752.1635931985752.1; _tacb=ZDQwMThjYTItZGQ0OC03ZWQwLTYyZjEtYThkNGE2NzZiMWZm; _tacc=1; PageSwitch=1%2C213612736; _pzfxuvpc=1635931987031%7C4911940592134903408%7C1%7C1635931987038%7C1%7C%7C9096756265259129179; _pzfxsfc=u10316631.k217654437386.a45692303164.pb; _ga=GA1.2.1140816901.1635931987; _gid=GA1.2.227309581.1635931987; Hm_lvt_fe3fbe4228e14b1544525f058df92f91=1635931987; Hm_lpvt_fe3fbe4228e14b1544525f058df92f91=1635931987; OLBSESSID=qv6rqvguelg9jpe5pof87cabn7; PcHomeVisit=1; smidV2=202111031733099a86aac40b61c24bf383873ee97d86ca006e90c6558c92510; MOBILE_APP_SETTING_OPEN-154=1; acw_tc=2f624a4316359319997322452e655bb2fde9fcef4deb18f95221f62773e160; PASSPORTSESSID=84d706599d4fca2731ebbd62df9eebae; tuniu-assist={%22show%22:false%2C%22audio%22:false%2C%22speed%22:%22middle%22%2C%22zomm%22:1%2C%22cursor%22:false%2C%22pointer%22:false%2C%22bigtext%22:false%2C%22overead%22:false%2C%22bgcolor%22:false}; _uab_collina=163593199983111888803387; fp_ver=4.7.3; BSFIT_EXPIRATION=1637216066128; BSFIT_OkLJUJ=FHMohPnE-rBR2cxk5jzg-YgPjJrYrLan; BSFIT_DEVICEID=HXbehRnlOkhIHzzo4pE4Mvu9g71_5oAA3aRMpu1IQLZ7EKVSLjgOHe8N9LzewBS-FGAxhH684Fj-c0xfjHKuw84BkZ82bilae-hKd8cUpgBLHGjusXR_NmvBdN33AkzTOYGtRhNmd6FVUYQQgmIePfwyXMUB7XOJ; MOBILE_APP_SETTING_STATE-154=CLOSE; ssxmod_itna=mq0xnCyD9DzOG780P7Ki=w3iIMKDuv2cnK2eDsimDSxGKidDqxBWqQRHq7y5x0=AUlERm3dFGSy44fBCxc+dxVGbyIKDU4i8DCwuwKD4+KGwD0eG+DD4DWDmWHDnxAQDjcKGWDbO=DmDGAc3qDgDYQDGup6D7QDIk=q4gwcDCd4EwrgfDiYG7=DjurD/S+rEerb=ZwZiEQDzMaDtutSFdtKx0p1QDp=QAhLtOqaK0DwXB44fD7Y4g4qm8O57tS=GB84Yr4jmBqDGROoDU4xD; ssxmod_itna2=mq0xnCyD9DzOG780P7Ki=w3iIMKDuv2cnKxikviDyiQD05x2K03KaLnkaisXD6mq4=YKD4g+t+iDRwFP+aDUO7bFT=ikx2a557wB4GkLrx79Neonm7Bunbk/yiS1vy/SZndUl3UU//uqVW344LR5ZnrfVKgi6lgXtzCxwbkXU8C0dw+EV38w550u9KDKP=YWoqZv8+wch3Tjsb3Ll/R3M9hYON8Yhjw48j89kWwLwYGABIaBzWkfnD/6zEPXOVRFMRodiGZLRSMv30c62dNXqF4g2TSdg9Yd6N4fgvqffhftGjRCUcgqu4sl+sN2CNk8xrd5CYXutc+1cw1Oh7lkY6bOYAYCBPaiOV7xp2YwGKxoHX0Dsg5eGt+E5kOtd7dHOPfe4k78BjmKGOXD4iEauqATqAuntD=HLgzpmPS0YLjKVDCPrqbrvkB1bg4E2eemvNrOPgPHDsm25diYXkmujQ1hmtQKGhPQOYEophfUqT3g1L/et5lXylECisXuPQSX0Y=yOP9xIRb3ugwYhYvRDOOC9bEaDIHK8wqAmwY+kH7eG5o5wwLsBeD7QTj+/GiNkGa0a4eks/d8X+RlTs3=zHqqYT1Twa0kZZxYDGcDG7rR91Gx/eediDD=; PASSPORTSESSID=vlhu3brl4qqfkm1gip2enh1np0; acw_tc=2f624a3816359329976566427e1b7363f6a399a1c74d301ce47383a4c22a08','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36','sec-fetch-dest': 'image','sec-fetch-mode': 'no-cors','sec-fetch-site': 'same-origin','referer': 'https://passport.tuniu.com/register'
}
conn.request("GET", "/ajax/captcha/v/1447825328.4607", payload, headers)
res = conn.getresponse()
data = res.read()
# print(data.decode("utf-8"))
filename='code/'+str(get_time_stamp13())+'.jpg'
with open(filename,'wb') as f:f.write(data)
ocr=ddddocr.DdddOcr()
decode_1=ocr.classification(data)
print(decode_1)
用ddddocr识别图形字符验证码相关推荐
- Python模拟登录,Python识别图形验证码实现自动登陆
前言 利用Python识别图形验证码,selenium模块实现自动登陆.废话不多说. 让我们愉快地开始吧~ 开发工具 Python版本: 3.6.4 相关模块: re: numpy模块: pytess ...
- Ocr技术 识别高级验证码
光学字符识别(英语:Optical Character Recognition, OCR)是指对文本资料的图像文件进行分析处理,获取文字及版面信息的过程. OCR的概念是在1929年由德国科学家Tau ...
- python selenium 验证码识别_Python网络爬虫之如何用代码识别图片验证码
验证码 当我们在爬取某些网站的时候,对于一些频繁请求,网站会识别你是机器还是人.如果是机器,直接不允许你访问这个网站了,直接返回404或者禁止访问. 最常见的方式就是验证码.验证码的主要功能就是区分当 ...
- python 识别图形验证码_Python验证码识别
大致介绍 在python爬虫爬取某些网站的验证码的时候可能会遇到验证码识别的问题,现在的验证码大多分为四类: 1.计算验证码 2.滑块验证码 3.识图验证码 4.语音验证码 这篇博客主要写的就是识图验 ...
- Python - WebDriver 识别登录验证码
Python - WebDriver 识别登录验证码 没什么可说的直接上代码! #-*-coding:utf-8-*- # Time:2017/9/29 7:16 # Author:YangYangJ ...
- python 识别登陆验证码图片(完整代码)_Python 实现简单图片验证码登录
如何实现,执行代码报错了 from PIL import Image from pytesseract import image_to_string, pytesseract pytesseract. ...
- python识别复杂验证码2020_Python识别验证码!学会这步,百分之60的网站你基本都能识别了!...
识别原理 我们采取一种有监督式学习的方法来识别验证码,包含以下几个步骤 图片处理 - 对图片进行降噪.二值化处理 切割图片 - 将图片切割成单个字符并保存 人工标注 - 对切割的字符图片进行人工标注, ...
- python代码标识码_代码分享:使用Python和Tesseract来识别图形验证码
原标题:代码分享:使用Python和Tesseract来识别图形验证码 *本文原创作者:ipenox,本文属FreeBuf原创奖励计划,未经许可禁止转载 各位在企业中做Web漏洞扫描或者渗透测试的朋友 ...
- python 识别图形验证码_Python图片验证码降噪处理实例!此乃识别验证码神技!...
图片验证码算是网络数据采集上的一道拦路虎,虽然有诸多公开的ORC接口.云打码平台,一旦大规模应用起来,还是内部写程序进行识别处理比较好. 而自己写代码进行识别的话,又有很多种方案,比如最近火热的神经网 ...
最新文章
- win7没有个性化如何把计算机放到桌面,win7系统家庭版右键没有个性化设置桌面壁纸...
- java文件格式_Java Class文件格式详解
- python创建二维空列表_python定义二维空数组
- Jmeter生成自动化和性能多维度测试报告(性能指标和监听器图表)
- jQuery原理第五天
- 云服务器定时启动程序_过去、现在和未来:开发一款微信小程序的技术迭代全过程...
- vForum 2014点滴随笔
- Selenium之Action Chains类
- JESD204B时钟网络
- django drf 初始化配置(mysql、跨域访问、默认用户模型)和用户模型重写,数据迁移,解决用户模型重写后无法创建超级用户的问题
- 解决虚拟机与宿主机不在同一个网段中,不能相互ping通的问题
- matlab 定义自然数变量,matlab数值数据和变量名
- OpenCV:图片文字分割
- 如何从零建立一个词表
- 2-eggs-100-floors-puzzle(扔两个鸡蛋问题)
- smart 完成安装之前向导中断
- 【云原生 • Docker】Docker常用命令总结(值得收藏)
- 我国地理信息产业现状与问题,如何利用“黑蚁数据工坊”提高地理信息服务水平。
- 我与Keychron K8的那些事儿#入坑keychron#
- Zhang Xiao