【写在前面】

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

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

【效果如下 】

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

【示例代码】

# coding=utf-8
# @Auther : "鹏哥贼优秀"
# @Date : 2019/10/1
# @Software : PyCharmfrom jpype import *
import jpype
import timeurl = '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包,实现淘宝自动抢单功能(1)相关推荐

  1. python自动抢单_【Python成长之路】基于sikuli jar包,实现淘宝自动抢单功能(1)...

    [写在前面] 记得节前,西哥问我能不能帮忙写个淘宝自动抢单的功能.其实之前就有提到过sikuli IDE工具,可以很方便地实现图形化自动化,只是当时并没有真正用python实现. 因此刚好借这个机会, ...

  2. 淘宝自动抢单的python实现

    github地址:https://github.com/944613709/TaoBao_QIangDan 说明 这个是淘宝自动抢单 采用pyqt5+pyUIC+qt designer+senuim ...

  3. 【Python成长之路】破解Boss直聘网站滑块验证

    哈喽大家好,我是鹏哥. 今天要记录的内容是 -- 破解Boss直聘网站的滑块验证. -- 上 课 铃-- TuesdayBurak Yeter;Danelle Sandoval - Tuesday 1 ...

  4. 【Python成长之路】快速理解复制、浅拷贝、深拷贝

    哈喽大家好,我是鹏哥. 今天想聊聊的主题是 -- 浅拷贝/深拷贝. ~~~上课铃~~~ 赤伶HITA - 赤伶 1 写在前面 浅拷贝.深拷贝的知识点,在python笔试和面试的过程中,经常被作为考题来 ...

  5. 【Python成长之路】如何用python开发自己的iphone应用程序,并添加至siri指令

    哈喽大家好,我是鹏哥. 今天想记录的学习主题是 -- 基于pythonista3 app开发自己的iphone应用程序. ~~~上课铃~~~ (由于今天被小伙伴推荐了这首歌,因此就应他的要求,作为此文 ...

  6. Python成长之路【第九篇】:Python基础之面向对象

    一.三大编程范式 正本清源一:有人说,函数式编程就是用函数编程–>错误1 编程范式即编程的方法论,标识一种编程风格 大家学习了基本的Python语法后,大家就可以写Python代码了,然后每个人 ...

  7. (转)Python成长之路【第九篇】:Python基础之面向对象

    一.三大编程范式 正本清源一:有人说,函数式编程就是用函数编程-->错误1 编程范式即编程的方法论,标识一种编程风格 大家学习了基本的Python语法后,大家就可以写Python代码了,然后每个 ...

  8. 基于json-lib.jar包Json实例程序

    基于json-lib.jar包Json实例程序 1.JSONObject to DynaBean String json = "{name=\"json\",bool:t ...

  9. 【Python成长之路】Python爬虫 --requests库爬取网站乱码(\xe4\xb8\xb0\xe5\xa)的解决方法【华为云分享】

    [写在前面] 在用requests库对自己的CSDN个人博客(https://blog.csdn.net/yuzipeng)进行爬取时,发现乱码报错(\xe4\xb8\xb0\xe5\xaf\x8c\ ...

  10. 【Python成长之路】Python爬虫 --requests库爬取网站乱码(\xe4\xb8\xb0\xe5\xaf\x8c\xe7\x9)的解决方法

    [写在前面] 在用requests库对自己的CSDN个人博客(https://blog.csdn.net/yuzipeng)进行爬取时,发现乱码报错(\xe4\xb8\xb0\xe5\xaf\x8c\ ...

最新文章

  1. LNMP环境搭建(三)MySQL数据库服务器的安装
  2. AngularJs学习
  3. java自动推断类型_推断:Facebook的新Java静态分析工具
  4. android动态设置全屏,Android开发之全屏与非全屏的切换设置方法小结
  5. 2019-1-7Xiaomi Mi5 刷全球版MIUI教程
  6. Qt一个进程运行另一个进程
  7. 在微软平台上运行 SAP 应用程序
  8. 移动边缘计算——MEC
  9. Win7系统怎么强制格式化U盘
  10. 信息系统项目管理师考试大纲(第2版)
  11. html流控破解脚本,tc 流控脚本
  12. 忍得住清贫 耐得住寂寞 禁得起诱惑
  13. 使用Mybaties xml的增删改查
  14. iscoll.js卡顿问题
  15. 粗糙集理解之二:属性约简
  16. 波浪下划线怎么设置_波浪线符号(word小技巧)
  17. 500错误及服务器内部错误
  18. 如何建立一个小型的局域网,来实现电脑与电脑之间的通信
  19. 嵌入式硬件开发基础(持续更新)
  20. 好用的vue瀑布流插件-vue-masonry

热门文章

  1. 于歆杰pdf 电路原理_buck电路原理(于歆杰 电路原理pdf)
  2. oracle表同步 job,Oracle中通过Job实现定时同步两个数据表之间的数据
  3. SQL经典50查询语句案例_3(查询所有同学的学号、姓名、选课数、总成绩)
  4. 更改网络计算机ip,教你快速修改电脑IP地址
  5. CSS 查看css兼容性的站点
  6. 利用Python下载并解压压缩文件
  7. 高级编程语言分类_高级编程语言的分类
  8. 计算机锁屏图片怎么设置方法,电脑锁屏照片怎么设置
  9. 计算机考研 专业课 数据结构
  10. 2021华科计算机考研专业课,2021考研 华中科技大学计算机考研科目