【原创】基于Python+selenium的自动赠送虎粮
本帖最后由 沧浪之水濯我心 于 2022-1-17 23:00 编辑本代码使用chromedrive自动化实现自动送虎粮,事实上意义不是很大,需要电脑,需要自己点(当然也可以打包exe计划任务运行,总归是麻烦的),发出来仅供交流!!
1.如需自定义赠送对象,请在zbj = 'https://www.huya.com/dongxiaosa'中替换直播间地址(董伟武功天下第一)
2.食用本代码需要已经登录qq,你也可以自己改,通过输入qq账号及密码来登录。因为还需要密码登录需要验证,所以就未采用此方法
3.请在qq = "img_out_******"中,将******替换为你已经登录的qq
4.环境需要自己配置好(不会配置请看Python 3网络爬虫开发实战 ,崔庆才著这本书,前面有)
5.我也想用requests直接赠送,弄好了还能放云函数里面。因为……我是真抓包不到送虎粮接口,这个比较复杂,本菜鸡做不到!
代码如下:
# -*- coding:utf-8 -*-
import time
from selenium import webdriver
url = 'https://www.huya.com'
zbj = 'https://www.huya.com/dongxiaosa'
qq = "img_out_******"
def init_program():
options = webdriver.ChromeOptions()
options.add_argument("--disable-blink-features=AutomationControlled")
browser = webdriver.Chrome(options=options)
browser.maximize_window()
browser.implicitly_wait(40)
return browser
def login(browser):
browser.get(url)
mainWindow = browser.current_window_handle
element = browser.find_element_by_class_name("LoginHd--1Jf6S0CCU3DUkJdjVqVn3")
element.click()
browser.switch_to.frame("UDBSdkLgn_iframe")
loginIcon = browser.find_element_by_class_name("input-login")
loginIcon.click()
qqIcon = browser.find_element_by_class_name("qq-icon")
qqIcon.click()
for handle in browser.window_handles:
# 先切换到该窗口
browser.switch_to.window(handle)
# 得到该窗口的标题栏字符串,判断是不是我们要操作的那个窗口
if 'QQ' in browser.title:
# 如果是,那么这时候WebDriver对象就是对应的该该窗口,正好,跳出循环,
browser.switch_to.frame("ptlogin_iframe")
# 需要填你自己的QQ,
qqSpan = browser.find_element_by_id(qq)
qqSpan.click()
break
browser.switch_to.window(mainWindow)
time.sleep(2)
def send_huliang(browser):
browser.get(zbj)
time.sleep(5)
element = browser.find_element_by_xpath('//*[@id="player-recharge-btn"]')
element.click()
time.sleep(3)
try:
iframe = browser.find_element_by_xpath('/html/body/div/div/div/iframe')
except:
iframe = browser.find_element_by_xpath('/html/body/div/div/div/iframe')
browser.switch_to.frame(iframe)
#进入包裹界面
bg = browser.find_element_by_xpath('//*[@id="nav"]/li/a')
bg.click()
time.sleep(5)
#找到礼物栏第一个,我只有每日免费虎粮
hl = browser.find_element_by_xpath('//*[@id="myWrap"]/div/ul/li')
hl.click()
time.sleep(5)
#本段代码实现虎粮全送。当然你可以尝试自定义送多少个
send = browser.find_element_by_xpath('//*[@id="sendToAnchor"]/div/div/a')
send.click()
#本段代码实现自动发弹幕,需要配置好PoetryAdaptation.txt弹幕文本
#这块代码没有调试,需要使用请自行调试
def send_msg(browser):
browser.get(zbj)
msgBox = browser.find_element_by_id("pub_msg_input")
msgbtn = browser.find_element_by_id("msg_send_bt")
time.sleep(10)
a = 1
while a == 1:
# 这里使用了从文件读取写好的文字做弹幕
with open("PoetryAdaptation.txt", "r", encoding="utf-8") as f:
for line in f.readlines():
msgBox.send_keys(line)
line = line.strip('\n')# 去掉列表中每一个元素的换行符
msgbtn.click()
time.sleep(30)
pass
if __name__ == "__main__":
browser = init_program()
login(browser)
send_huliang(browser)
# send_msg(browser)
沧浪之水濯我心 发表于 2022-3-3 16:35
包裹在 充值-包裹里
我找到了,但是我只会用不会改哈哈 等着试试 董伟?几年前经常看玩单机挺有意思的 学习了,谢谢分享。 蛮好玩的 玩单机挺有意思的 现在web端没有背包了,送不了了 w15098078568 发表于 2022-3-3 16:08
现在web端没有背包了,送不了了
包裹在 充值-包裹里
页:
[1]
2