【小demo】——直播平台自动发言

1. 背景

直播平台火热的现在,好多人已经开始直播致富了,但是很多直播新人因为人气等相关原因,就很难在直播平台爆火,有的人想到了买号,刷人气之类的,现在这款小demo就是配套的组件。

2. 前期准备

jar包

这里写图片描述

3. 代码

pps_ tv _view

package com.pochi.selenium;import java.awt.EventQueue;import javax.swing.JFrame;
import java.awt.Toolkit;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import java.awt.Color;
import javax.swing.JButton;
import java.awt.Font;
import java.awt.SystemColor;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;public class PPS_TV_view {//这部分是最底下那个Frame框架private JFrame frame;private JTextField text_url;/*** Launch the application.*///这个main都是windowBuilder自己弄的,不用管public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {PPS_TV_view window = new PPS_TV_view();window.frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the application.* 初始化*/public PPS_TV_view() {initialize();}/*** Initialize the contents of the frame.* 初始化frame*/private void initialize() {frame = new JFrame();//使得窗口锁死,不能最大化frame.setResizable(false);//窗口上的那个奇秀的图标frame.setIconImage(Toolkit.getDefaultToolkit().getImage("E:\\Eclipse\\Documents\\Pro_PPS\\87258PICzud_1024.jpg"));//奇秀挂机精灵frame.setTitle("\u5947\u79C0\u6302\u673A\u7CBE\u7075");//窗口大小frame.setBounds(100, 100, 450, 188);//点右上角的叉可以关闭frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//没有设layout,里面的组件可以随意拖动frame.getContentPane().setLayout(null);//创建一个文本框,用来输入主播房间的地址text_url = new JTextField();//每次点到这个文本框,就把里面的内容先清空一下text_url.addMouseListener(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent e) {text_url.setText("");}});//这个文本框的大小设定text_url.setBounds(196, 22, 228, 36);//将这个文本框添加到窗口上原有的那个Pane上frame.getContentPane().add(text_url);//设置文本框的长度text_url.setColumns(10);//创建一个button按钮,上面写“开始挂机”JButton button_start = new JButton("\u5F00\u59CB\u6302\u673A");//添加监听器button_start.addMouseListener(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent e) {//1. 拿到别人填的主播房间的地址String anchor_url=text_url.getText();//2. 先健壮性判断下有没有人就没写if(anchor_url==null||anchor_url.equals("")){//没写就在文本框提示不能为空,然后这个方法就结束text_url.setText("主播房间地址不能为空!");return;}//3. 创建PPS_sent这个类,把获得的主播地址传进去PPS_sent pps_sent = new PPS_sent(anchor_url);//4. 因为这个类是实现了Runnable接口的,所以打开多线程,运行Thread t1=new Thread(pps_sent);t1.start();}});// 设置其大小button_start.setBounds(196, 93, 93, 23);// 将这个按钮添加到pane上frame.getContentPane().add(button_start);// 另一个停止挂机的按钮JButton button_stop = new JButton("\u505C\u6B62");// 监听到点击就直接退出button_stop.addMouseListener(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent e) {System.exit(0);}});// 设置大小button_stop.setBounds(318, 93, 93, 23);// 添加到paneframe.getContentPane().add(button_stop);//这部分是写字的请输入主播房间地址JTextPane textPane = new JTextPane();textPane.setBackground(SystemColor.control);textPane.setFont(new Font("宋体", Font.PLAIN, 14));textPane.setForeground(Color.BLACK);textPane.setText("\u8BF7\u8F93\u5165\u4E3B\u64AD\u623F\u95F4\u5730\u5740");textPane.setBounds(19, 30, 167, 48);frame.getContentPane().add(textPane);}
}

pps_sent

