虎牙自动发送弹幕

介绍

虎牙直播自动发送弹幕,使用selenium操作网页自动发送弹幕,因为虎牙限制,10秒发送一条。

温馨提示:需要电脑上安装Chrome浏览器

联系我:QQ2039808149

运行截图

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

使用方法:

代码启动(python3环境):

  1. 在web.py启动服务
  2. 双击template下的index.html在浏览器中启动
    • 点击初始化检查电脑环境,如果环境没有问题 登录虎牙按钮变为可用
    • 点击登录虎牙,弹出虎牙官网扫码登录页面,使用手机虎牙app扫码登录(30秒内,页面会自动关闭)
    • 点击检查登录状态,发送弹幕前需要检查登录状态,否则不能发送。需要重新点击登录并扫码登录
    • 在左侧文本框中输入发送内容,程序随机挑选发送弹幕
    • 右侧发送条数中输入想要发送条数
    • 点击开始发送,自动打开虎牙界面发送弹幕(因为虎牙有限制,所以10秒发送一条)

exe启动

  1. 双击dist目录下的web.exe文件启动服务
  2. 双击template下的index.html在浏览器中启动
    • 点击初始化检查电脑环境,如果环境没有问题 登录虎牙按钮变为可用
    • 点击登录虎牙,弹出虎牙官网扫码登录页面,使用手机虎牙app扫码登录(30秒内,页面会自动关闭)
    • 点击检查登录状态,发送弹幕前需要检查登录状态,否则不能发送。需要重新点击登录并扫码登录
    • 在左侧文本框中输入发送内容,程序随机挑选发送弹幕
    • 右侧发送条数中输入想要发送条数
    • 点击开始发送,自动打开虎牙界面发送弹幕(因为虎牙有限制,所以10秒发送一条)

工作环境

目前系统自动在c盘创建文件夹huyaWorkSpace 目录,下载需要启动资源。

参考代码

