
網路爬蟲 (Bots) 是什麼?一篇告訴你它們的運作方式、常見來源,以及如何應對
發布日期:
爬蟲(Bots)是什麼?
爬蟲(Web Crawlers, Bots) 是一種自動化的程式,它會模擬人類瀏覽網頁的行為,自動發送請求,抓取網站內容。
爬蟲的用途很廣,有些是善意的(例如 Google 搜尋引擎的爬蟲),但有些是惡意的(例如惡意爬蟲、DDoS 攻擊)。
爬蟲的運作方式:
1. 爬蟲發送 HTTP 請求到你的網站(GET/POST 請求)。
2. 伺服器回應 HTML、CSS、JS 等內容。
3. 爬蟲分析這些內容,並可能存入資料庫或進一步處理。
爬蟲的常見來源
爬蟲可以來自不同的服務或個人開發者,以下是幾種主要來源:
1. 搜尋引擎爬蟲(有益)
這些爬蟲的主要目的是索引網站內容,讓你的網站出現在搜尋結果中。
一般來說,這些爬蟲不應該封鎖,你甚至需要確保這些爬蟲都可以順利造訪網站,否則將會影響 SEO 的表現。
常見的搜尋引擎爬蟲
| 爬蟲名稱 | 來源 | User-Agent 樣式 |
|---|---|---|
| Googlebot | Google 搜尋 | Googlebot/2.1 (+http://www.google.com/bot.html) |
| Bingbot | 微軟 Bing 搜尋 | Mozilla/5.0 (compatible; Bingbot/2.0; +http://www.bing.com/bingbot.htm) |
| Baidu Spider | 百度搜尋 | Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html) |
| YandexBot | 俄羅斯 Yandex 搜尋 | Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots) |
這類爬蟲的影響
✅ 優點:有助於網站被搜尋引擎索引,提升 SEO 排名。
⚠️ 風險:如果網站內容被不良搜尋引擎爬取(如垃圾搜尋引擎),可能會增加伺服器負擔。
2. 社群媒體爬蟲(中性)
當有人在社群媒體上分享你的網站連結時,這些爬蟲會來抓取網站的預覽資訊(如標題、描述、縮圖)。
常見的社群媒體爬蟲
| 爬蟲名稱 | 來源 | User-Agent 樣式 |
|---|---|---|
| Facebook Crawler | facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php) | |
| Twitterbot | Twitterbot/1.0 | |
| LinkedInBot | Mozilla/5.0 (compatible; LinkedInBot/1.0; +http://www.linkedin.com/bot) |
這類爬蟲的影響
✅ 優點:確保你的網站在社群媒體上正確顯示預覽圖和描述。
⚠️ 風險:通常不會造成太大問題,但如果頻率太高,可能會影響伺服器效能。
3. 惡意爬蟲(應該封鎖)
這類爬蟲通常由競爭對手、駭客、數據收集者或垃圾網站運行,可能會短時間內大量抓取你的內容,甚至攻擊你的伺服器。
惡意爬蟲的類型
| 類型 | 目的 | 影響 |
|---|---|---|
| 競爭對手爬蟲 | 爬取你的文章、價格資訊 | 你的內容可能被抄襲、價格策略被監控 |
| 垃圾爬蟲 | 竊取內容並發布到其他網站 | 你的內容可能被盜用,影響 SEO 排名 |
| DDoS 攻擊爬蟲 | 短時間內發送大量請求,試圖癱瘓你的網站 | 可能導致網站崩潰,影響正常訪客 |
| 暴力破解爬蟲 | 針對登入頁面嘗試密碼破解 | 可能導致帳號被盜,或被入侵 |
常見的惡意爬蟲
這些爬蟲通常使用 Python、Curl、Scrapy、Headless Chrome 等工具:
| 爬蟲名稱 | User-Agent 樣式 | 說明 |
|---|---|---|
| MJ12bot | MJ12bot/v1.4.8 (http://mj12bot.com/) | 據稱用於網頁索引,但大量抓取頻率常被視為惡意 |
| BLEXBot | Mozilla/5.0 (compatible; BLEXBot/1.0; +http://webmeup-crawler.com/) | 聲稱用於網站結構分析,但抓取過於頻繁 |
| DotBot | Mozilla/5.0 (compatible; DotBot/1.2; +http://www.opensiteexplorer.org/dotbot) | 來自 Moz 旗下的分析工具,可能佔用資源 |
| crawler4j | crawler4j (https://github.com/yasserg/crawler4j/) | 開源爬蟲框架,常被濫用為資料抓取工具 |
| Python-urllib | Python-urllib/3.9 | Python 常見 HTTP 函式庫,若未設 UA,易遭濫用 |
| Scrapy | Scrapy/2.5.1 (+https://scrapy.org) | Python 的爬蟲框架,用戶可自訂爬取網站行為 |
4. 自動化測試工具 / AI 爬蟲
有些爬蟲是用來進行網站測試、AI 訓練等,雖然不一定有惡意,但也可能影響網站效能。
常見 AI/自動化爬蟲
| 爬蟲名稱 | User-Agent 樣式 | 說明 |
|---|---|---|
| ChatGPT-User | Mozilla/5.0 (compatible; ChatGPT-User; +https://openai.com/bot) | OpenAI 的 ChatGPT 插件抓取器,用於網頁摘要與資訊擷取 |
| CCBot | CCBot/2.0 (https://commoncrawl.org/faq/) | Common Crawl 計畫的爬蟲,資料常用於訓練 AI 模型 |
| ClaudeBot | ClaudeBot/1.0 (https://www.anthropic.com) | Anthropic Claude 系統的爬蟲,用於網頁內容擷取 |
| GPTBot | GPTBot/1.0 (+https://openai.com/gptbot) | OpenAI 官方爬蟲,用於收集訓練資料 |
| Bytespider | bytespider (https://bytespider.baidu.com) | 來自百度文心一言(Ernie Bot)相關爬蟲 |
| Amazonbot | Amazonbot/1.0 (+https://developer.amazon.com/support/amazonbot) | Amazon 用於 Alexa 與 AI 搜尋服務的資料爬取 |
| Applebot | Applebot/0.1 (+http://www.apple.com/go/applebot) | Apple 的搜尋與 Siri 資料擷取爬蟲 |
| DuckDuckBot | DuckDuckBot/1.0; (+http://duckduckgo.com/duckduckbot.html) | DuckDuckGo 搜尋引擎的資料索引爬蟲 |
📌 這類爬蟲的影響
✅ 有助於 SEO 和 AI 訓練,但可能增加伺服器負擔。
⚠️ 如果不希望你的內容被 AI 使用,可以在 robots.txt 中封鎖。
應該如何應對爬蟲?
1. 使用 robots.txt 限制爬蟲
在網站根目錄新增 robots.txt,拒絕特定爬蟲。程式碼範例如下:
# 封鎖 GPTBot(OpenAI)
User-agent: GPTBot
Disallow: /
# 封鎖 ChatGPT 插件爬蟲
User-agent: ChatGPT-User
Disallow: /
# 封鎖 CCBot(Common Crawl)
User-agent: CCBot
Disallow: /
# 封鎖 ClaudeBot(Anthropic)
User-agent: ClaudeBot
Disallow: /
# 封鎖 Bytespider(百度 AI)
User-agent: bytespider
Disallow: /
# 封鎖 Amazonbot
User-agent: Amazonbot
Disallow: /
# 封鎖 Applebot
User-agent: Applebot
Disallow: /
# 封鎖 DuckDuckBot
User-agent: DuckDuckBot
Disallow: /
# 其他爬蟲都允許
User-agent: *
Disallow:
這樣就可以阻擋不想要的爬蟲,也不會影響搜尋引擎爬蟲來造訪。
你可以依照自己的實際需求適當調整。
2. 使用 Cloudflare 或防火牆(WAF)
- 開啟 Cloudflare「Bot Fight Mode」 來自動封鎖惡意爬蟲。
-
建立防火牆規則:
- 封鎖可疑的 User-Agent(如 Scrapy、python-requests)。
- 限制短時間內的請求次數(Rate Limiting)。
3. 分析伺服器日誌,封鎖惡意 IP
3-1. 取得並閱讀伺服器日誌(access log)
伺服器會記錄所有訪客的行為,包含:
- 訪問時間
- IP 位址
- 請求的網址(path)
- User-Agent(爬蟲常用這來偽裝)
- 請求狀態(200、404、503 等)
常見的日誌檔路徑:
Apache:/var/log/apache2/access.log
Nginx:/var/log/nginx/access.log
有些虛擬主機可透過面板(如 Plesk、cPanel)下載
你可以用以下指令快速查詢高頻率 IP:
以 Nginx 為例:
cat /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -20
3-2. 判斷是否為惡意爬蟲
接下來分析這些 IP:
- 是否在極短時間內出現大量請求?
- 是否集中攻擊某些頁面(如 /login, /api, /product/)?
- User-Agent 看起來很可疑或偽裝?
- 是否導致 404、403、503 爆量?
3-3. 封鎖惡意 IP
- 使用防火牆(推薦)
- Nginx 層級封鎖
4. 額外建議
- 使用 Fail2Ban:自動偵測日誌異常,封鎖惡意行為 IP。
- 搭配 Cloudflare/WAF 使用:阻擋 IP 或 UA,快速又不用動主機。
- 定期檢查訪問量暴增的來源,可視為預警。
總結
爬蟲分為「善意」(搜尋引擎、社群媒體)和「惡意」(內容竊取、攻擊)。
如果 GA 記錄的訪客比內部統計低,可能是因為大量爬蟲被過濾掉。
可以用 robots.txt、Cloudflare、防火牆等方式封鎖惡意爬蟲。
分析伺服器日誌,找出高風險 IP,觀察其請求行為,接著手動或自動封鎖,這樣就能保護你的網站資源。

