網路爬蟲(Web Scraping)簡介與實作

更新於 發佈於 閱讀時間約 5 分鐘

關於爬蟲這個主題已經有許多前輩介紹了,但我現在才開始學習。本篇也會實際操作我自己嘗試的網路爬蟲。

1. 爬蟲簡介

什麼是網路爬蟲?

網路爬蟲(Web Scraping) 就像在網路上「自動蒐集資料的機器人」。

想像情境:

你是一個學生,想蒐集補習班課程的資料。如果你手動查詢每個補習班的課程、時間與價格,會非常耗時。這時,爬蟲 就像一個自動助教,幫你到各個補習班網站,自動找出相關資訊並存入資料庫


爬蟲的工作流程

  1. 發送請求(Request):爬蟲像瀏覽器一樣,向網站發出請求,索取資料。
  2. 接收回應(Response):網站回應 HTML 網頁內容。
  3. 資料解析(Parsing):爬蟲從 HTML 中挑出有用的資料
  4. 儲存資料(Storage):將蒐集到的資料存進檔案或資料庫

然而並不是每個網站都可以直接爬蟲,有些網站會禁止爬蟲,因為大量的爬蟲會使小型的 Server 崩潰。不能大規模的爬蟲,又要提供使用者一些資料,就會使用 API 這個功能


2. API 是一個窗口

什麼是 API?

API(Application Programming Interface) 就像網站提供的自動窗口

補習班比喻:查詢窗口

  • API = 點餐機 (API 是點餐窗口) 就像速食店的自動點餐機,它是一個標準化的窗口,讓你方便點餐,而不需要進廚房自己做漢堡
  • 發送請求 (Request):點餐機(API)是窗口,讓顧客(程式)下訂單。
    • 你只需要選擇餐點、按下確定,點餐機會把訂單傳給廚房。
    • 你不需要知道廚房裡的料理過程(API 背後的伺服器操作)。
    • 點餐的請求格式要標準化,否則系統無法處理。
  • 處理請求 (Server): 廚房(伺服器)處理訂單,製作餐點。
    • 廚房負責處理訂單,製作對應的餐點,並將結果交給點餐機。
  • 回應資料 (Response):顧客(用戶端程式)拿到食物(資料)
    • 最後,你從點餐機拿到完成的食物(API 回應的資料),不用進廚房處理任何細節。

3. 合法爬蟲:爬蟲須知

注意事項:

  1. 網站版權與爬蟲守則:
    • 爬蟲前要查看網站的 robots.txt,了解允許抓取的範圍。
  2. 請求間隔:
    • 不要頻繁發送請求, 否則可能被視為惡意攻擊。
  3. 使用合法 API:
    • 如果網站提供 API,建議優先使用 API,速度更快、結構更穩定。



實際操作爬蟲

[Python爬蟲實例] 104人力銀行:抓取更詳細的職缺資訊,搶先別人一步收到通知!

參考其他工程師的 github(這裡有套件),原本想要用 LinkedIn 上的 ABB 亞太職缺資料 Web Scraping 結果花了 2 小時一直找不到 HTML 的 Class,希望再學完網頁後再試著練習。再來嘗試104 人力銀行的查詢也是停在從網頁抓 Header 就找不到,所以我學完網頁會再試試。

  1. 下載套件要在 Terminal 用。
raw-image

結果只能先爬有 API 的嗚嗚

爬取臺灣銀行牌告匯率

(直接點標題有教學文章)

臺灣銀行的連結與API https://rate.bot.com.tw/xrt

可以抓出當下的即時匯率:

raw-image


(取自網友提供的程式碼)

import requests

