iT邦幫忙

2024 iThome 鐵人賽

DAY 15
0
Python

Python大戰之網頁爬蟲系列 第 15

[Day 15] 爬蟲工具 – Selenium模組

  • 分享至 

  • xImage
  •  

在第二天的計畫排程中,今天應該是安排閱覽已經有的爬蟲實際範例,
並從中學習相關的概念做為參考。
但在經過思考後,我想要更改一下我的學習計畫:
我目前打算先學習不同類型的爬蟲工具,例如像是Selenium、Playwright等,
並在學習的過程中再參閱一些不同的範例學習。

換句話說,我想先熟悉這些爬蟲工具的實際運用,
因此把重點轉移到這個部分上面。
那在今天,我們會先學習Selenium這個套件,以下是今天的內容:

什麼是Selenium?

在實際學習前,我們應該先來仔細了解一下什麼是Selenium。
簡單來說,Selenium 是一個 開源的自動化測試工具
主要用於在各種網絡瀏覽器中去模擬用戶的行為,並自動化地操作瀏覽器。

其實最初它是為了進行網頁應用測試而設計的,
但因為它的功能可以應用的地方太多,因此它也被廣泛應用於網頁爬蟲。

那它實際可以操作那些工作呢?除了前面提到的網頁應用測試,還有像是
模擬多種瀏覽器、抓取網頁的數據、填寫表單等功能,
因此它就可以運用在我們的爬蟲的工具上。

安裝:

那首先的第一步,我們就是要先在我們的電腦系統上安裝Selenium,
那其實很簡單,我們可以直接透過pip來安裝:

https://ithelp.ithome.com.tw/upload/images/20240929/20169196Xm82hdvDOi.png

我們一樣通過快捷鍵Win + R開啟cmd (命令提示符窗口),
並在裡面輸入 pip install selenium:

https://ithelp.ithome.com.tw/upload/images/20240929/20169196rVSkkjOCuU.png

那在安裝完後,我們來檢查一下有沒有正確完成:

https://ithelp.ithome.com.tw/upload/images/20240929/20169196EnS4SyEaxh.png

我們輸入了pip show selenium來檢查剛剛有沒有正確下載。
而若是輸入完的畫面像上圖一樣,那代表已經正確下載好了。

而在安裝完畢Selenium後,我們就要來安裝它的驅動程式,
而我這邊選擇下載的是Selenium WebDriver

WebDriver 是用來執行並操作瀏覽器的 API 介面,
每一個瀏覽器都會有各自對應的驅動程式 ( driver ),
Selenium 會透過 WebDriver 來直接對瀏覽器進行操作,
將所支援的瀏覽器進行自動化的作業,就好像是真的使用者在操作。
接著我們就來進行安裝:

https://ithelp.ithome.com.tw/upload/images/20240929/20169196bZVsmCMJjY.png

因為在chrome的115版本以上,使用的webserver類型是跟之前不太一樣的,
所以這邊的操作會稍微麻煩一點。

首先,我們就是進到下載的官網,然後點下那行紅字,接著就會出現以下畫面:

https://ithelp.ithome.com.tw/upload/images/20240929/20169196xNqxSEb4ep.png

在這邊就是要選取跟你當前chrome相同的版本進行安裝。
也要特別注意,若是下載到不適配的版本,
就會導致系統無法正常運行,所以要多加留意。
而在這個當下我的chrome是129版,所以我們就點選第一個。

https://ithelp.ithome.com.tw/upload/images/20240929/20169196srC53L5oyb.png

接著就是選取適合你當前使用裝置的壓縮檔,那怎麼下載呢?
我們就是要把上面寫的壓縮檔按網址複製起來,然後直接貼到上方:

https://ithelp.ithome.com.tw/upload/images/20240929/20169196xHtUWdkZw3.png

接著按下搜尋,它就會幫你自動下載了。

https://ithelp.ithome.com.tw/upload/images/20240929/201691964Q39STKnQh.png

在這邊就是第二個要注意的點,我們要記得把webserver安裝
在python的主程式檔的相同路徑下,
如此在執行時才能正確的讀取到該程式。

順帶一提,因為要是exe檔才能使程式順利執行,
而window系統是會將exe給隱形起來的,但並不需要再額外自行加入
(因為我在這邊卡了一個多小時,怕有人也會遇到一樣的問題,故在這邊提一下)。
若是覺得可能有這個疑慮的,建議可以把你的路徑複製一次,
確認一下在指定地方的檔名到底是不是正確的。

接著在安裝完成後,我們就可以先來做一個小測試:

https://ithelp.ithome.com.tw/upload/images/20240929/20169196859An13VhA.png

以上的程式碼是為了測試webserver能不能正常運作。而也要注意,
要看一下在你的編譯器中是不是都有裝上所有的套件,
例如selenium,不然會沒辦法執行。
而在上述的程式碼中,我們的最終目的就是要開啟我們指定的網址,
而這邊是拿google的首頁當作範例:

https://ithelp.ithome.com.tw/upload/images/20240929/20169196w2FEf93q70.png

在執行後,可以看到我們正確的開啟了該網頁,
而此時這個新的 Chrome 視窗會標明「受到自動測試軟體控制」,
就表示程式正在控制相關的操作。
如此我們就進行完成了初步的測試。

小結:
在今天我們對Selenium進行了初步的學習以及環境設置,
今天原本是還要再入一些實做的部分,但因為安裝就搞了兩個多小時,
所以時間就變得有點緊繃,只好把實作部分移到明天了。

不過我想這篇文應該多多少少可以為那些遇到
下載問題的讀者提供一些幫助,畢竟我遇到的問題,
可能其他人也多多少少都會遇到,
就希望這篇文章可以提供一些支持了。

參考資料:
https://utrustcorp.com/python-selenium/
https://steam.oxxostudio.tw/category/python/spider/selenium.html
https://northbei.medium.com/%E5%9C%A8windows%E4%B8%8A%E5%AE%89%E8%A3%9Dpython-selenium-%E7%B0%A1%E6%98%93%E6%95%99%E5%AD%B8-eade1cd2d12d


上一篇
[Day 14] 代理IP
下一篇
[Day 16] 爬蟲工具 – Selenium實作
系列文
Python大戰之網頁爬蟲29
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言