工具平台方面,首先介紹Listly 自動抓取網頁轉成 Excel 表格是最簡單容易上手的,免費方案限制至多抓取10個網站,這對很多人來說應該夠用了,只是一次只能取得一頁資料,沒辦法繼續自動爬梳第2,3,4,5,...頁資料,是比較陽春的做法。另外,使用 import.io 爬梳網頁資料也因為功能更強大而成為常被推薦的平台,只是沒有免費方案,只有7天試用期,所以就暫不考慮了。
需要功能更強大的免費工具平台,在此特別推薦ParseHub,在其官網註冊帳號後,還要下載搭配執行的使用者端軟體,免費方案限制至多抓取5個網站,且一次在40分鐘內只能自動爬梳200頁資料。接下來,就用三立新聞謠言終結站(該站版面異動過,改用康健雜誌練習吧)進行下列操作示範。不過,在練習之前先用Chrome的開發人員工具觀察Elements,找出要擷取的內容之對應原始碼,並且認識網路爬蟲的原理。
首先,執行ParseHub使用者端軟體並完成登入,然後開始進行新專案(New Project)。(ParseHub操作介面有改版過了,但操作程序邏輯相同,所以此文章就不重新截圖了。)
輸入要爬梳的網址,在此以三立新聞謠言終結站進行示範。
右半邊可以看到三立新聞謠言終結站的網頁內容,首先以滑鼠點選第一則新聞標題。
點選後的標題出現綠色框框,這時判斷出後續第2,3,...則的標題則是以黃色框框標示。
就點選其中一個黃色框框標題吧...
於是就會看到所有標題都變成綠色框框了,在左方指令區出現(30)的數字代表在此頁面共計有30則標題可抓取,且右下方出現讀取到每一則的標題文字及連結網址兩個欄位資料了,確認無誤就再繼續進行下去。
然後自行對欄位進行命名,如下圖所示,在左方指令區把新聞標題改命名為News,而標題文字改命名為title,在右下方出現讀取到的標題文字及連結網址兩個欄位名稱也變成News_title及News_url了。
接下來要開始把其他資料再一一納入爬梳範圍,在左方指令區的News項目點選 + 號,並選擇 "Relative Select"。
以滑鼠點選第一則新聞標題。
滑鼠往下移動,將畫面上出現的箭頭拉到第一則新聞標題下方的簡短敘述文字,點擊確認,代表這敘述文字是對應於該則新聞標題的。
於是可以看到每一則敘述文字及其對應的新聞標題都被標示出來了,且右下方出現讀取到每一則的敘述文字欄位資料了。
在左方指令區把新聞敘述文字改命名為description,在右下方出現讀取到的敘述文字欄位名稱也變成News_description了。
再繼續把其他資料納入爬梳範圍,在左方指令區的News項目點選 + 號,並選擇 "Relative Select"。
以滑鼠點選第一則新聞標題。
滑鼠往左移動,將畫面上出現的箭頭拉到第一則新聞標題左方的縮圖,點擊確認,代表這縮圖是對應於該則新聞標題的。
於是可以看到每一則縮圖及其對應的新聞標題都被標示出來了,且右下方出現讀取到每一則的縮圖欄位資料了。
在左方指令區把縮圖改命名為image,在右下方出現讀取到的縮圖欄位名稱也變成News_image及News_image_url了。
前面的步驟已經將所有要爬梳的資料納入了,最後就要設定如何抓取第2,3,4,...頁的方式,在左方指令區的Select page項目點選 + 號,並選擇 "Select"。
將網頁捲到最下方出現頁數的區域,點選 "下一頁" 這個按鈕。
點選後出現綠色框框。
在左方指令區將其命名為nextpage。
在左方指令區將nextpage項目點選 + 號,並選擇 "Click"。
在對話框點選 "Yes" 確認其為跳頁按鈕,然後點選 "Adcanced",在Maximum depth指定要自動抓取的頁面數量(這裡設定10是因為先確認過目前最後一頁為第11頁而總共要跳10次)。不過,可能因為網頁中的跳頁按鈕設計上的差異而導致一些問題,萬一遇到了,ParseHub官網有一些進階操作方式介紹。
在左方指令區可再次確認或變更剛剛的設定,確認無誤後就點選 ≡ 號,並選擇 "Run"。
確認執行 "Save and Run"。
就開始爬梳該網站囉。
爬梳完成後,可將資料匯出成CSV或JSON格式的檔案。
下載回來的CSV檔,若打開來為亂碼,怎麼辦? 可以參考這篇文章,就是先用記事本開啟該檔案並存檔一次,應該就可以變正常了。不然,也可以直接用Google試算表開啟也會是正常的。
如果對其他網站爬梳出現了無法解決的問題,可進一步參考官網教學文章或官方Youtube頻道。
- 舉例來說,藍姆酒吐司這個網站的內容,若從第一頁開始就無法完成所有頁面的自動爬梳,必須從最後一頁開始逆著做才行。
- 還有,這是假消息這個網站的內容,若從第一個標題點選,沒辦法自動判斷出全部的標題,而是改成從第三個標題先選才行喔。
- 至於像康健雜誌的搜尋頁、食力的搜尋頁等網站的內容,必須輸入關鍵字做查詢後才能呈現資訊,這樣的網頁爬梳設定就會更複雜一些囉。
////// 講古時間 ////////////////////////////////////////////////////////////////////////////////////////////////////////////
在2020年的1968之亂,我們也開發了另一個PK1968網站,相關過程可參閱EUCL部落格,在課堂上會跟大家分享這些過程及觀點。包含法律面: