java驱动sikuli打开虎牙直播
背景:
每天晚上下班第一件事情就是打开电脑上的守望先锋直播,然后边吃饭边看直播,但是点开直播这个过程实在是令人恼火又要去找某个主播在哪,又要看在不在线,还要调整清晰度,放大等,我想能不能用鼠标自动点击完成呢,然而还真有这么个语言可以实现屏幕图像识别,这就是sikuli。这是由MIT的研究人员设计了一种新颖的图形脚本语言Sikuli,可以实现屏幕图像的识别,并进行鼠标操作或者键盘操作的语言。
准备:
1、sikuli下载地址 https://launchpad.net/sikuli/+download
第一个其实是它的图形画编辑器安装包,第二个才是java所需的依赖jar包,我们这下载第二个就可以了。
2、IDEA2020 (java编译器)
3、java环境 jdk1.8自行到官网下载
4、window10系统
难点:
- 如何把sikuli的jar包放到idea的项目中去
- 如果打包写好的java脚本
- 如何获取jar包运行的根目录
导入sikuli的jar包
在新建号的项目中加入一个目录libs(名字可以自定义),然后把下好的sikulixapi-2.0.4.jar包放到该目录下,如下所示
然后在modules里面添加jar或者directories把libs文件定位到,这就可以把libs下面的所有jar导入进来。
这样做有个好处是,可以让依赖包(libs) 和项目处于同一个目录下,使用svn或者git上传的时候就可以把依赖传上去。
代码:
废话不多说,上java代码
package com.sikuli;import org.sikuli.script.FindFailed;
import org.sikuli.script.Location;
import org.sikuli.script.Match;
import org.sikuli.script.Screen;import java.util.ArrayList;
import java.util.List;/*** @Author Tmz* @Date 2021/01/29 18:54* @Description 打开虎牙直播*/
public class Laoli {/**虎牙位置*/private static final String exePath = "C:\\Program Files (x86)\\HuyaLive\\HuyaClient\\Huya.exe";/**主播头像*/private static List<String> heads = new ArrayList<>();/**图片资源位置*/private static final String[] steps = {"./Laoli/step1.png","./Laoli/step2.png","./Laoli/step3.png","./Laoli/step4.png","./Laoli/step5.png","./Laoli/step6.png","./Laoli/step7.png","./Laoli/step8.png"};static {/** 当前jar包运行路径定位到jar的路径,这句话感觉又点奇怪,* 事实上你如果是用cmd命令来执行,java -jar xx.jar 这种,* 实际执行路径就是你运行cmd的路径,而不是jar包所在路径,* 这种情况就不可能通过相对路径去访问同一目录下的资源文件。*/String absPath = Laoli.class.getProtectionDomain().getCodeSource().getLocation().getFile();String[] split = absPath.split("/");String suffix = split[split.length - 1];
// System.out.println(Arrays.asList(split));String replace = absPath.substring(1).replace("/", "\\");if (suffix.contains("jar")) {replace = replace.replace(suffix, "");}
// System.out.println(replace);for (int i = 0; i < steps.length; i++) {steps[i] = replace+ steps[i].substring(2).replace("/", "\\");}//添加老李头像heads.add(steps[1]);//添加老x头像heads.add(steps[6]);//添加麻瓜君的头像heads.add(steps[7]);}public static void main(String[] args) {Screen s = new Screen();try {//①.打开虎牙客户端Runtime.getRuntime().exec(exePath);} catch (Exception e) {System.out.println("打开虎牙客户端失败!");}//②.点击我的收藏try {s.click(steps[0]);} catch (FindFailed findFailed) {System.out.println("我的收藏打开失败");}//③.循环主播头像[老李,老x,麻瓜君],然后点击其他操作[高清,全屏]for (String head : heads) {try {Match match = s.find(head);afterClickLeft(s,match);break;} catch (FindFailed | InterruptedException findFailed) {findFailed.printStackTrace();continue;}}}/*** @param s* @param HeadPortraitMatch* @return void* @author Tmz* @description: 点击头像之后的操作* @date 2021/1/31 22:23*/public static void afterClickLeft(Screen s,Match HeadPortraitMatch) throws InterruptedException, FindFailed {//点击头像HeadPortraitMatch.click();//头像偏移Location location1 = HeadPortraitMatch.rightAt(500);location1.move(800, 400);location1.click();//③.点击.超清Thread.sleep(300);s.click(steps[2]);//④.点击蓝光10MThread.sleep(200);s.click(steps[3]);System.out.println("点击蓝光失败");Thread.sleep(200);Match match = s.find(steps[4]);match.click();System.out.println("点击屏幕失败");Thread.sleep(200);Match match2 = s.find(steps[5]);match2.click();Location location = match.rightAt();location.move(500, 100);location.click();}}
由于我把资源路径改为了jar包路径,那么资源应该放在target->classes目录下,如下所示,等打包之后资源就和jar在同一目录下,不管是通过cmd还是什么运行都会访问到相对路径的资源了。
打包:
打包时关键操作,请跟随下面这些操作进行打包。
点击build之后会在项目下生成out文件夹
如果我们刚才那个选的第一个选项我们这就只会生成一个jar包demo.jar,它会把sikuli打进去,这并不是我们想要的,因为我们可能还会想写其他的脚本,到时候我们我们只需要把生成的jar包放到该目录而不需要把sikulixapi-2.0.4.jar包放过去了。
最后这是我生成的目录结构,如下。
总结:
java驱动sikuli打开虎牙直播相关推荐
- 虎牙java工资_【虎牙直播工资】用户运营待遇-看准网
网申虎牙投简历算是晚了点,刚好18号虎牙来武汉有宣讲,产品经理岗是宣讲会结束后发放笔试题目当场做,我申的是运营岗,所以结束后就先走了.本来想坐等笔试的,没想到没有参加笔试,直接发短信告诉我20号去参加 ...
- 虎牙直播在微服务改造方面的实践和总结
来源:阿里巴巴中间件 相比文字和图片,直播提供了人与人之间更丰富的沟通形式,其对平台稳定性的考验很大,那么倡导"以技术驱动娱乐"的虎牙直播(以下简称"虎牙")是 ...
- c++ 使用nacos_为什么选用Nacos?虎牙直播微服务改造实践
原标题:为什么选用Nacos?虎牙直播微服务改造实践 " 相比文字和图片,直播提供了人与人之间更丰富的沟通形式,其对平台稳定性的考验很大,那么倡导"以技术驱动娱乐"的虎牙 ...
- 通过对json数据解析爬取虎牙直播数据并存入csv文件
学习了Python语言程序设计和Python网络爬虫与信息提取,需要找些网站来练练手,于是在网上找了些别人爬取的网站,最终选择了虎牙直播平台进行爬取,并为后续数据分析存储数据. 首先打开虎牙直播平台, ...
- 虎牙直播真的靠谱吗?进来看了就知道
最近很多朋友私信站长问我虎牙直播靠谱吗?毫不犹豫的告诉你是真的靠谱,对于想开直播的朋友,前期没有粉丝是比较头疼的.因此我们推荐这个虎牙直播私信引流脚本,把精准粉丝全部吸引过来,有了流量赚钱那就是轻而易 ...
- deep linux 看视频卡,在Deepin 20等Linux系统下用Chrome看虎牙直播经常卡的处理
有时候在Deepin 20等Linux系统下用谷歌Chrome浏览器看虎牙直播会卡,而且是经常性的,而同样的操作在Windows系统下就不会,所用的依然还是Chrome浏览器.通常情况下看网站直播视频 ...
- 虎牙直播弹幕抓取 相关资料整理
当前可用项目 看大佬的汇总种类比较齐全,有其他开发需求直接fork修改就行 各种直播平台的直播流&弹幕流解析 https://github.com/wbt5/real-url 自行思路参考 1 ...
- 树莓派 java 驱动 微雪 墨水屏 epaper
树莓派 java 驱动 微雪 墨水屏 epaper B站视频指导 驱动结果显示 官方驱动测试 接线 初步测试 java驱动(仅二值图片展示,非灰阶部分) 引脚初始化 初始化墨水屏 点阵排列 显示方法 ...
- php 三消map 生成算法,UGC三消 一个H5布局的虎牙直播故事
UGC三消 一个H5布局的虎牙直播故事 一.官网直播的页面效果 二.虎牙的数据接口文档API 三.后台Controller提供主播及直播数据 package com.xmbl.ops.controll ...
- jsoup爬取虎牙直播的信息
jsoup爬取虎牙直播的信息,实时得到主播名字,直播间链接,推荐位,标题,人气的数据 主要代码如下: package main;import java.util.ArrayList;import or ...
最新文章
- centos mysql 5.1_CentOS下的MySQL 5.1安装
- ECCV 2020 Spotlight | 图像定位上的细粒化区域相似性自监督
- Linux软件源apt,仓库,包的概念
- 判断字符串是否为回文(C语言 顺序栈)
- 【每日一题】8月14日题目精讲 [SCOI2010]游戏
- oracle tns 连接关闭,ORA-12537 TNS:连接关闭
- 深度学习--Matlab使用LSTM长短期记忆网络对负荷进行分类
- RequestMapping注解的继承问题
- 作者:宋璇(1993-),女,食品安全大数据技术北京市重点实验室、北京工商大学计算机与信息工程学院硕士生...
- 蓝色大巴汽车网站404页面源码
- 转html图片 xwpf_Word、Pdf、Excel、PPT、html等文件互转工具
- matlab随机信号产生,matlab产生瑞利分布随机信号
- Flutter 入门安装——C#程序喵的Flutter之旅
- 苏州回收AB模块罗克韦尔、昆山回收AB触摸屏那些事
- Matlab批量修改文件格式
- python 量化投资 长期横盘_python量化投资才是最正确的方式,只教方法,不股荐!...
- Wifi流程机制分析:WiFi的启动
- 【uniapp】索引列表展示更多信息
- 本周最新文献速递20210801
- apache camel 相关配置_Apache Camel简介与入门-java
热门文章
- TCP协议的RST标志位
- neo4j-入门---学习复杂关系使用CQL语句操作图数据库(二)
- c# 用action做参数进行封装操作
- AutoLeaders控制组——C51单片机学习笔记--定时器串口通信LED点阵屏
- 【C语言】OJ题:printf函数的返回值
- 宇宙是计算机控制的,宇宙被计算机精确控制到秒,暗能量被否定之后我们活在一个程序中...
- 我在上海奋斗五年 从月薪3500到700万
- 建筑企业收并购的三要素
- 饥荒联机云服务器_饥荒(Don't Starve Together)腾讯云服务器搭建(unbuntu篇)
- 计算机支架式教学案例,万紫千红总是春--支架式教学(网友来稿)