当前位置:   article > 正文

Python 识别携程中文验证码(95%正确率)并自动登陆携程+图灵图像验证码识别平台_图灵验证码

图灵验证码

这两天有一个业务需求,需要登陆不同的携程账号获取订单信息,但是由于携程有验证码检测机制,而且是个中文验证码比较难识别,试了几家人工打码平台,要么贵,要么延时高,要么没办法24小时运行。最后总算让我找到一个可以通过机器识别出来的API接口,准确率超级高而且延迟只有0.03s左右。(不算上传图片的时间)

首先看一下携程验证码长啥样。。。

携程验证码分为小图和大图部分,小图部分如下:

 

 

 大图部分的样子如下: 

 原理是要先识别小图的文字,然后点击到大图对应文字的正确位置。

这里借助了图灵验证码识别平台,不是人工打码的,所以识别很快,准确率也挺高:

在线图片验证码识别平台-图像验证码识别打码平台-图片验证码打码平台-图灵

官网网址:http://fdyscloud.com.cn

进入图灵验证码识别平台,点击中文类型: 

 可以看到图灵识别平台提供的几个中文识别模型。我们这里需要用到的就是 中文通用类型 和 图片识别类型9。分别点进去,会告诉你对应的模型ID和接口的调用方式。

 

 我们也可以直接在网站上先上传图片测试一下该模型的识别效果,如下图:

 可以看到效果是很好的,所有的字和位置都识别得相当准确!牛逼!

废话不多说,直接发调用的Python代码吧,其实网站上也写得很详细了。

小图部分识别:

  1. import base64
  2. import json
  3. import requests
  4. # 复制以下代码,只需填入自己的账号密码、待识别的图片路径即可。
  5. # 关于ID:选做识别的模型ID,会自动生成,无需修改。
  6. def b64_api(username, password, img_path, ID):
  7. with open(img_path, 'rb') as f:
  8. b64_data = base64.b64encode(f.read())
  9. b64 = b64_data.decode()
  10. data = {"username": username, "password": password, "ID": ID, "b64": b64}
  11. data_json = json.dumps(data)
  12. result = json.loads(requests.post("http://www.tulingtech.xyz/tuling/predict", data=data_json).text)
  13. return result
  14. if __name__ == "__main__":
  15. img_path = "C:/Users/Administrator/Desktop/file.jpg"
  16. result = b64_api(username="你的账号", password="你的密码", img_path=img_path, ID="82927344")
  17. print(result)

 大图部分识别:

  1. import base64
  2. import json
  3. import requests
  4. # 复制以下代码,只需填入自己的账号密码、待识别的图片路径即可。
  5. # 关于ID:选做识别的模型ID,会自动生成,无需修改。
  6. def b64_api(username, password, img_path, ID):
  7. with open(img_path, 'rb') as f:
  8. b64_data = base64.b64encode(f.read())
  9. b64 = b64_data.decode()
  10. data = {"username": username, "password": password, "ID": ID, "b64": b64}
  11. data_json = json.dumps(data)
  12. result = json.loads(requests.post("http://www.tulingtech.xyz/tuling/predict", data=data_json).text)
  13. return result
  14. if __name__ == "__main__":
  15. img_path = "C:/Users/Administrator/Desktop/file.jpg"
  16. result = b64_api(username="你的账号", password="你的密码", img_path=img_path, ID="09322322")
  17. print(result)

两者​除了post data里面的模型ID值不一样,其他部分都是一样的。

至此彻底解决了携程中文点选验证码的识别问题!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/287359
推荐阅读
相关标签
  

闽ICP备14008679号