有寫過爬蟲對於 Selenium 應該不陌生,多少都會聽過它
Selenium 實際上也是網頁測試工具,所以當然就可以拿來用在爬蟲
不過老實說我完全沒用過 Selenium,所以能為各位介紹的很有限
Selenium 如何測試網頁呢 ? 很直覺,非常直覺
這邊放上一段 Code :
(由於我沒有執行過它,所以我也不希望大家直接複製,我就只貼圖片了)
這段 Code 的意思是打開 Chrome 瀏覽器,然後前往巴哈姆特首頁,最後關閉瀏覽器
所以說 requests 是偽造請求的話,那 Selenium 是真的模擬使用者行為
既然有一個這麼強大的工具,那我們還需要 requests 幹什麼 ?
requests 是從底層發送 HTTP 請求,Selenium 是直接打開瀏覽器,就像腳本一樣
所以 requests 的效能及占用記憶體是直接屌打 Selenium 的
能在終端解決的事情就在終端解決,真的太難爬取的網站在使用 Selenium
這也是為什麼我沒有用過,甚至我有點討厭 Selenium 的原因
其實就是一個強迫症而已,我個人偏好事情都在終端完成,比較乾淨且效率好
具體來說什麼時候使用 Selenium 當爬蟲 ?
因為 Selenium 真的使用瀏覽器,所以有能力執行 JavaScript 及各種重導向
而 requests 無法執行 JavaScript,雖然這並不代表 requests 註定無法處理 AJAX 請求
只是被 JavaScript 荼毒到受不了的時候,或者有什麼太難處理的 POST 表單時
你就可以考慮使用 Selenium,總之就是來補 requests 太難做的事情
或者你只學 Selenium 爬蟲,用一招打天下也是可啦,不過我不建議 XD
至於 Selenium 的使用教學你可以參考 Google 到的各方資料
因為 Selenium 是一個全新的世界,我就不多解釋了,我也沒用過 XD
只是提到 AJAX 及爬蟲就有必要提到 Selenium
要注意 ! Selenium 分析 HTML 的方式不是用 BeautifulSoup
因為你已經進入到一個瀏覽器的世界了,就要使用 Selenium 相對的語法
如果未來有需要,別忘記還有 Selenium 這個工具