url = 'https://rate.bot.com.tw/xrt/flcsv/0/day' # 牌告匯率 CSV 網址
rate = requests.get(url) # 爬取網址內容
rate.encoding = 'utf-8' # 調整回應訊息編碼為 utf-8,避免編碼不同造成亂碼
rt = rate.text # 以文字模式讀取內容
rts = rt.split('\n') # 使用「換行」將內容拆分成串列
for i in rts: # 讀取串列的每個項目
try: # 使用 try 避開最後一行的空白行
a = i.split(',') # 每個項目用逗號拆分成子串列
print(a[0] + ': ' + a[12]) # 取出第一個 ( 0 ) 和第十三個項目 ( 12 )
except:
break
留言
avatar-img
留言分享你的想法!
avatar-img
越南放大鏡 X 下班資工系
14會員
61內容數
雙重身份:越南放大鏡 X 下班資工系 政大東南亞語言學系是我接觸越南語的起點,畢業後找越南外派工作的生活跟資訊時,發現幾乎都是清單式的分享,很難身歷其境。所以我希望「越南放大鏡」可以帶讀者看到更多細節和深入的觀察。 - 下班資工系則是自學資工系的課程內容,記錄實際操作的過程,學習理論的過程。希望可以跟讀者一起成長。
2025/04/24
本系列文章將循序漸進地介紹 JavaScript 的核心概念,從基礎語法到進階應用,例如非同步程式設計和 React 基礎。內容淺顯易懂,並使用生活化的比喻幫助讀者理解,搭配程式碼範例,適合 JavaScript 初學者學習。
Thumbnail
2025/04/24
本系列文章將循序漸進地介紹 JavaScript 的核心概念,從基礎語法到進階應用,例如非同步程式設計和 React 基礎。內容淺顯易懂,並使用生活化的比喻幫助讀者理解,搭配程式碼範例,適合 JavaScript 初學者學習。
Thumbnail
2025/04/21
本文介紹行動通訊網路的演進歷史,從1G到5G,並說明ITU與3GPP在制定通訊規格上的重要角色,以及5G的三大關鍵應用場景:URLLC、eMBB和mMTC。
Thumbnail
2025/04/21
本文介紹行動通訊網路的演進歷史,從1G到5G,並說明ITU與3GPP在制定通訊規格上的重要角色,以及5G的三大關鍵應用場景:URLLC、eMBB和mMTC。
Thumbnail
2025/04/11
這篇文章說明網路的七層模型、IP 位址、通訊埠、TCP/UDP 協定、HTTP 協定、HTTP 狀態碼以及 WebSocket,並解釋它們之間的關係與互動方式。文中包含許多圖表和範例,幫助讀者理解這些網路概念。
Thumbnail
2025/04/11
這篇文章說明網路的七層模型、IP 位址、通訊埠、TCP/UDP 協定、HTTP 協定、HTTP 狀態碼以及 WebSocket,並解釋它們之間的關係與互動方式。文中包含許多圖表和範例,幫助讀者理解這些網路概念。
Thumbnail
看更多
你可能也想看
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
從實際應用中學習 Python 程式設計,提升技能並建立作品集。文章提供八個循序漸進的 Python 專案範例,涵蓋檔案操作、網路爬蟲、Web 應用、自動化腳本、數據分析、遊戲開發、API 互動及應用程式部署,並附上實戰建議及學習資源。
Thumbnail
從實際應用中學習 Python 程式設計,提升技能並建立作品集。文章提供八個循序漸進的 Python 專案範例,涵蓋檔案操作、網路爬蟲、Web 應用、自動化腳本、數據分析、遊戲開發、API 互動及應用程式部署,並附上實戰建議及學習資源。
Thumbnail
使用 Selenium 自動滾動網頁並抓取文章連結 在網頁爬蟲開發中,我們經常遇到需要自動滾動頁面以加載新內容的場景,特別是在一些無限滾動的頁面中(例如新聞網站或社交媒體)。 本文將介紹如何使用 Python 的 Selenium 庫來實現這一需求,並抓取頁面中的VCC自己文章的連結。
Thumbnail
使用 Selenium 自動滾動網頁並抓取文章連結 在網頁爬蟲開發中,我們經常遇到需要自動滾動頁面以加載新內容的場景,特別是在一些無限滾動的頁面中(例如新聞網站或社交媒體)。 本文將介紹如何使用 Python 的 Selenium 庫來實現這一需求,並抓取頁面中的VCC自己文章的連結。
Thumbnail
本篇文章介紹網路爬蟲的基本概念和操作流程,適合初學者瞭解爬蟲的功能與合法使用方式。文章說明爬蟲如何自動蒐集資料及 API 的重要角色,同時提醒用戶注意指南與網站規範。作者也自己嘗試網路爬蟲。也期許自己可以在未來學習到網頁時,能成功操作 LinkedIn 的爬蟲
Thumbnail
本篇文章介紹網路爬蟲的基本概念和操作流程,適合初學者瞭解爬蟲的功能與合法使用方式。文章說明爬蟲如何自動蒐集資料及 API 的重要角色,同時提醒用戶注意指南與網站規範。作者也自己嘗試網路爬蟲。也期許自己可以在未來學習到網頁時,能成功操作 LinkedIn 的爬蟲
Thumbnail
網路爬蟲(web crawler),也叫網路蜘蛛(spider) 是一個強大的自動化工具,可以自由瀏覽、擷取訪問網頁的各項資訊,例如:新聞文章、電商商品價格,當專案中需要添加外部數據或進行大量資料收集時,網路爬蟲就是一個非常實用的工具。
Thumbnail
網路爬蟲(web crawler),也叫網路蜘蛛(spider) 是一個強大的自動化工具,可以自由瀏覽、擷取訪問網頁的各項資訊,例如:新聞文章、電商商品價格,當專案中需要添加外部數據或進行大量資料收集時,網路爬蟲就是一個非常實用的工具。
Thumbnail
俗話說的好:科技始終來自於人性。網頁爬蟲工具,可以幫助人類完成重複性高且枯燥、瑣碎的收集過程。我透過本次有目的的實作,也算是初嘗網頁爬蟲的甜頭,未來應該還是會努力學習Python,畢竟能自己寫程式,就代表能自動化處理更多種樣態的工作。
Thumbnail
俗話說的好:科技始終來自於人性。網頁爬蟲工具,可以幫助人類完成重複性高且枯燥、瑣碎的收集過程。我透過本次有目的的實作,也算是初嘗網頁爬蟲的甜頭,未來應該還是會努力學習Python,畢竟能自己寫程式,就代表能自動化處理更多種樣態的工作。
Thumbnail
你知道「爬蟲」是什麼嗎?簡單來說,爬蟲便是設計一個程式機器人,使其按照一定的規則自動抓取網頁上的資訊,協助使用者快速查詢,並進行後續分析討論。爬蟲的應用相當多元且便利,而 UiPath 也有 Table Exaction 功能可以讓我們快速抓取網頁資訊!
Thumbnail
你知道「爬蟲」是什麼嗎?簡單來說,爬蟲便是設計一個程式機器人,使其按照一定的規則自動抓取網頁上的資訊,協助使用者快速查詢,並進行後續分析討論。爬蟲的應用相當多元且便利,而 UiPath 也有 Table Exaction 功能可以讓我們快速抓取網頁資訊!
Thumbnail
本教學從 網路爬蟲 至 機器學習基礎 到 TensorFlow深度學習框架。 網路爬蟲 Beautiful Soup 安裝beautifulsoup4,用來分析html資料 安裝requests套件,將html資料抓回來顯示 lxml ,用於解析和編輯 XML 和 HTML 文檔 html5lib
Thumbnail
本教學從 網路爬蟲 至 機器學習基礎 到 TensorFlow深度學習框架。 網路爬蟲 Beautiful Soup 安裝beautifulsoup4,用來分析html資料 安裝requests套件,將html資料抓回來顯示 lxml ,用於解析和編輯 XML 和 HTML 文檔 html5lib
Thumbnail
久久沒更新,把這幾天更新在wordpress的文章搬過來囉! 這是篇自己練習爬蟲,並把爬下來的文字內容透過jieba套件分析後產出文字雲的小練習專案
Thumbnail
久久沒更新,把這幾天更新在wordpress的文章搬過來囉! 這是篇自己練習爬蟲,並把爬下來的文字內容透過jieba套件分析後產出文字雲的小練習專案
Thumbnail
因為時間不夠,所以更要了解適合自己的入門方法 既然全部都學學不完,那就隨便選一項有興趣的技能來學吧? 在選擇學習技能這件事上,或許我們也能借鏡AI學習法,選擇一項子領域深入研究,在練習過程中自然會遇到需要解決的問題或他人回饋而習得額外的知識,最終提升到能夠在該領域獨立解決問題的能力...
Thumbnail
因為時間不夠,所以更要了解適合自己的入門方法 既然全部都學學不完,那就隨便選一項有興趣的技能來學吧? 在選擇學習技能這件事上,或許我們也能借鏡AI學習法,選擇一項子領域深入研究,在練習過程中自然會遇到需要解決的問題或他人回饋而習得額外的知識,最終提升到能夠在該領域獨立解決問題的能力...
Thumbnail
RPAI 數位優化器將在這篇文章中介紹爬蟲的入門概念、應用案例以及對電商產業的必要性,趕快繼續看下去吧!
Thumbnail
RPAI 數位優化器將在這篇文章中介紹爬蟲的入門概念、應用案例以及對電商產業的必要性,趕快繼續看下去吧!
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News