温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python中基于sikuli jar包如何实现淘宝自动抢单功能

发布时间:2021-11-24 14:33:58 来源:亿速云 阅读:167 作者:柒染 栏目:大数据

本篇文章为大家展示了Python中基于sikuli jar包如何实现淘宝自动抢单功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

    记得节前,西哥问我能不能帮忙写个淘宝自动抢单的功能。其实之前就有提到过sikuli IDE工具,可以很方便地实现图形化自动化,只是当时并没有真正用python实现。

    因此刚好借这个机会,进一步熟悉python和sikuli框架之间的使用。

【效果如下 】

以下 操作全部由代码模拟用户鼠标操作进行的 。当前仅实现了自动打开浏览器并把商品加入 购物车,后续功能有待优化和 实现。

Python中基于sikuli jar包如何实现淘宝自动抢单功能

【示例代码】

# coding=utf-8# @Auther : "鹏哥贼优秀"# @Date : 2019/10/1# @Software : PyCharm
from jpype import *import jpypeimport time
url = 'https://detail.ju.taobao.com/home.htm?spm=608.2291429.102212b.1.68864f84xeZhgw&id=10000503777283&item_id=539686923712'jvmPath = jpype.get_default_jvm_path()jpype.startJVM(jvmPath, '-ea', '-Djava.class.path=F:\\sikuli\\1\\sikulixapi.jar')Screen = JClass('org.sikuli.script.Screen')Key = JClass('org.sikuli.script.Key')Pattern = JClass('org.sikuli.script.Pattern')KeyModifier = JClass('org.sikuli.script.KeyModifier')myscreen = Screen()mykey = Key()mykeymodifer = KeyModifier()myscreen.capture(0, 0, 1366, 768)myscreen.click(Pattern('最小化窗口.png').similar(0.6))if not myscreen.exists('add.png',2):    print("未检测到浏览器,将自动打开chrome浏览器!")    myscreen.doubleClick('chrome.png')myscreen.click(Pattern('add.png').similar(0.6))myscreen.type(url)myscreen.type(mykey.ENTER)myscreen.type(mykey.ENTER)myscreen.click(Pattern('最大化.png').similar(0.6))myscreen.click(Pattern('马上抢.png').similar(0.6))time.sleep(2)for i in range(5):    myscreen.click(Pattern('4.png').similar(0.6))myscreen.click('taste.png')myscreen.click(Pattern('shopping cart.png').similar(0.6))shutdownJVM()

【知识点】

1、python 如何调用jar包

    之前抢红包的博客,主要是基于sikuli IDE,即自身的app软件界面实现的。但是在下载sikuli程序时,其实还下载了一个sikuliapi.jar包。

Python中基于sikuli jar包如何实现淘宝自动抢单功能

因此现在的问题就是如何用Python调用jar包了。很简单,可以使用jpype库或者jython库。本文是 以jpype为例(当前前提是本地电脑已经安装java,并成功配置java环境变量;如果不会配置java或者安装的同学,可 以自行百度)

Python中基于sikuli jar包如何实现淘宝自动抢单功能

(1)获取jvm路径信息;

(2)启动Jvm,即可调用到你想要的jar包。

2、sikuli jar包的功能使用

Python中基于sikuli jar包如何实现淘宝自动抢单功能

(1) screen:获取当前屏幕,之后 再进行具体按钮的操作;对应函数有用于确定屏幕范围的capture(x1,y1,x2,y2),也有手动确定检测屏幕范围的selectRegion();

(2) Pattern:用于图像匹配,支持相似度similiar(0.7)、偏移量设置targetOffset(10,30)。0.7表示相似度为70%,10表示向上移10个像素,30表示向右移30个像素;

(3) Key:用于键盘输入;

(4) KeyModifier:用于获取键盘控制对象,比如ctrl/alt/shift等,多用于 ctrl+A之类的组合

对应的屏幕操作:

(1) 单击:myscreen.click

(2) 双击:myscreen.doubleClick

(3) 输入:myscreen.type

(4) 对应enter输入:mykey.ENTER

(5) ctrl+a组合输入: myscreen('a',myKeyModifier.CTRL)

上述内容就是Python中基于sikuli jar包如何实现淘宝自动抢单功能,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI