網站爬蟲:如何從網路上蒐集資料

把供應商網站上的價格手動複製到試算表裡,二十項商品還應付得來。如果是兩千項,就要花上一整週,而且還會有打錯的地方。網站爬蟲(也稱為剖析器)是一個小程式,它會替您打開頁面,從每一頁擷取相同的資訊,再存成表格。以下說明它能做什麼、要準備什麼,以及該遵守哪些規則。

爬蟲適合用在哪裡
只要同一類資訊分布在許多相似的頁面上,爬蟲就派得上用場:
- 價格和庫存。 追蹤供應商價格的變化,或哪些品項缺貨。
- 供應商的商品目錄。 把品名、說明、圖片和價格搬到您自己的商店。
- 刊登資訊。 把公開看板上的房屋、汽車或職缺刊登資訊彙整成一張表格。
- 活動和文章。 從公開的行事曆或新聞頁面蒐集日期、標題和連結。
只蒐集您可以蒐集的資料
在做任何事之前,先確認這些資料可以合理取得:
- 只限公開頁面。 如果必須登入才能看到資料,爬蟲就不是對的工具。
- 閱讀網站的使用條款。 很多網站會說明哪些資料可以蒐集、哪些不行。大型平台、搜尋引擎和社群網站通常禁止爬取;請改用它們官方的匯出功能或 API。
- 遵守存取頻率限制。 每頁之間暫停幾秒,能讓網站的負載維持在低水準。絕對不要試圖繞過驗證碼或封鎖。
- 遵守隱私法規。 個人的姓名、電子郵件和電話號碼都是個人資料,許多國家嚴格限制蒐集這類資料。請不要蒐集。
最終,您能否蒐集和使用某個網站的資料由您自己決定,所以開始前請先確認。
描述頁面
爬蟲是依照頁面的實際結構撰寫的,所以請描述得精確一點:
- 一個列表頁的連結和一個商品頁的連結。
- 大約有多少頁, 例如「約 40 個列表頁,每頁 24 項商品」。
- 從瀏覽器儲存的一兩個頁面(檔案 > 另存網頁),或這些頁面的螢幕截圖。
把欄位列成表格的欄
把成果想像成一張試算表,依序寫出各欄名稱,並各舉一個例子:
- 品名: 「橡木砧板(大)」
- 價格: 「34.90」
- 原價: 「39.90」,如果商品正在特價
- 有庫存: 「是」
- 商品頁的連結和圖片連結
十個清楚的欄位勝過三十個模糊的欄位。加上您需要的任何規則,例如「只要有庫存的商品」。
選擇格式和執行的地方
- CSV 可以用任何試算表開啟,也能匯入大多數的商店系統。
- Excel 比較方便您手動篩選和排序。
- JSON 適合要把資料載入其他地方的開發人員。
爬蟲是在您自己的電腦上用 Python 執行,所以資料會直接交到您手上,而且每當您需要最新數字時都可以再執行一次。
當網站改版時
爬蟲是依照頁面目前的樣子運作的。如果網站改版,爬蟲可能會找不到欄位,需要更新。即使以有禮貌的速度存取,網站也可能限制造訪次數。如果您每週都要依賴這些資料,請預先做好準備。
重點整理
決定您需要哪些公開頁面和欄位、確認網站的使用條款、保持有禮貌的存取速度,並排除個人資料。如果您不想自己寫程式,可以訂購網站爬蟲:您提供網站、欄位和一兩個儲存下來的頁面,就能拿到 Python 程式碼、一個設定檔,以及一份逐步說明如何執行、輸出成 CSV、Excel 或 JSON 的指南。只有在您驗收作品後才會撥付款項。