利用Python腳本實現(xiàn)自動刷網(wǎng)課
人在學(xué)校,身不由己??傆幸恍┢嫫婀止值膶W(xué)習(xí)任務(wù),需要我們刷夠一定的時長去完成,但這很多都是不太令人感興趣的文字或是視頻,而這些課都有共同的特點就是會間隔一定時間發(fā)出彈窗,確認(rèn)屏幕前的我們是否還在瀏覽頁面。每次靠人工去點擊,會嚴(yán)重影響我們做其他正事的效率。

最近小李也需要刷夠一定的學(xué)習(xí)時長。于是乎,我便找了好兄弟Python來幫忙。下面我們就用Python來實現(xiàn)自動化刷課吧!
說到自動化,Selenium這個瀏覽器自動化測試框架就派上了用場,整個自動刷課的主角便是它。
網(wǎng)站登錄
那么為了實現(xiàn)自動刷課,我們需要先實現(xiàn)網(wǎng)站登錄,才能在指定的賬號內(nèi)進(jìn)行操作。常規(guī)的,我們需要在對應(yīng)的位置,找到網(wǎng)頁上對應(yīng)的元素,并通過程序?qū)懭搿?/p>

而這里有個相對麻煩的東西,即驗證碼,而這個驗證碼是白底黑字,是簡單的字母數(shù)字形式,自然而然地就想到了Python的OCR庫 tesserocr 。
把網(wǎng)站登錄界面的驗證碼圖片下載下來,調(diào)用 tesserocr 進(jìn)行識別。輸出result 即為讀出的字符串序列。
def ocr():
image=Image.open('captcha.jpg')
image=image.convert('L')
threshold=127
table=[]
for i in range(256):
if i<threshold:
table.append(0)
else:
table.append(1)
image=image.point(table,'1')
result=tesserocr.image_to_text(image)
return result
解決了驗證碼,我們直接用selenium模擬點擊 登錄 按鈕,便完成了登錄過程。
進(jìn)入課程
我們需要進(jìn)入的是這個實驗室準(zhǔn)入頁面,完成相關(guān)課程的學(xué)習(xí)。

在編寫代碼的過程中一直遇到報錯,信息如下:ElementNotInteractableException ,即這個頁面元素不能交互。我一度懷疑這個元素是因為 style 里的display屬性設(shè)置成了none。經(jīng)過觀察發(fā)現(xiàn),這個元素并沒有隱藏。

在面向Google編程中我發(fā)現(xiàn)了問題的所在,有大佬總結(jié)了這一類錯誤發(fā)生的原因。

首先查看是否需要切換 iframe, 然后看看是否需要用js的方法來scroll滾動條,接著看看是否需要加等待時間,最后check下這個元素是否是可以點擊的。
因為selenium操作頁面切換可能沒有那么塊,sleep延時一下等頁面切換了再進(jìn)行元素的查找。
彈出框處理
問題解決之后我們就來到了課程學(xué)習(xí)的頁面。

而這個頁面每個5分鐘就會彈出提醒框,然后暫停課程的學(xué)習(xí),因此我們需要利用selenium自動完成關(guān)閉提醒框的操作。

def answer_confirm(self):
# 每隔5分鐘彈出確認(rèn)窗口
count=1
while 1:
try:
confirm=self.browser.switch_to_alert()
print(confirm.text)
confirm.accept()
print("您已經(jīng)完成時長為{}分鐘的閱讀!".format(count*5))
count+=1
time.sleep(300)
except:
time.sleep(2)
這樣我們的程序就可以操作瀏覽器并完成一定時長的學(xué)習(xí)任務(wù)啦~

總結(jié)
以上所述是小編給大家介紹的利用Python腳本實現(xiàn)自動刷網(wǎng)課,希望對大家有所幫助!
相關(guān)文章
利用Pandas 創(chuàng)建空的DataFrame方法
下面小編就為大家分享一篇利用Pandas 創(chuàng)建空的DataFrame方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
python實現(xiàn)對指定字符串補(bǔ)足固定長度倍數(shù)截斷輸出的方法
今天小編就為大家分享一篇python實現(xiàn)對指定字符串補(bǔ)足固定長度倍數(shù)截斷輸出的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11
python調(diào)用windows api鎖定計算機(jī)示例
這篇文章主要介紹了python調(diào)用windows api鎖定計算機(jī)示例,需要的朋友可以參考下2014-04-04
Django在Win7下的安裝及創(chuàng)建項目hello word簡明教程
這篇文章主要介紹了Django在Win7下的安裝及創(chuàng)建項目hello word,需要的朋友可以參考下2014-07-07
Python實現(xiàn)Appium端口檢測與釋放的實現(xiàn)
這篇文章主要介紹了Python實現(xiàn)Appium端口檢測與釋放的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12

