我們常常用Selenium來抓取資料,因為可以驅動瀏覽器,這樣節省了我們很多的時間,但其實Selnium的主要功能其實不是用來寫爬蟲的,所以這篇還是先來介紹下Selenium。
Selenium是什麼
Selenium 是一個開源測試框架,用來對web應用(比如網站)做自動化測試用的,因為它可以驅動瀏覽器,諸如Chrome,Firefox,IE等,所以可以較為真實的模擬人自動去點選網站的各個按鈕,翻頁,填寫表單等,這樣節省了很多測試時間。
它是多語言的,不只是Python,還支援Java,C#,Ruby等等。
被應用於解決爬蟲技術問題,是一個巧合,一個完美巧合。
Selenium為爬蟲解決什麼問題
寫爬蟲比較繁瑣的幾個地方:
一是登陸,二是非同步載入,三是JS內容混淆。
因為Selenium是直接執行在瀏覽器上,它會自動根據你的程式設定去操作瀏覽器,所以它能自動把賬號填入到登陸框裡,自動點選登陸按鈕,完成登陸,不需要你千辛萬苦的去研究登陸加密過程。
像有些網站,當你的滑鼠向下拖動時,下面的內容才會載入出來,你可以讓Selenium自動讓滑鼠向下拖動,讓它載入內容,不用再去分析Ajax。
JS內容混淆是比較頭痛的,有些網站的html原始碼文字內容可能是一大串你看不懂的亂碼,在瀏覽器裡能正確顯示,你抓出來的html是亂碼,這就可能是網站通過JS把內容混淆了,如果你有了Selenium幾不用愁這個問題。
Selenium能幹什麼事情呢?總結一句就是:
你人用瀏覽器能幹什麼,Selenium基本就能幹什麼。
Selenium的缺點
上面把Selenium吹的神了,那它的缺點是什麼呢?
主要是慢,用它來抓資料是真慢,載入的時候慢,開啟頁面時也慢,等它把頁面資源載入完了,要好幾秒,抓一個頁面估計要10秒左右。
所以你對抓取效率要求高的話,就要想別的辦法。
但這也帶來了一個好處,就是這樣是完全模擬人的行為,所以對方網站不易發現你是爬蟲。
另一個缺點就是不太穩定,從老猿的使用情況來看,長時間執行會異常退出,所以要處理好容錯。
也有可能是driver版本不對應的問題引起,它的版本對應讓我也有點頭暈。
下一篇進入正題,下載安裝Selenium
我的公眾號:猿人學 Python 上會分享更多心得體會,敬請關注。
***版權申明:若沒有特殊說明,文章皆是猿人學 yuanrenxue.com 原創,沒有猿人學授權,請勿以任何形式轉載。***