package com.pochi.selenium;import java.util.Random;import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;public class PPS_sent implements Runnable {//webdriver是Selenium有用private WebDriver driver;//anchor_url是get地址有用private String anchor_url;public PPS_sent(String anchor_url) {//在初始化的时候就判断一下,地址是直接输的数字还是,完整url,亦或是乱输try {Integer.parseInt(anchor_url);this.anchor_url = "http://x.pps.tv/room/" + anchor_url;} catch (Exception e) {if (anchor_url.startsWith("http://x.pps.tv/room/")) {this.anchor_url = anchor_url;} else {throw new RuntimeException("别瞎jb乱写");}}}public void run() {//由于我的firefox不是放在指定的位置的,所以这个也得要设置一下System.setProperty("webdriver.firefox.bin","F:\\火狐浏览器 Firefox 20.0.1 独木成林增强版\\火狐浏览器 Firefox 20.0.1 独木成林增强版\\Mozilla\\Firefox\\firefox.exe");//打开浏览器driver = new FirefoxDriver();//输入网址driver.get(anchor_url);//这条其实没有人会看到System.out.println("开始登陆……限时40秒……");try {//等待40s,让别人输账号、密码登录Thread.sleep(40000);while (true) {// 发消息sentMsg();// 送星光sentStart();// 送礼物sentGift();}} catch (Exception e) {throw new RuntimeException(e);}}private void sentGift() throws InterruptedException {//点击大白driver.findElement(By.cssSelector("img[alt=\"大白白\"]")).click();//点击赠送driver.findElement(By.linkText("赠送")).click();//等待2sThread.sleep(2000);}private void sentStart() throws InterruptedException {//点击星光driver.findElement(By.cssSelector("a.free-gift")).click();//点击1driver.findElement(By.xpath("//li[3]/a/strong")).click();//把星光关掉,为了下次再点driver.findElement(By.cssSelector("a.free-gift")).click();//等待5sThread.sleep(5000);}public void sentMsg() throws InterruptedException {//得到房间titleString title = driver.getTitle();//这部分本来是要按照不同的主播名字,然后说话的,现在也没这个需求了int start_index = title.indexOf("直播间");String anchorName = title.substring(start_index - 3, start_index);//这个也是调试代码,真正的是看不到的System.out.println("开始发送信息...");//从这个数组里面随机拿出东西发送String[] str_arr = { "小龟最棒!", "么么哒!", "小龟好~", "吃饭没?", "我很好!", "[开心]", "[色色]", "[呆]", "[哭]", "[大笑]", "[傻乐]","[可怜]", "[无语]", "[汗]", "[抓狂]", "[亲亲]", "[落寞]", "[囧]", "[抠鼻]", "[闭嘴]", "[挑眉]", "[惊恐]", "[晕]", "[惊讶]","[再见]" };//弄一个随机对象Random random = new Random();//这两个变量是为了前后两句话不一致int old_num = 0;int new_num = 0;for (int i = 0; i < 16; i++) {//得到一个新的随机脚标new_num = random.nextInt(str_arr.length);//如果这个脚标和老的一样的话就重新选一个while (old_num == new_num) {new_num = random.nextInt(str_arr.length);}//不一样的话,把新的赋给老的old_num = new_num;// 把奇秀对话框的东西删掉driver.findElement(By.cssSelector("div.say-input > input[type=\"text\"]")).clear();// 带名字的发送语句// driver.findElement(By.cssSelector("div.say-input >// input[type=\"text\"]"))// .sendKeys(anchorName + str_arr[old_num]);// 不带主播名字发送语句driver.findElement(By.cssSelector("div.say-input > input[type=\"text\"]")).sendKeys(str_arr[old_num]);// 发送消息driver.findElement(By.linkText("发言")).click();Thread.sleep(20000);// driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);}}public PPS_sent() {super();}
}

4.结果

这里写图片描述

4.1 步骤

① 输入房间号或地址皆可,点击开始挂机。

② 打开如下页面,在40s内完成登录。

这里写图片描述

③ 任由其挂机即可。

4.2 挂机内容

① 每20s,随机发言。

② 每5分钟点一个星光,然后送一个大白。

③ 周而复始…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/352475.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【MCS-51单片机汇编语言】期末复习总结⑥——串口通信(题型六)

