• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.7.2
软件大小:46.2M
更新时间:2023-05-10

按键精灵iOS版
立即下载

软件版本:1.8.0
软件大小:29.2M
更新时间:2023-03-21

按键手机助手
立即下载

软件版本:3.8.0
软件大小:262M
更新时间:2023-05-30

快捷导航

登录 后使用快捷导航
没有帐号? 注册

发新话题 回复该主题

[郭立员] 「图灵打码过验证」按顺序点击图片上的文字 [复制链接]

1#

大家好,我是公众号3分钟学堂的郭立员~

今天文章讲两个知识点:

①对接图灵打码平台

②对键值对的顺序提取

打码平台的原理都差不多,脚本把图片上传给平台,平台处理完以后把结果返回给脚本。

一、讲一下图灵打码的对接,为了方便用户使用,打码平台一般还会封装成各个语言的插件。



用户调用插件,填上参数都不需要自己在写post数据对接,就可以完成打码验证,非常的方便。

看一下图灵平台给得安卓按键的例子:

  1. Import "Cjson.lua"
  2. Import "tuling.lua"
  3. Import "ShanHai.lua"


  4. Dim json, table,Result
  5. //你的帐号
  6. Dim username="你的帐号"
  7. //你的密码
  8. Dim password="你的密码"
  9. //选用的模型ID
  10. Dim ID="选用的模型ID"




  11. //通过屏幕截图的图片进行识别(默认):
  12. SnapShot "/sdcard/yzm.jpg", 222, 274, 530, 589
  13. Dim filepath = GetSdcardDir() & "/yzm.jpg"
  14. //也可以直接指定本地图片路径进行识别:
  15. //Dim filepath = "/storage/emulated/0/Pictures/1.jpg"


  16. If Dir.Exist(filepath) Then
  17. TracePrint "存在"
  18. Else
  19. TracePrint "不存在"
  20. End If


  21. TracePrint filepath


  22. json = tuling.tuling_SendVerCode(username, password, filepath, id)
  23. TracePrint json
复制代码

代码中填上账号、密码、图片截图地址、项目id就可以使用了,需要注意截图部分的路径要统一。


二、对键值对的顺序提取

按理说键值对的提取没啥可讲的了,但是这次键值对还挺有难度的,我感觉新手朋友提取会很费劲。

先来看例子:



这是按顺序点击图片文字的验证,通常对接平台后的返回值是几个坐标值,把坐标提取出来逐个点击就可以了。

但是通过图灵打码得到的返回值是这样的:

{"全": {"顺序": 1, "X坐标值": 97.0, "Y坐标值": 261.5}, "国": {"顺序": 2, "X坐标值": 57.5, "Y坐标值": 95.0}, "劳": {"顺序": 3, "X坐标值": 254.5, "Y坐标值": 235.5}, "动": {"顺序": 4, "X坐标值": 41.5, "Y坐标值": 159.5}, "模": {"顺序": 5, "X坐标值": 122.0, "Y坐标值": 37.5}, "范": {"顺序": 6, "X坐标值": 237.0, "Y坐标值": 95.5}}

第一眼看上去,这键值对提取不是简单吗?

按顺序把每个字的坐标提取就行了,但是遇到了几个问题?

①怎么知道返回结果中都有哪些汉字

答:遍历所有键值对

②遍历键值对的返回结果是无序的,怎么排序

答:输出“顺序”的键值,也就是序号

③怎么知道有多少个“序号”

答:遍历的时候,用一个计次变量记录,每次遍历变量自增+1,原本我是想用len()命令获取数组个数一样,但是发现不行。

我在写这个脚本的时候,脑子里就想这几个问题怎么解决,然后就有了下面的代码:

Dim arr={"全": {"顺序": 1, "X坐标值": 97.0, "Y坐标值": 261.5}, "国": {"顺序": 2, "X坐标值": 57.5, "Y坐标值": 95.0}, "劳": {"顺序": 3, "X坐标值": 254.5, "Y坐标值": 235.5}, "动": {"顺序": 4, "X坐标值": 41.5, "Y坐标值": 159.5}, "模": {"顺序": 5, "X坐标值": 122.0, "Y坐标值": 37.5}, "范": {"顺序": 6, "X坐标值": 237.0, "Y坐标值": 95.5}}
Dim n=0
For Each k , v In arr
// TracePrint k
n=n+1
Next
TracePrint "字的数量:",n


For i = 1 To n
For Each k , v In arr
If arr[k]["顺序"] = i Then
TracePrint arr[k]["X坐标值"],arr[k]["Y坐标值"]
End If
Next
Next




好了内容就这些,觉得还行帮忙给文章点个赞。

=正文完=


扫码免费获取我的基础教程【视频教程】
扫码下方二维码关注我的公众号:3分钟学堂

QQ交流群:936858410
2#

666666

3#

学习一下

4#

666666666

5#

学习学习

6#

3
21321231

7#

111111111111111

8#

1111111111111111111

9#

支持一下

10#

看看

11#

111111111111111111111111111111111111

12#


正常接单中~~游戏、网页等。
联系QQ:493618905,加好友请备注。
13#

围观下看看

14#

学习

15#

dddddddddddddddddddddd

枫叶飘落。Q983392705
16#

学习学习 谢谢分享

17#

111111111

18#

谢谢!!

19#

学习一下看看

20#

66666

发新话题 回复该主题