电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Python selenium模擬手動(dòng)操作實(shí)現(xiàn)無人值守刷積分功能

瀏覽:3日期:2022-07-25 16:02:48

經(jīng)常為學(xué)校的各種刷分而發(fā)愁,得知開學(xué)無望,日后還要刷課,索性自動(dòng)化一次,學(xué)而不用乃愚昧 聰慧

四大模塊

初始化

from selenium import webdriverif __name__ == ’__main__’:driver = webdriver.Chrome()url = ’https://pc.xuexi.cn/points/login.html?ref=https://pc.xuexi.cn/points/my-points.html’driver.get(url = url)

文章有效閱讀積分 + 文章時(shí)長(zhǎng)積分

def article():driver.get(url=’https://www.xuexi.cn/d05cad69216e688d304bb91ef3aac4c6/9a3668c13f6e303932b5e0e100fc248b.html’)# 該網(wǎng)址只是眾文章閱讀中的其中一個(gè)類別,還有很多類別的文章供閱讀,只需更換鏈接即可 article_lis = WebDriverWait(driver,100).until(EC.presence_of_all_elements_located((By.XPATH,’//span[@style=white-space: nowrap;]’))) # 顯示等待 WebDriverWait(driver,100).until() 在這里等待,直到滿足條件或等待時(shí)間超過100,即 用xpath找到符合屬性 的span節(jié)點(diǎn); print(’共找到%s篇文章’ % len(article_lis)) article_num = 0 # article_num 每天有效閱讀上限為6篇文章,但為確保有效時(shí)長(zhǎng)達(dá)到12分鐘,所以多出2篇 for data in article_lis: # 遍歷找到的文章列表進(jìn)行模擬閱讀 if article_num >= 8: # 當(dāng)讀夠8篇時(shí)跳出循環(huán),結(jié)束文章刷分 break try: loading_page(data) print(’已加載’, data.text) # 輸出已刷文章,從而得出進(jìn)度 article_num += 1 except: continue def loading_page(element = None): element.click() ele = driver.find_element_by_xpath(’//a[contains(class,'search-icon')]’) ele.send_keys(Keys.PAGE_DOWN) # 模擬頁面滾動(dòng)。采用的方法是找到 ‘搜索’ 功能按鈕,不點(diǎn)擊,直接模擬點(diǎn)擊按鍵 PAGE_DOWN time.sleep(120) # 每個(gè)頁面停留兩分鐘,至少30秒。經(jīng)測(cè)試,每隔30s 將會(huì)提交一個(gè)post請(qǐng)求,只有請(qǐng)求過后,有效閱讀數(shù)才會(huì) +1 return None

視頻有效觀看積分 + 視頻時(shí)長(zhǎng)積分

driver.get(url = ’https://www.xuexi.cn/4426aa87b0b64ac671c96379a3a8bd26/db086044562a57b441c24f2af1c8e101.html#11c4o0tv7nb-5’) # 同上,該網(wǎng)址只是眾視頻觀看中的其中一個(gè)類別,還有很多類別的視頻供觀看,只需更換鏈接即可 video_lis = WebDriverWait(driver,100).until(EC.presence_of_all_elements_located((By.XPATH,’//div[@style='margin: 0px auto;']/div/div’))) # 同上,顯示等待 print(’共找到%s篇文章’ % len(video_lis)) video_long = 0 # 記錄已經(jīng)播放的時(shí)間 video_lis_1 = [] for data in video_lis: video_lis_1.append(data.get_attribute(’data-link-target’))# 與文章不同的地方是,文章閱讀是模擬點(diǎn)擊,而視頻播放獲取網(wǎng)址,放到video_lis_1 中 for url_1 in video_lis_1: # 遍歷視頻列表,播放視頻 if video_long >= 1080: #視頻時(shí)長(zhǎng)為18分鐘,即1080秒,在播放時(shí)間超過18分后結(jié)束播放,其實(shí)也根據(jù)分鐘判斷,我也不知道為什么當(dāng)時(shí)就用上了秒 break try: video.get(url = url_1) tim_now = loading_video(driver = driver) video_long += tim_now*60 # loading_video 返回的是已閱讀分鐘數(shù),故*60 print(’視頻播放中,已播放時(shí)長(zhǎng)%s秒’%video_num) except: continue def loading_video(driver = None): elem_first = WebDriverWait(driver, 100).until(EC.presence_of_all_elements_located((By.XPATH, ’//span[@class='duration']’))) elem_start = driver.find_element_by_xpath(’//div[@class='outter']’) elem_start.click() # 打開網(wǎng)頁后不自動(dòng)播放,應(yīng)該是因?yàn)槭侵苯哟蜷_網(wǎng)址的原因 # 因?yàn)樵诖酥拔乙仓苯油ㄟ^模擬點(diǎn)擊打開網(wǎng)頁,結(jié)果是自動(dòng)播放的,但有一點(diǎn)兒不符合我當(dāng)時(shí)的需求,故改為打開網(wǎng)頁的方式 tim_num = (int(elem_first[0].text[0])*10 + int(elem_first[0].text[1]))# 目的是獲取視頻的總時(shí)間,只取分鐘數(shù) if tim_num != 0: # 因?yàn)橛行┮曨l它根本不到一分鐘,故加判斷條件 time.sleep(tim_num * 60) return tim_num else: time.sleep(60) # 不足一分鐘,不播放也要湊夠一分鐘 return 1

每日答題積分

def DaTi():driver.get(url = ’https://pc.xuexi.cn/points/exam-practice.html’) elem_juje = WebDriverWait(driver,100).until(EC.presence_of_element_located((By.XPATH,’//div[@class='q-header']’))) juje = elem_juje.get_attribute(’innerText’) # 在每日答題中,有三類題,判斷題、選擇題、填空題,所以先獲取題的類別 # 注意 特別需要注意的是 By.XPATH 和 xpath 文本獲取稍有卻別,By.XPATH 獲取文本方式為.get_attribute(’innerText’) time.sleep(1) # 等待一秒,其實(shí)也無所謂,但是為防止過快操作造成電腦卡頓,還是等待一秒。 if ’選’ in juje: elem_tishi = WebDriverWait(driver, 100).until(EC.presence_of_element_located((By.XPATH, ’//span[@class='tips']’))) elem_tishi.click() # 在答題中,答案在查看提示中以紅色標(biāo)記,所以首先要模擬點(diǎn)擊查看答案,使答案加載 time.sleep(0.5) elem_answer = WebDriverWait(driver, 100).until(EC.presence_of_all_elements_located((By.XPATH, ’//div[@class='line-feed']/font’))) # 提取紅色標(biāo)記的文字,即答案 time.sleep(0.5) # 同樣沒什么實(shí)際意義ans_lis = [] for elem in elem_answer: ans_lis.append(elem.get_attribute(’innerText’)) # 因?yàn)檫x擇題嘛,不一定就是單選題,所以要存放這些答案,以便于在選項(xiàng)中找答案 print(’得到答案’) time.sleep(0.5) # 同樣沒什么實(shí)際意義elem_juje.click()# 再次模擬點(diǎn)擊的原因是 此時(shí) 查看提示 框還處于打開狀態(tài),如果不關(guān)閉,會(huì)影響提交答案的操作# 模擬點(diǎn)擊網(wǎng)頁,關(guān)閉 查看提示 框 time.sleep(0.5)elem_xuanxiang = WebDriverWait(driver, 100).until(EC.presence_of_all_elements_located((By.XPATH, ’//div[@class='question']/div[@class='q-answers']/div[contains(@class,'q-answer')]’))) # 獲取所有的選項(xiàng)節(jié)點(diǎn)for elem in elem_xuanxiang: data = elem.get_attribute(’innerText’)[3:].replace(’-’,’’) print(data) for i in ans_lis:if i in data: elem.click() ans_lis.remove(i) # 根據(jù)依次A -- > D 遍歷答案,將兩者對(duì)照進(jìn)行選擇與否,所以滿足要求后去除該答案 # 防止對(duì)選項(xiàng)多次點(diǎn)擊造成取消選擇或其他錯(cuò)誤 time.sleep(0.5) #防止過快操作,每次選擇后等待0.5秒 break elem_next = WebDriverWait(driver, 100).until(EC.presence_of_element_located((By.XPATH,’//div[@class='action-row']/button’))) elem_next.click() # 模擬點(diǎn)擊確定按鈕跳轉(zhuǎn)下一題 DaTi(driver) elif ’填’ in juje: elem_tishi = WebDriverWait(driver,100).until(EC.presence_of_element_located((By.XPATH,’//span[@class='tips']’))) elem_tishi.click() time.sleep(0.5) elem_answer = WebDriverWait(driver,100).until(EC.presence_of_element_located((By.XPATH,’//div[@class='line-feed']’))) time.sleep(0.5) if ’請(qǐng)觀看視頻’ in elem_answer.get_attribute(’innerText’): input(’手動(dòng)選擇答案后無需點(diǎn)擊確定,在此輸入回車?yán)^續(xù)’) elem_next = WebDriverWait(driver, 100).until(EC.presence_of_element_located((By.XPATH, ’//div[@class='action-row']/button’))) elem_next.click() # 在填空題中會(huì)有觀看視頻的題目,而且查看提示中會(huì)寫‘請(qǐng)觀看視頻’而不會(huì)直接給出答案,所以要人工選擇 elem_answer = WebDriverWait(driver,100).until(EC.presence_of_all_elements_located((By.XPATH,’//div[@class='line-feed']/font’))) answer = [] time.sleep(0.5) for elem in elem_answer: answer.append(elem.get_attribute(’innerText’))# 同樣填空題中也有多個(gè)空的情況,所以將答案放在列表里 time.sleep(1) elem_data = WebDriverWait(driver,100).until(EC.presence_of_all_elements_located((By.XPATH,’//input[@class='blank']’))) # 找到每個(gè)空 for i in range(len(answer)): elem_data[i].send_keys(answer[i]) time.sleep(0.5) # 通過遍歷空,將對(duì)應(yīng)的答案寫入 elem_data[0].click() time.sleep(1) # 模擬點(diǎn)擊網(wǎng)頁,因?yàn)樵趯懲昕蘸螅稽c(diǎn)擊網(wǎng)頁會(huì)有確定按鈕為不可點(diǎn)的情況 elem_next = WebDriverWait(driver,100).until(EC.presence_of_element_located((By.XPATH,’//div[@class='action-row']/button’))) elem_next.click() DaTi(driver) elif ’判’ in juje:# 同上,判斷題不會(huì)直接給出答案,所以只能手動(dòng)吧 input(’手動(dòng)選擇答案后無需點(diǎn)擊確定,在此輸入回車?yán)^續(xù)’) elem_next = WebDriverWait(driver, 100).until(EC.presence_of_element_located((By.XPATH, ’//div[@class='action-row']/button’))) elem_next.click() DaTi(driver)

結(jié)合PyQt5,最終效果圖

聲明:圖片沒有別的意思,個(gè)人感覺很歡喜,圖片轉(zhuǎn)自------百度圖片

Python selenium模擬手動(dòng)操作實(shí)現(xiàn)無人值守刷積分功能

總結(jié)

到此這篇關(guān)于Python selenium模擬手動(dòng)操作實(shí)現(xiàn)無人值守刷積分功能的文章就介紹到這了,更多相關(guān)Python selenium刷積分內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 广州番禺搬家公司_天河黄埔搬家公司_企业工厂搬迁_日式搬家_广州搬家公司_厚道搬迁搬家公司 | 沈阳缠绕膜价格_沈阳拉伸膜厂家_沈阳缠绕膜厂家直销 | 宽带办理,电信宽带,移动宽带,联通宽带,电信宽带办理,移动宽带办理,联通宽带办理 | 影视模板素材_原创专业影视实拍视频素材-8k像素素材网 | 宁波普瑞思邻苯二甲酸盐检测仪,ROHS2.0检测设备,ROHS2.0测试仪厂家 | 纯水电导率测定仪-万用气体检测仪-低钠测定仪-米沃奇科技(北京)有限公司www.milwaukeeinst.cn 锂辉石检测仪器,水泥成分快速分析仪-湘潭宇科分析仪器有限公司 手术室净化装修-手术室净化工程公司-华锐手术室净化厂家 | 新能源汽车电池软连接,铜铝复合膜柔性连接,电力母排-容发智能科技(无锡)有限公司 | 专业的压球机生产线及解决方案厂家-河南腾达机械厂 | 珠海白蚁防治_珠海灭鼠_珠海杀虫灭鼠_珠海灭蟑螂_珠海酒店消杀_珠海工厂杀虫灭鼠_立净虫控防治服务有限公司 | CPSE安博会| 挤奶设备过滤纸,牛奶过滤纸,挤奶机过滤袋-济南蓝贝尔工贸有限公司 | 深圳APP开发_手机软件APP定制外包_小程序开发公司-来科信 | 无硅导热垫片-碳纤维导热垫片-导热相变材料厂家-东莞市盛元新材料科技有限公司 | 硫酸钡厂家_高光沉淀硫酸钡价格-河南钡丰化工有限公司 | 净化车间_洁净厂房_净化公司_净化厂房_无尘室工程_洁净工程装修|改造|施工-深圳净化公司 | 食品机械专用传感器-落料放大器-低价接近开关-菲德自控技术(天津)有限公司 | 注塑模具_塑料模具_塑胶模具_范仕达【官网】_东莞模具设计与制造加工厂家 | 成都LED显示屏丨室内户外全彩led屏厂家方案报价_四川诺显科技 | 税筹星_灵活用工平台_企业财务顾问_财税法薪综合服务平台 | 工业硝酸钠,硝酸钠厂家-淄博「文海工贸」 | 大巴租车平台承接包车,通勤班车,巴士租赁业务 - 鸿鸣巴士 | 佛山市钱丰金属不锈钢蜂窝板定制厂家|不锈钢装饰线条|不锈钢屏风| 电梯装饰板|不锈钢蜂窝板不锈钢工艺板材厂家佛山市钱丰金属制品有限公司 | 行业分析:提及郑州火车站附近真有 特殊按摩 ?2025实地踩坑指南 新手如何避坑不踩雷 | 低压载波电能表-单相导轨式电能表-华邦电力科技股份有限公司-智能物联网综合管理平台 | LED灯杆屏_LED广告机_户外LED广告机_智慧灯杆_智慧路灯-太龙智显科技(深圳)有限公司 | 北京成考网-北京成人高考网 | 散热器-电子散热器-型材散热器-电源散热片-镇江新区宏图电子散热片厂家 | 佛山商标注册_商标注册代理|专利注册申请_商标注册公司_鸿邦知识产权 | 南京PVC快速门厂家南京快速卷帘门_南京pvc快速门_世界500强企业国内供应商_南京美高门业 | 机房监控|动环监控|动力环境监控系统方案产品定制厂家 - 迈世OMARA | 聚氨酯保温钢管_聚氨酯直埋保温管道_聚氨酯发泡保温管厂家-沧州万荣防腐保温管道有限公司 | 半自动预灌装机,卡式瓶灌装机,注射器灌装机,给药器灌装机,大输液灌装机,西林瓶灌装机-长沙一星制药机械有限公司 | 数显水浴恒温振荡器-分液漏斗萃取振荡器-常州市凯航仪器有限公司 | 注塑模具_塑料模具_塑胶模具_范仕达【官网】_东莞模具设计与制造加工厂家 | 粉末冶金注射成型厂家|MIM厂家|粉末冶金齿轮|MIM零件-深圳市新泰兴精密科技 | 钢格板|热镀锌钢格板|钢格栅板|钢格栅|格栅板-安平县昊泽丝网制品有限公司 | 【电子厂招聘_普工招工网_工厂招聘信息平台】-工立方打工网 | 智能楼宇-楼宇自控系统-楼宇智能化-楼宇自动化-三水智能化 | 防渗土工膜|污水处理防渗膜|垃圾填埋场防渗膜-泰安佳路通工程材料有限公司 | 北京签证代办_签证办理_商务签证_旅游签证_寰球签证网 | 气动绞车,山东气动绞车,气动绞车厂家-烟台博海石油机械有限公司 气动隔膜泵厂家-温州永嘉定远泵阀有限公司 |