今天,我們實現一個有意思的話題,就是讓計算機間隔一段隨機時間(為什麼是隨機時間呢?自己思考),自動打開並瀏覽一個網頁(當然了,這個網頁可以是文章、也可以是視頻網站了,自己發散思維)。這個自動化的過程適用範圍也很廣哦,大家自己思考……
下面開始我們今天的內容吧,我準備分下面幾步實現。
【材料準備】
當然了,說到Python自動化的課題,我們不得不討論一個神級庫,那就是Selenium,這個庫是為Python提供了一個調用接口,當然,它還為其它程式語言也提供了相應的接口,不要指責它的花心,這不影響我們使用Python調用它。使用之前,我們先要安裝這個神級庫,安裝方法當然是這樣了:pip install selenium。但是,今天我是用的是Pycharm,在Pycharm上如何安裝Selenium呢?安裝方法如下圖所示。
安裝完成Selenium之後,只是萬裡長徵走完了第一步。更複雜的是環境配置,對於瀏覽網頁的自動化測試案例,我們的環境當然是瀏覽器咯。今天,我們使用IE這個老牌瀏覽器。配置方法如下圖所示。當然,在配置之前,我們必須在本地環境安裝好IEDriver,這個東西類似我們電腦中的驅動程序。比如,Python要調用IE瀏覽器,IE瀏覽器是不認識它的,我們通過一個IEDriver來和Python溝通,不知道我的解釋對不對,大神勿噴!IEDriver的安裝和IE瀏覽器的具體配置過程,請大家自行搜索,網上已經爛大街了,在這裡不做贅述。環境配置好後,我們接下來繼續。
【分析原理】
我們通過Selenium庫打開一個網頁,如何隨機的時間段內進行操作,比如瀏覽一個網頁,如何獲取一個隨機時間呢?對了,聰明的童鞋已經猜到了,通過random.randint(min, max),讓計算機在這個時間段內生成一個隨機整數,然後呢,我們讓程序休眠這樣一段時間,time.sleep(random.randint(min, max))。之後,我們再打開一個網頁,這樣,是不是就瀏覽時沒有規律可循呢?這樣,聰明的電腦也就不可能判斷出來我們是人在瀏覽還是電腦在瀏覽了……到這裡,你可以仔細想一想它的用處了。至於使用Selenium瀏覽網頁的方法,我就不多說了,大家肯定知道咯……接下來,我們呢進行編碼。我們以某一個新聞網頁為例,打開網頁後,獲取該新聞網頁的某一欄目下的內容,然後逐個隨機打開這些新聞頁面,每個頁面瀏覽隨機時間,模擬滑鼠滾動操作。這個也可以是隨機的。最後關閉頁面即可。
【編碼實現】
具體內容如下圖所示。
然後創建一個Webdriver類傳入定義好的函數,即可使程序有效。
原始碼展示完畢。
【總結提高】
至於程序效果,我這裡就不再浪費篇幅展示了,大家可以自行測試下,程序當然也存在一些問題。比如:
沒有演示登錄過程,現在大多是網站是需要登錄的。程序只是對某一項目內容進行了隨機瀏覽,沒有對其他可以閱讀的項目瀏覽,容易被認為是電腦在瀏覽。可不可以更加智能化一點呢?操作滾動條的內容過於簡單,沒有結合頁面實際內容進行,部分頁面可能會出錯。歡迎大家留言討論,可以有很多擴展思路,自動化可以節省不少人力,比如模擬人登錄某個網站自己進行學習,由於調用本地驅動打開瀏覽器,因此,伺服器是很難判斷這個操作是否是認為操作。這樣,豈不是節省的我們的時間?對於大多數網絡課程的學習,都是可以使用這種辦法模擬登錄進行學習的,我們只需要開著電腦,讓電腦自己學習就可以了……
轉載請註明出處(百家號:Python高手養成)