中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用Python腳本實現自動刷網課

發布時間:2020-09-03 15:29:56 來源:腳本之家 閱讀:650 作者:librauee 欄目:開發技術

人在學校,身不由己。總有一些奇奇怪怪的學習任務,需要我們刷夠一定的時長去完成,但這很多都是不太令人感興趣的文字或是視頻,而這些課都有共同的特點就是會間隔一定時間發出彈窗,確認屏幕前的我們是否還在瀏覽頁面。每次靠人工去點擊,會嚴重影響我們做其他正事的效率。

利用Python腳本實現自動刷網課

最近小李也需要刷夠一定的學習時長。于是乎,我便找了好兄弟Python來幫忙。下面我們就用Python來實現自動化刷課吧!

說到自動化,Selenium這個瀏覽器自動化測試框架就派上了用場,整個自動刷課的主角便是它。

網站登錄

那么為了實現自動刷課,我們需要先實現網站登錄,才能在指定的賬號內進行操作。常規的,我們需要在對應的位置,找到網頁上對應的元素,并通過程序寫入。

利用Python腳本實現自動刷網課

而這里有個相對麻煩的東西,即驗證碼,而這個驗證碼是白底黑字,是簡單的字母數字形式,自然而然地就想到了Python的OCR庫 tesserocr 。

把網站登錄界面的驗證碼圖片下載下來,調用 tesserocr 進行識別。輸出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模擬點擊 登錄 按鈕,便完成了登錄過程。

進入課程

我們需要進入的是這個實驗室準入頁面,完成相關課程的學習。

利用Python腳本實現自動刷網課

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

利用Python腳本實現自動刷網課

在面向Google編程中我發現了問題的所在,有大佬總結了這一類錯誤發生的原因。

利用Python腳本實現自動刷網課

首先查看是否需要切換 iframe, 然后看看是否需要用js的方法來scroll滾動條,接著看看是否需要加等待時間,最后check下這個元素是否是可以點擊的。

因為selenium操作頁面切換可能沒有那么塊,sleep延時一下等頁面切換了再進行元素的查找。

彈出框處理

問題解決之后我們就來到了課程學習的頁面。

利用Python腳本實現自動刷網課

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

利用Python腳本實現自動刷網課

def answer_confirm(self):
    # 每隔5分鐘彈出確認窗口
    count=1
    while 1:
      try:
        confirm=self.browser.switch_to_alert()
        print(confirm.text)
        confirm.accept()
        print("您已經完成時長為{}分鐘的閱讀!".format(count*5))
        count+=1
        time.sleep(300)
      except:
        time.sleep(2)

這樣我們的程序就可以操作瀏覽器并完成一定時長的學習任務啦~

利用Python腳本實現自動刷網課

總結

以上所述是小編給大家介紹的利用Python腳本實現自動刷網課,希望對大家有所幫助!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

玉树县| 金乡县| 乌鲁木齐市| 敖汉旗| 双峰县| 青州市| 辽宁省| 榕江县| 阳谷县| 乌鲁木齐市| 津市市| 新平| 广丰县| 同江市| 恩平市| 漾濞| 缙云县| 荆门市| 北碚区| 巴东县| 筠连县| 萨嘎县| 察雅县| 湄潭县| 常德市| 莱西市| 慈溪市| 承德市| 张掖市| 昌平区| 西乡县| 钟山县| 牡丹江市| 五常市| 静乐县| 海城市| 察雅县| 浑源县| 蓬安县| 黑山县| 新宁县|