from cgi import test
from lib2to3.pgen2 import driver
import re
from tkinter import E
from turtle import st
import requests
import time
import json
from selenium import webdriver
import sys
import getChromeVersion
import randomdef testDriver(driverPath):try:options = webdriver.ChromeOptions()options.add_experimental_option('excludeSwitches', ['enable-logging'])driver = webdriver.Chrome(options=options, executable_path=driverPath + '\\chromedriver.exe')driver.get("https://www.baidu.com/")title = driver.titleif "百度" in title:return Trueexcept Exception:print(str("报错").center(50, '-'))return Falsefinally:driver.close()return False# 通过扫码登录def loginByScan(WORK_SPACE):options = webdriver.ChromeOptions()options.add_experimental_option('excludeSwitches', ['enable-logging'])driver = webdriver.Chrome(options=options, executable_path=WORK_SPACE + '\\chromedriver.exe')driver.get('https://i.huya.com/index.php?m=Subscribe&watch=1')driver.implicitly_wait(10)# 切换到iframedriver.switch_to.frame('UDBSdkLgn_iframe')driver.implicitly_wait(10)time.sleep(20)driver.get('https://www.huya.com/967722')# 获取cookiecookies = driver.get_cookies()# print(cookies)# cookie保存到cookies.txt文件f1 = open(WORK_SPACE + "\\cookies.txt", "w")json.dumps(cookies)f1.write(str(json.dumps(cookies)))f1.close()driver.close()# 检查登录状态def checkLoginState(WORK_SPACE):options = webdriver.ChromeOptions()options.add_experimental_option('excludeSwitches', ['enable-logging'])driver = webdriver.Chrome(options=options, executable_path=WORK_SPACE + '\\chromedriver.exe')driver.get("https://www.huya.com/967722")# 加载cookiecookies = readCookies()for cook in cookies:driver.add_cookie(cook)driver.refresh()time.sleep(2)# 检测是否为登录状态text = driver.find_element(by='xpath', value='/html/body/div[2]/div/div/div[1]/div[2]/div[2]/div/div[3]/div[1]/div[6]/div[3]').get_attribute('innerHTML')driver.close()if '登录' in text:return '请先登录!'else:return '1'def login(user, password):try:options = webdriver.ChromeOptions()options.add_experimental_option('excludeSwitches', ['enable-logging'])driver = webdriver.Chrome(options=options, executable_path=sys.path[0] + '\\chromedriver.exe')driver.get('https://i.huya.com/index.php?m=Subscribe&watch=1')# time.sleep(2)driver.implicitly_wait(10)# 切换到iframedriver.switch_to.frame('UDBSdkLgn_iframe')# 点击电脑图标弹出QQ登录选项driver.find_element(by='xpath', value='/html/body/div[1]/div[2]/div[1]/div[4]/i').click()driver.implicitly_wait(10)# 点击qq登录driver.find_element(by='xpath', value='/html/body/div[1]/div[1]/div[2]/div[2]/ul/li[2]').click()driver.implicitly_wait(10)# 切换窗口driver.switch_to.window(driver.window_handles[1])# 切换到iframedriver.switch_to.frame('ptlogin_iframe')driver.find_element(by='xpath', value='/html/body/div[1]/div[9]/a[1]').click()driver.implicitly_wait(10)# 输入账号密码driver.find_element(by='xpath', value='/html/body/div[1]/div[5]/div/div[1]/div[3]/form/div[1]/div/input').send_keys(user)driver.find_element(by='xpath', value='/html/body/div[1]/div[5]/div/div[1]/div[3]/form/div[2]/div[1]/input').send_keys(password)driver.find_element(by='xpath', value='/html/body/div[1]/div[5]/div/div[1]/div[3]/form/div[4]/a/input').click()driver.implicitly_wait(10)time.sleep(5)# 切换窗口driver.switch_to.window(driver.window_handles[0])# 访问指定网址driver.get('https://www.huya.com/967722')# 获取cookiecookies = driver.get_cookies()# print(cookies)# cookie保存到cookies.txt文件f1 = open(sys.path[0] + "/cookies.txt", "w")json.dumps(cookies)f1.write(str(json.dumps(cookies)))f1.close()driver.close()except Exception:print('获取cookie失败!'.center(50, '-'))def sendNumMsg(msgList, count, WORK_SPACE):# 屏蔽没用日志options = webdriver.ChromeOptions()options.add_experimental_option('excludeSwitches', ['enable-logging'])driver = webdriver.Chrome(options=options, executable_path=WORK_SPACE + '/chromedriver.exe')driver.get('https://www.huya.com')# 加载cookiedriver.implicitly_wait(10)time.sleep(3)cookies = readCookies(WORK_SPACE=WORK_SPACE)# print(cookies)for cook in cookies:driver.add_cookie(cook)# 刷新页面driver.refresh()driver.get('https://www.huya.com/967722')# time.sleep(2)driver.implicitly_wait(10)for i in range(count):send(msg=str(msgList[random.randint(0, len(msgList) - 1)]), driver=driver)time.sleep(10)driver.close()return True# 发送弹幕消息
def send(msg, driver):print('填入弹幕内容'.center(50, '-'))driver.find_element_by_xpath('//*[@id="pub_msg_input"]').click()driver.find_element_by_xpath('//*[@id="pub_msg_input"]').send_keys(msg)# time.sleep(5)driver.implicitly_wait(10)print('点击发送'.center(50, '-'))driver.find_element_by_xpath('//*[@id="msg_send_bt"]').click()# time.sleep(2)driver.implicitly_wait(10)# 获取文本内容text = driver.find_element_by_xpath('//*[@id="chat-room__list"]').get_attribute('innerHTML')time.sleep(2)if msg in text:print('发送成功'.center(50, '-'))# 读取本地cookie
def readCookies(WORK_SPACE):f = ''try:print('读取cookie文件'.center(50, '-'))f = open(WORK_SPACE+'\\cookies.txt', 'r')str = f.read()# print(str)# str.replace("\n", "")my_list = json.loads(str)print('读取cookie文件成功!'.center(50, '-'))return my_listexcept FileNotFoundError:print('没有cookie文件,请先扫码登录'.center(50, '-'))finally:if f:f.close()if __name__ == '__main__':# loginByScan()msgList = ['666', '5sdgf']sendNumMsg(msgList=msgList, count=5, WORK_SPACE='C:\\huyaWorkSpace\\')print(random.randint(0, len(msgList) - 1))print(str(msgList[random.randint(0, len(msgList) - 1)]))# print(sys.path[0])# sys.path[0]# sendMsg('星魂666')# print(readCookies())# getCookies()

联系我:QQ2039808149

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

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

相关文章

虎牙一面

先记一下问题 多态 【答】运行时和编译时,虚函数和重载空类只有一个虚函数,sizeof这个类 【答】 4字节(32位机器是4字节,64位是8字节)拷贝构造函数能不能为虚函数 【答】不能,构造函数都不能是虚函数&a…

python爬取虎牙弹幕礼物数据

python爬取虎牙弹幕礼物数据 查看官方文档找到弹幕传输的方式生成websocket对应的参数第一步:第二步: 调通websocket建立链接获取数据和保持心跳 附上完整代码注: 查看官方文档 官方文档链接:https://dev.huya.com/docs#/%E5%BC%…

虎牙财报奏响游戏直播艰难进行曲

今年年初新冠疫情爆发,实体经济企业全面停摆,企业职工纷纷休业宅家,带动“宅经济”的发展,直播、视频、电商平台成为受益者。 虎牙作为国内领先的游戏直播平台之一,也成为这场“宅经济”的受益者。 近日,…

爬取虎牙TV全站主播信息

""" Created by Young on 2019/1/16 17:00 """from bs4 import BeautifulSoup import requests import json as js import reheaders {user-agent:}#之前爬取错了,这个只能爬取一页 def parsing_webpage(url):wb_data requests.get(url,header…

虎牙归顺斗鱼隐,这是游戏的失败和腾讯的胜利

