發現動態網頁都沒東西?我該怎麼爬蟲?
不用擔心!這世上沒有什麼是爬蟲做不到的!連動態網頁都可以搞定!
動態網頁是什麼?靜態網頁又是什麼?
猜猜看加了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擴充的軟體,安裝完後可以幫助我們快速開發。
以上套件介紹完了
接著要說說爬蟲的邏輯了
我先附圖附code
寫累了~下回再更新內容~
大家可以先copy程式碼,在慢慢嘗試邏輯
參考來源: