PYTHON-selenium自动发送弹幕参与抽奖--仅供用于学习交流

PYTHON-selenium自动发送弹幕参与抽奖脚本–仅供用于学习交流

··

步骤一:

下载PYTHON3,安装selenium--------点击这看教程

步骤二:

下载浏览器和selenium3浏览器驱动(注:我用的是火狐Firefox浏览器)--------点击这看教程
Firefox浏览器驱动:geckodriver

步骤三:

编码
该步骤主要用的浏览器的元素定位知识--------点击这看教程

代码如下–(运行时用微信,QQ,微博等扫码登录)

import time#等待函数头文件
import datetime#获取当下时间头文件
driver = webdriver.Firefox()#获取浏览器内核
driver.get("https://www.douyu.com/directory/all")#打开D鱼直播页面
sreach_windows = driver.current_window_handle#获得当前窗口的句柄
driver.maximize_window()#最大化窗口
time.sleep(3)#等待3s
driver.find_element_by_class_name("UnLogin-icon").click()#登陆按钮
time.sleep(15)#这时间用于扫描登陆
****************************************************************************************
****************************************************************************************

***************************************************************************************
138
***************************************************************************************
#while 1:
    time.sleep(3)
   # driver.find_elements_by_class_name("ListRecommend-refresh")[1].click()#刷新抽奖
    
    # 定位一组抽奖列表元素
    #texts = driver.find_elements_by_class_name("ListRecommend-lottery-cell-wrap")
    #for t in texts:
        #t.click();#点击抽奖
   #i=0
    while 1:
        if i==4:#斗鱼有一个抽奖的列表,列表有4行抽奖信息,遍历完后,刷新该抽奖列表
            break
        driver.find_elements_by_class_name("ListRecommend-lottery-cell-wrap")[i].click()#循环点击抽奖列表
        i=i+1
        time.sleep(5)
        # 获得当前所有打开的窗口的句柄
        all_handles = driver.window_handles
        # 进入注册窗口
        for handle in all_handles:
            if handle != sreach_windows:
                driver.switch_to.window(handle)
        time.sleep(4)
        try:#try-except用于捕捉抛出异常
            if  driver.find_element_by_class_name("UPlayerLotteryEnter-deadsec").is_displayed():
            #if isElementExist("UPlayerLotteryEnter-deadsec") and driver.find_element_by_class_name("UPlayerLotteryEnter-deadsec").is_displayed()!=True:
                time.sleep(3) 
                driver.find_element_by_class_name("UPlayerLotteryEnter-deadsec").click();
            else:
                print("没显示抽奖按钮")
                driver.close()
                driver.switch_to.window(sreach_windows)
                continue
            time.sleep(3)
            txt=driver.find_element_by_class_name("ULotteryStart-rule").text
            txt2=driver.find_element_by_class_name("ULotteryStart-joinBtnText").text
            if txt == '参与条件:发弹幕' or txt=='参与条件:发弹幕+关注主播':
                if txt2 =='一键参与':
                    print(txt)
                    driver.find_element_by_class_name("ULotteryStart-joinBtn").click()
                    driver.close()
                    driver.switch_to.window(sreach_windows)
                else:
                    driver.close()
                    driver.switch_to.window(sreach_windows)         
            else:
                print("送礼不参与")
                driver.close()
                driver.switch_to.window(sreach_windows)
        except:#如果异常则执行下列语句
            print("异常")
            driver.close()
            driver.switch_to.window(sreach_windows)

运行效果
PYTHON-selenium自动发送弹幕参与抽奖--仅供用于学习交流_第1张图片小奖品
PYTHON-selenium自动发送弹幕参与抽奖--仅供用于学习交流_第2张图片

注:
该脚本并不能直接运行(需要修改一点点方可运行)
该脚本仅供用于学习交流,禁止用于商业用途

你可能感兴趣的:(PYTHON,Selenium,弹幕脚本)