文章目录 知识准备发送/接收缓冲器 SBUF串口通信控制寄存器SCON电源控制寄存器 PCON各个工作方式波特率的设定 常考题型例题1题目描述题目解析题解 例题2题目描述题解 知识准备 发送/接收缓冲器 SBUF 单片机在发送或接收数据的前先将数据存储在SBUF中&#xff1b;接收&#x…

程控电源CANoe上位机面板(CAN\ETH测试、RS232串口通信、编写设计思路)

程控电源CANoe上位机面板 编写此面板的目的编写思路一、通讯方式1、RS232串口连接2、CANoe与RS232串口相关的函数3、帧格式命令字4、校验码 二、面板设计1、所需文件说明2、导入使用3、功能模块化3.1 初始化3.2 端口设置3.3 控制方式3.4 脉冲程序3.5 电压电流状态3.6 运行设置的…

Android Studio Gradle实践之多渠道自动化打包+版本号管理

转&#xff1a; Android Studio Gradle实践之多渠道自动化打包版本号管理 上次介绍了Android Studio的安装、配置和基本使用。这次讲一下Android Studio用到的打包工具Gradle。Gradle是一种构建项目的框架&#xff0c;兼容Maven、Ant&#xff0c;为Java项目提供了很多插件去实现…

【测试实践】搞定云网络系统性能测试

一、前言 在部署或管理网络系统时&#xff0c;我们更多的是关心网络的连通性&#xff0c;而对于其整体的性能往往考虑不多&#xff0c;或者即使考虑到性能、异常或稳定性的问题&#xff0c;但却发现没有合适的手段去测试或监控网络健康状况。在本文中&#xff0c;首先简单介绍…

树莓派做一个获取GPS时间的NTP服务器

由于单位用的是内部网络&#xff0c;机器时间无法与internet同步&#xff0c;导致内网的所有设备各自为政&#xff0c;对工作和管理带来的麻烦说不清&#xff0c;为解决这个问题&#xff0c;决定用手里的树莓派做通过GPS获取时间&#xff0c;然后提供NTP服务。在某宝逛了一圈&a…

自动(智能)驾驶 | 全网第一本激光雷达手册阅读指南(下)

接着从上篇继续说&#xff0c;本部分主要介绍激光雷达数据等内容&#xff0c;这个可以说是看懂激光雷达手册的重中之重&#xff0c;也就是关键问题的关键&#xff08;皮~&#xff09;。同样由于velodyne的手册比较难啃但是内容完整丰富&#xff0c;本期我们依然以velodyne 128&…

GEO-SPARK 2000X PPS使用记录(三)

最近单位突然要使用GeoSpark电火花&#xff0c;至少有4年没有用过了。我一直没有独立操作过&#xff0c;只是看同事操作过&#xff0c;碰巧的是会使用这个设备的同事去大洋了&#xff0c;悲剧的是他们把所有的采集狗都拿走了&#xff0c;留下一个巨大的坑让我来填。 1、首先看看…

CMOS图像传感器——工作原理

一、像素阵列结构 一般像素阵列是由水平方向的行( Row ) 和垂直方向的列(Column)正交排列构成的。像素排列的最基本设计原则是:摄像器件像素排列的坐标,必须在显示的时候能够准确地还原在图像原来的相对位置上。在大多数情况下,每个像素中心线在行的方向和列的方向,即…

Kerberos从入门到精通以及案例实操系列(二)

5、安全集群使用说明 5.1、用户要求 具体要求以下使用说明均基于普通用户&#xff0c;安全集群对用户有以下要求&#xff1a; 集群中的每个节点都需要创建该用户该用户需要属于hadoop用户组需要创建该用户对应的Kerberos主体 实操&#xff0c;此处以atguigu用户为例&#x…

3.了解Spring Boot2自动配置原理

了解Spring Boot2自动配置原理 1、SpringBoot特点 1.1、依赖管理 1.父项目做依赖管理 依赖管理 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.4.RELEAS…

