国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

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

2020-02-15 21:26:59
字體:
來源:轉載
供稿:網友

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

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

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

網站登錄

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

而這里有個相對麻煩的東西,即驗證碼,而這個驗證碼是白底黑字,是簡單的字母數字形式,自然而然地就想到了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模擬點擊 登錄 按鈕,便完成了登錄過程。

進入課程

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

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

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

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

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

彈出框處理

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 浦东新区| 沧源| 安陆市| 蒙山县| 井研县| 泸定县| 安岳县| 凤凰县| 容城县| 海淀区| 蓝山县| 边坝县| 海淀区| 曲阳县| 清涧县| 墨竹工卡县| 江华| 巨鹿县| 崇明县| 砚山县| 六安市| 信阳市| 左权县| 天峨县| 芮城县| 牡丹江市| 巴林右旗| 雅安市| 陇南市| 无为县| 鸡东县| 兰西县| 千阳县| 进贤县| 徐州市| 湘阴县| 察哈| 江门市| 永昌县| 旬阳县| 班玛县|