[Python教學] 動態網頁?新手爬蟲也可以很輕鬆

Gary
5 min readAug 29, 2020

發現動態網頁都沒東西?我該怎麼爬蟲?
不用擔心!這世上沒有什麼是爬蟲做不到的!連動態網頁都可以搞定!

動態網頁是什麼?靜態網頁又是什麼?

猜猜看加了flash動畫的網頁是動態網頁還是靜態網頁?
答案揭曉,是靜態網頁。
一般人以為動態網頁指的是包含flash或gif動畫的網頁,這是錯誤的,正確說法是會與瀏覽者互動的網頁,也可以說是運用到程式與資料庫的網頁(網站)。

靜態網頁:
簡稱:HTML,HTML是網站建置的基礎技術,常與CSS與Javascript配合成一個適合觀看的網頁,讓瀏覽器去讀取,一般判斷方式為網頁副檔名為html或htm皆為靜態網頁,靜態網頁的優勢為容易為搜尋引擎所接受,所以很多動態網頁會將動態網頁轉變成靜態方式,就是所謂的【偽靜態網頁】來提高搜尋引擎的友善度達到排名優化的成效。

動態網頁:
動態網頁主要是搭配伺服器與資料庫共同運作,主要是使用大量編譯的地方,如會員功能、購物車、討論區等等..,意思是指可以與網頁做互動編譯的網頁,動態網頁的內容隨著用戶的輸入和互動而有所不同有Perl、PHP、ASP、JSP、ColdFusion等編譯方式,從而對動態網頁的內容進行改變。

詳細請參考以下:

接者說說Python該如何爬取動態網站吧

這次要爬蟲的網站是氣象網站
https://www.cwb.gov.tw/V8/C/W/week.html

由於動態網站的關係
當你檢視原始碼(ctrl+u)會發現什麼找不到上面那張氣象表的內容
這就需要些套件來協助你

以下是會需要用到的套件

PhantomJS

是無介面瀏覽器 (Headless browser),背後的渲染引擎為 WebKit,適合進行自動化測試、捕捉截圖或監測網頁效能。
它能直接控制 DOM,方便你提取網頁中的元素內容,或是使用 JQuery 進行操作。新手上路請參考 PhantomJS 網頁上的 QuickStart

註:PhantomJS已停止更新了。
請參考:用Python做爬蟲的各位,不要再用PhantomJS了

Selenium(webdriver)

Selenium原為網頁測試工具,但由於可以直接以程式碼操控瀏覽器的特性,使其成為網路爬蟲必備的工具之一。

想進一步了解可參考

Json

這是因為我們會在爬蟲過程中,把資料整合成物件的形式,最終變成Json格式寫入檔案中。

Codecs

協助編碼的套件。
因為將資訊爬出來是是中文,但當寫入檔案時,會變成未編譯的樣子,故而使用這個套件。

Requert、BeautifulSoup

此套我在這篇有寫,我就不太重複解釋了

selenium IDE

這套件較特殊,這是Google擴充的軟體,安裝完後可以幫助我們快速開發。

以上套件介紹完了

--

--