Docker搭建Elasticsearch方法及启动后服务自动关闭的问题

太长不看&#xff0c;一句话总结 内存太小&#xff0c;启动命令中添加参数修改虚拟机大小即可 docker run -e ES_JAVA_OPTS"-Xms256m -Xmx256m" -e "discovery.typesingle-node" -d -p 9200:9200 -p 9300:9300 --name elasticsearch elasticsearch:7.6.0配…

NTP自动退出问题排查

为什么80%的码农都做不了架构师?>>> 问题现象:ntp进程运行一段时间后自动退出 排查过程: 查看/var/log/message ntp异常信息如下 Feb 20 22:54:41 xnu_1 ntpd[2187]: 0.0.0.0 0617 07 panic_stop -28777 s; set clock manually within 1000 s. Feb 20 22:54:57 …

Docker部署Elasticsearch及安装后自动关闭的问题

Docker搭建Elasticsearch方法 前往dockerhub官网&#xff1a;dockerhub 可查看elasticsearch相应版本 拉取镜像 选取一个版本拉取镜像&#xff0c;如docker pull elasticsearch:7.9.2 不输入版本默认拉取最新版 启动容器 映射端口为9200和9300 docker pull elasticsearch:…

自动化基础笔记--元素操作

元素操作&#xff08;附带鼠标悬停&#xff09; 一些课程回顾&#xff0c;问题原因总结 函数只有在return的时候&#xff0c;才会返回一个数据。返回数据了才可以赋值的 报错&#xff1a; 等待时间不够返回的元素不是你想要的确实是你表达式写错了有句柄未切换或者有iframe未…

服务器设置了自动校时但是,同步时钟配置电脑自动校时

同步时钟配置电脑自动校时 一、同步时钟操作和指示灯说明。 同步时钟可接收全球定位系统GPS、北斗卫星信号。当GPS/北斗天线架设到屋顶时&#xff0c;天线的高度必须低于房屋顶避雷天线的高度&#xff0c;防止被雷击。 先关闭电源后再连接或者去掉天线。 电源指示灯&#xff1a…

计算机怎么关闭开机自启应用,如何关闭电脑开机自动启动的软件程序

如何关闭电脑开机自动启动的软件程序 我们在电脑中安装软件的时候,不小心设置了开机启动,该怎么取消呢?今天就跟大家介绍一下如何关闭电脑开机自动启动的软件程序的具体操作步骤。 1. 首先打开电脑,找到桌面上的【360安全卫士】软件,双击打开: 2. 进入主页面后,点击上方…

Latex使用algorithm2e包写伪代码

用Latex写伪代码我们需要用到一个包&#xff0c;Algorithm2e&#xff0c;这个工具包的使用手册下载地址为&#xff08;http://mlg.ulb.ac.be/files/algorithm2e.pdf&#xff09;CSDN的链接为&#xff08;&#xff09; 准备 导入该包 \usepackage[ruled,linesnumbered]{algor…

【复杂网络建模】——基于微博数据的影响力最大化算法(PageRank)

&#x1f935;‍♂️ 个人主页&#xff1a;Lingxw_w的个人主页 ✍&#x1f3fb;作者简介&#xff1a;计算机科学与技术研究生在读 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4a…

【Markdown小技巧】 整理小图标和表情符号

&#x1f40b;作者简介&#xff1a;博主是一位.Net开发者&#xff0c;同时也是RPA和低代码平台的践行者。 &#x1f42c;个人主页&#xff1a;会敲键盘的肘子 &#x1f436;座右铭&#xff1a;总有一天你所坚持的会反过来拥抱你。 &#x1f308;写在前面&#xff1a; 让博客变得…

工信部—高级软件开发工程师认证

工业和信息化部教育与考试中心是工业和信息化部直属事业单位&#xff0c;承担计算机技术与软件专业技术资格考试、通信专业技术人员职业水平考试、电子通信行业职业技能鉴定、全国信息技术人才培养工程、产业工人网络平台建设等人才培养选拔工作。 软件工程师(Software Enginee…