Mike的Python學院

軟體程式設計、JavaScript、C#、網頁爬蟲、Java、資料蒐集、程式語言、網頁資料擷取與分析 Python、社群平台設計、HTML5、Python、電子商務、Beautifulsoup、Cloud、Selenium、資料分析、XML、Scrapy、HTML、網頁設計

Mike Ku

Learn Code With Mike品牌創辦人

2021/10/14

開發Python網頁爬蟲前需要知道的五個基本觀念

Q: 什麼是網頁爬蟲?
網頁爬蟲可以把它想像成是一種網頁機器人,能夠依照特定的模式或規則,自動化擷取網頁原始碼,來進行解析取得資料,所以被大量的應用在網頁資料蒐集。
當然網頁爬蟲部一定只能使用Python來進行實作,其它像Java、C#及JavaScript等程式語言也可以,而因為Python語法簡潔及擁有許多成熟的套件與框架,所以筆者選擇Python來開發網頁爬蟲。
Q: 網路是如何運作方式呢?
Python網頁爬蟲事實上就是模擬使用者來瀏覽網頁,這時候就需要瞭解網路的基本架構,分為用戶端(Client)及伺服端(Server)。
其中,用戶端(Client)就是使用者瀏覽網頁的裝置(例:本機電腦),當使用者點擊網頁時,也就代表請求(Request)的動作,存取該網頁連結的伺服端(Server),而伺服端(Server)接收連結得知使用者所要看的網頁後,將內容回應(Response)給用戶端(Client)。
這樣的網路運作方式就跟點餐的流程非常相似,當我們進到一間餐廳看著菜單,就像到一個網站瀏覽其中的網頁,接著,到櫃檯向老闆點餐的動作就像是看到喜歡的網頁,請求(Request)伺服端(Server)想看的網頁,最後,等待老闆烹飪完成送到餐桌上,像是伺服端(Server)端處理完成回應(Response)給使用者。
Q: 網頁的基本結構是什麼?
網頁是由許多的標籤(Tag)與元素(Elements)組成,並且具有階層式的結構,所以Python網頁爬蟲就需要透過定位,來取得所需的元素(Elements)。
Q: 常見的Python網頁爬蟲套件及框架
常見的Python網頁爬蟲套件及框架包含BeautifulSoup、Selenium及Scrapy。
BeautifulSoup對於HTML及XML的解析非常友善,並且容易入門使用,適用於靜態類型的網頁及小型的Python網頁爬蟲專案。
Selenium同時擁有網頁自動化測試及爬取功能,能夠搭配 JavaScript來進行爬取,所以非常適用於爬取需要滾動捲軸來動態載入資料的網站,像是電子商務或社群平台等。
Scrapy相較於BeautifulSoup及Selenium爬取速度較快且有效率,擁有非同步的功能,所以適用於爬取大量的資料及大型網頁爬蟲專案。
Q: Python網頁爬蟲有沒有標準的開發流程?
開發Python網頁爬蟲的流程,首先,會需要知道想要蒐集什麼樣的資料來進行分析或應用,接著,就可以尋找相關的網站,來分析要爬取的網頁原始碼結構,並且觀察是否有規則或模式可循,然後,選擇程式語言及適當的套件,依照分析的網頁結構及規則開發網頁爬蟲,最後,將爬取的資料依需求寫入資料庫、CSV檔案或雲端等。
如果想要學習更多的Python應用教學,歡迎前往Learn Code With Mike( https://www.learncodewithmike.com/2020/10/python-web-scraping.html )網站觀看更多精彩內容。
2 0 993 1