本篇文章为大家展示了Python中基于sikuli jar包如何实现淘宝自动抢单功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
记得节前,西哥问我能不能帮忙写个淘宝自动抢单的功能。其实之前就有提到过sikuli IDE工具,可以很方便地实现图形化自动化,只是当时并没有真正用python实现。
因此刚好借这个机会,进一步熟悉python和sikuli框架之间的使用。
【效果如下 】
以下 操作全部由代码模拟用户鼠标操作进行的 。当前仅实现了自动打开浏览器并把商品加入 购物车,后续功能有待优化和 实现。
【示例代码】
# coding=utf-8
# @Auther : "鹏哥贼优秀"
# @Date : 2019/10/1
# @Software : PyCharm
from jpype import *
import jpype
import 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调用jar包了。很简单,可以使用jpype库或者jython库。本文是 以jpype为例。(当前前提是本地电脑已经安装java,并成功配置java环境变量;如果不会配置java或者安装的同学,可 以自行百度)
(1)获取jvm路径信息;
(2)启动Jvm,即可调用到你想要的jar包。
2、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包如何实现淘宝自动抢单功能,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。