··
下载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)运行效果 小奖品
注: 该脚本并不能直接运行(需要修改一点点方可运行) 该脚本仅供用于学习交流,禁止用于商业用途