无聊
上虎牙看直播的时候就想带节奏
/手动滑稽 哈哈哈哈
写了一个python脚本实现,感觉效果还不错,分享给大家
基本逻辑:
1。自动登录。需配置好账号密码。
2。可以从一个主播房间列表中随机选取一个房间进入。
3。在这个房间里,从准备好的弹幕表中,随机发射发射弹幕。时间间隔为15s。
4。在一个房间里面发射5次弹幕以后,再次回到第2步开始循环,1000次。
前提条件:
1。谷歌chrome浏览器,装了谷歌浏览器的驱动。
2。python3.5,其他版本没试过。
3.安装了第三方库:airtest pocoui pynput。
4下载aitest的IDE工具,在设置中,配置selenium项里面的chrome path
5。py文件同目录下放两个文件,zhubourl.dm 和 comments.dm 用于储存主播房间地址和弹幕。
如果能够正常运行,效果会这样:
登录
发弹幕
把下载的文件放在一个文件夹里面,把谷歌驱动放在谷歌浏览器里面,用ide工具打开danmu.py 运行即可。
交流Q/V:2761491796
最后附上py源码。
# -*- encoding=utf8 -*-
__author__ = "jack"
from airtest.core.api import *
from airtest.cli.parser import cli_setup
if not cli_setup():
auto_setup(__file__, logdir=True, devices=[
"Windows:///",
], project_root="F:/danmu")
# script content
print("start...")
# generate html report
# from airtest.report.report import simple_report
# simple_report(__file__, logpath=True)
# -*- encoding=utf8 -*-
__author__ = "jack"
from airtest.core.api import *
import time
import random
import airtest
auto_setup(__file__)
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from airtest_selenium.proxy import WebChrome
driver = WebChrome()
driver.implicitly_wait(20)
#登录
driver.get("https://blog.huya.com/news/12393")
driver.find_element_by_id("nav-login").click()
driver.find_element_by_xpath("//img[@src='https://udbres.huya.com/images/qrweb.png']").click()
driver.find_element_by_xpath("//input[@placeholder='帐号\邮箱\YY号\手机号']").send_keys("在这里输入手机号")
driver.find_element_by_xpath("//input[@placeholder='密码']").send_keys("在这里输入密码")
driver.find_element_by_xpath("/html/body/div[6]/div[2]/div/div[2]/div/div/div/div/div[3]/a").click()
#在一个主播的房间里面循环发射弹幕4次,然后换到另一个房间循环发射
#读取主播房间URL
with open('zhuboURL.dm') as f1:
zbURLs = f1.readlines()
for i in range(0,len(zbURLs)):
zbURLs[i] = zbURLs[i].rstrip()
#读取评论数据
with open('comments.dm','r',encoding='utf-8') as f2:
comments = f2.readlines()
for i in range(0,len(comments)):
comments[i] = comments[i].rstrip()
#开始发射弹幕
sum_zhubo = 0
while sum_zhubo <1000:
random_URL = random.choice(zbURLs)
driver.get(random_URL)
i2 = 0
while i2 < 5:
time.sleep(15)
random_comment = random.choice(comments)
driver.find_element_by_xpath("//textarea[@rows='2']").send_keys(random_comment)
driver.find_element_by_id("msg_send_bt").click()
i2 = i2 +1