introducir
Huya Live envía bombardeos automáticamente y utiliza selenio para operar páginas web para enviar bombardeos automáticamente. Debido a las limitaciones de Huya, se envía un mensaje en 10 segundos.
Recordatorio: el navegador Chrome debe estar instalado en la computadora
ejecutar captura de pantalla
Instrucciones:
Código para iniciar (entorno python3):
- Inicie el servicio en web.py
- Haga doble clic en index.html debajo de la plantilla para iniciarlo en el navegador
- Haga clic en Inicializar para verificar el entorno de la computadora, si no hay ningún problema con el
登录虎牙
botón disponible - Haga clic para iniciar sesión en Huya, y aparecerá la página de inicio de sesión con código de escaneo del sitio web oficial de Huya, y use la aplicación de teléfono móvil Huya para escanear el código para iniciar sesión (dentro de 30 segundos, la página se cerrará automáticamente)
- Haga clic en Verificar estado de inicio de sesión, debe verificar el estado de inicio de sesión antes de enviar la ventana emergente; de lo contrario, no se puede enviar. Debe hacer clic en iniciar sesión nuevamente y escanear el código para iniciar sesión
- Ingrese el contenido para enviar en el cuadro de texto a la izquierda, y el programa selecciona aleatoriamente y envía el bombardeo
- Ingrese el número de piezas que desea enviar en el número de piezas para enviar a la derecha
- Haga clic para comenzar a enviar, abra automáticamente la interfaz de Huya para enviar el bombardeo (porque Huya tiene restricciones, envíe uno en 10 segundos)
- Haga clic en Inicializar para verificar el entorno de la computadora, si no hay ningún problema con el
inicio exe
- Haga doble clic en el archivo web.exe en el directorio dist para iniciar el servicio
- Haga doble clic en index.html debajo de la plantilla para iniciarlo en el navegador
- Haga clic en Inicializar para verificar el entorno de la computadora, si no hay ningún problema con el
登录虎牙
botón disponible - Haga clic para iniciar sesión en Huya, y aparecerá la página de inicio de sesión con código de escaneo del sitio web oficial de Huya, y use la aplicación de teléfono móvil Huya para escanear el código para iniciar sesión (dentro de 30 segundos, la página se cerrará automáticamente)
- Haga clic en Verificar estado de inicio de sesión, debe verificar el estado de inicio de sesión antes de enviar la ventana emergente; de lo contrario, no se puede enviar. Debe hacer clic en iniciar sesión nuevamente y escanear el código para iniciar sesión
- Ingrese el contenido para enviar en el cuadro de texto a la izquierda, y el programa selecciona aleatoriamente y envía el bombardeo
- Ingrese el número de piezas que desea enviar en el número de piezas para enviar a la derecha
- Haga clic para comenzar a enviar, abra automáticamente la interfaz de Huya para enviar el bombardeo (porque Huya tiene restricciones, envíe uno en 10 segundos)
- Haga clic en Inicializar para verificar el entorno de la computadora, si no hay ningún problema con el
ambiente de trabajo
En la actualidad, el sistema crea automáticamente un huyaWorkSpace
directorio de carpetas en la unidad c y la descarga debe iniciar el recurso.
Código de referencia
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 random
def 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.title
if "百度" in title:
return True
except Exception:
print(str("报错").center(50, '-'))
return False
finally:
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)
# 切换到iframe
driver.switch_to.frame('UDBSdkLgn_iframe')
driver.implicitly_wait(10)
time.sleep(20)
driver.get('https://www.huya.com/967722')
# 获取cookie
cookies = 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")
# 加载cookie
cookies = 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)
# 切换到iframe
driver.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])
# 切换到iframe
driver.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')
# 获取cookie
cookies = 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')
# 加载cookie
driver.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_list
except 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()