函数很简单,这里主要分享流程

目标

这是一个网站 的注册页面

找接口

先在抓包工具或者浏览器检查界面找到验证码的位置

测试

测试下重放,发现数据可以正常发送,那就拷贝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识别图形字符验证码相关推荐

  1. Python模拟登录,Python识别图形验证码实现自动登陆

    前言 利用Python识别图形验证码,selenium模块实现自动登陆.废话不多说. 让我们愉快地开始吧~ 开发工具 Python版本: 3.6.4 相关模块: re: numpy模块: pytess ...

  2. Ocr技术 识别高级验证码

    光学字符识别(英语:Optical Character Recognition, OCR)是指对文本资料的图像文件进行分析处理,获取文字及版面信息的过程. OCR的概念是在1929年由德国科学家Tau ...

  3. python selenium 验证码识别_Python网络爬虫之如何用代码识别图片验证码

    验证码 当我们在爬取某些网站的时候,对于一些频繁请求,网站会识别你是机器还是人.如果是机器,直接不允许你访问这个网站了,直接返回404或者禁止访问. 最常见的方式就是验证码.验证码的主要功能就是区分当 ...

  4. python 识别图形验证码_Python验证码识别

    大致介绍 在python爬虫爬取某些网站的验证码的时候可能会遇到验证码识别的问题,现在的验证码大多分为四类: 1.计算验证码 2.滑块验证码 3.识图验证码 4.语音验证码 这篇博客主要写的就是识图验 ...

  5. Python - WebDriver 识别登录验证码

    Python - WebDriver 识别登录验证码 没什么可说的直接上代码! #-*-coding:utf-8-*- # Time:2017/9/29 7:16 # Author:YangYangJ ...

  6. python 识别登陆验证码图片(完整代码)_Python 实现简单图片验证码登录

    如何实现,执行代码报错了 from PIL import Image from pytesseract import image_to_string, pytesseract pytesseract. ...

  7. python识别复杂验证码2020_Python识别验证码!学会这步,百分之60的网站你基本都能识别了!...

    识别原理 我们采取一种有监督式学习的方法来识别验证码,包含以下几个步骤 图片处理 - 对图片进行降噪.二值化处理 切割图片 - 将图片切割成单个字符并保存 人工标注 - 对切割的字符图片进行人工标注, ...

  8. python代码标识码_代码分享:使用Python和Tesseract来识别图形验证码

    原标题:代码分享:使用Python和Tesseract来识别图形验证码 *本文原创作者:ipenox,本文属FreeBuf原创奖励计划,未经许可禁止转载 各位在企业中做Web漏洞扫描或者渗透测试的朋友 ...

  9. python 识别图形验证码_Python图片验证码降噪处理实例!此乃识别验证码神技!...

    图片验证码算是网络数据采集上的一道拦路虎,虽然有诸多公开的ORC接口.云打码平台,一旦大规模应用起来,还是内部写程序进行识别处理比较好. 而自己写代码进行识别的话,又有很多种方案,比如最近火热的神经网 ...

最新文章

  1. win7没有个性化如何把计算机放到桌面,win7系统家庭版右键没有个性化设置桌面壁纸...
  2. java文件格式_Java Class文件格式详解
  3. python创建二维空列表_python定义二维空数组
  4. Jmeter生成自动化和性能多维度测试报告(性能指标和监听器图表)
  5. jQuery原理第五天
  6. 云服务器定时启动程序_过去、现在和未来:开发一款微信小程序的技术迭代全过程...
  7. vForum 2014点滴随笔
  8. Selenium之Action Chains类
  9. JESD204B时钟网络
  10. django drf 初始化配置(mysql、跨域访问、默认用户模型)和用户模型重写,数据迁移,解决用户模型重写后无法创建超级用户的问题
  11. 解决虚拟机与宿主机不在同一个网段中,不能相互ping通的问题
  12. matlab 定义自然数变量,matlab数值数据和变量名
  13. OpenCV:图片文字分割
  14. 如何从零建立一个词表
  15. 2-eggs-100-floors-puzzle(扔两个鸡蛋问题)
  16. smart 完成安装之前向导中断
  17. 【云原生 • Docker】Docker常用命令总结(值得收藏)
  18. 我国地理信息产业现状与问题,如何利用“黑蚁数据工坊”提高地理信息服务水平。
  19. 我与Keychron K8的那些事儿#入坑keychron#
  20. Zhang Xiao

热门文章

  1. if(!ispostback)其用法和作用 什么时候该用?
  2. 配置Chrony同步时间,以及ntpd,ntpupate
  3. 开源免费的WEB应用防火墙
  4. 2023年推荐几款开源或免费的web应用防火墙
  5. Android 动画
  6. 开源项目与J2EE架构介绍
  7. ⑤CSS浮动学成在线网实例
  8. linux计划任务之crontab
  9. 使用Htmlunit工具获取表单中的input
  10. 12、【股票策略】使用backtrader回测升级版的狗股策略-基于股息率和市净率两个因子