孙悟空擅长翻跟头,据说一个跟头可以翻十万八千里。但翻至天边,依然在如来的掌心之中。 2016年,直播平台乘着风口,携资本之威,轰轰烈烈地搞出了千播大战的盛况。 王思聪带着熊猫,励志要搭建一个文娱帝国&…

虎牙滑块验证

今天来分享一下关于虎牙滑块的验证流程,涉及的验证流程以及加密的方式其实也还是有点麻烦,具体的验证流程作者给出一个代码段大家可以看看 1:注册token --https://df.huya.com/web/df/token 2:获取sdid --https://df.huya.com/web/df/collect 3:登录 --ht…

再见,斗鱼!再见,虎牙!

△Hollis, 一个对Coding有着独特追求的人△ 这是Hollis的第 313 篇原创分享 作者 l 孤桐 来源 l Hollis(ID:hollischuang) 10月12日,斗鱼和虎牙共同宣布,正式接受大股东腾讯提出的合并邀约,进行战略合并。同…

虎牙“维稳”,斗鱼“自救”

配图来自Canva可画 谈及游戏直播行业的大事件,不得不提斗鱼和虎牙的“短暂求和”。2020年10月,游戏直播平台斗鱼和虎牙宣布,接受大股东腾讯提出的合并邀约进行战略合并;2021年7月,由于未能通过反垄断审查,…

css+html+对错号,错号怎么打 接着点击符号/其他符号;

Word 里怎么打出对号和错号? Word 里怎么打出对号和错号? 就是 勾 和 叉 了。 材料/工具:word2010 在菜单栏中打开“插入”菜单栏 在“插入”菜单栏中找到“符号”,点击进入“插入符号”栏 在“插入符号”栏中点击“其他符号” 从…

特殊数学符号

L的特殊写法 \ellℓ \ell ℓ 幂集符号 \documentclass{article} \usepackage[mathscr]{euscript} \let\euscr\mathscr \let\mathscr\relax% just so we can load this and rsfs \usepackage[scr]{rsfso} \newcommand{\powerset}{\raisebox{.15\baselineskip}{\Large\ensurem…

基于NodeJS英雄联盟游戏游戏综合网站

21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到…

LDQM UDQM

 一、sdram的介绍SDRAM(Synchronous Dynamic Random Access Memory),同步动态随机存储器,同步是指 Memory工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来…

图文教你下载英雄联盟League of Legends手游版

本文图文教你如何下载英雄联盟手游公测版(即League of Legends:Wild Rift),主要讲解iOS版的下载方式,毕竟iPhone没有越狱的话只能通过苹果应用商店(App Store)下载APP。 拳头游戏公司(Riot Gam…

IoU、GIoU、DIoU、CIoU

IoU就是我们所说的交并比 作为损失函数会出现的问题(缺点) 如果两个框没有相交,根据定义,IoU0,不能反映两者的距离大小(重合度)。同时因为loss0,没有梯度回传,无法进行学习训练。IoU无法精确的反…

IOU/ GIOU/ DIOU/ CIOU loss

转载自大白老师深入浅出Yolo系列之Yolov3&Yolov4&Yolov5核心基础知识完整讲解 由于文章过长,故特意截取,以便查阅: 目标检测任务的损失函数一般由Classificition Loss(分类损失函数)和Bounding Box Regeressi…

英雄联盟 League of Legends for Mac(LOL美服)

哪里有英雄联盟 mac美服版下载?今天小编为大家带来最新版的英雄联盟 League of Legends for Mac美服下载,这款风靡全球的游戏不止在国内,就连欧美,东南亚还是韩国都是非常受欢迎的,LOL美服同国服一样拥有数百个独特个性…

nn.KLDivLoss

KLDivLoss 作用: 用于连续分布的距离度量;并且对离散采用的连续输出空间分布进行回归通常很有用;用label_smoothing就采用这个; 公式: 公式理解: p(x)是真实分布,q(x)是…

Who wants to play League of Legends with me? 谁想和我玩英雄联盟呀?

At a glance: 速览: Full-year games revenues up to $27 billion, accounting for 31% of $87.9 billion total revenues 全年游戏收入高达270亿美元,占879亿美元总收入的31% International games show largest growth, but domestic games still lead…

sqlserver 无法远程连接到服务器,解决SQLServer远程连接失败的问题

解决SQLServer远程连接失败的问题 机房收费系统异地发布的时候,需要保证数据库能够远程连接,但连接的时候通常会报错: 要解决这个问题,首先需要检查SqlServer 的几项设置。(这些设置一般都是系统默认项,不过最好看一下) (一)检查SQL Server是否允许远程链接。以SqlServer …

宽带连接远程计算机691,联网错误691什么意思,错误691已拒绝远程连接-

有时候大家联网时会遇到一些问题,比如:在进行宽带连接时,系统会提示出现错误,错误代码691。 这是怎么回事呢?其实错误691是我们在日常拨号上网时经常遇见的问题,并不用太担心无法解决。 它出现的原因主要有几个方面&a…