常見問答集 - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

常見問答集

如果無法使用 robots.txt 檔案該怎麼辦?

沒有 robots.txt 檔案不一定表示您無法或不應抓取網站。爬取應一律以負責的方式完成,遵守網站的資源和網站擁有者的隱含權利。

如果 sitemaps.xml 檔案無法使用該怎麼辦?

根據需求,您可以執行下列其中一項操作:

  • 搜尋 HTML 網站地圖 – 尋找列出網站上重要頁面的 HTML 網站地圖頁面。這些通常會在頁尾中連結。

  • 從首頁爬取 – 從首頁開始爬取,並遵循內部連結來探索其他頁面。

  • 分析 URL 模式 – 分析網站的 URL 結構,以識別模式並以程式設計方式產生潛在的 URLs。

  • 檢閱 robots.txt 檔案 – 檢查 robots.txt 檔案是否有任何不允許的頁面或目錄。這些可以提供有關網站結構的線索。

  • 檢閱 API 端點 – 有些網站提供 API 端點,可用於擷取內容和結構資訊。

  • 檢查搜尋引擎結果 – 使用搜尋引擎來尋找網站的索引頁面,方法是使用 網站:搜尋運算子,例如 site:example.com

  • 分析回連結 – 分析網站的回連結,以探索其他網站連結的重要頁面。

  • 檢閱 Web 封存 – 檢查網際網路封存,例如 Wayback Machine,以取得可能有網站地圖或不同結構的舊版網站。

  • 尋找內容管理系統 (CMS) 模式 – 如果您可以識別 CMS,請使用與該系統相關聯的常見 URL 模式。

  • 確認 JavaScript 轉譯 – 如果網站高度依賴 JavaScript,請確定您的爬蟲程式可以轉譯 JavaScript 來探索動態載入的內容。對於某些網站,Sitemap.xml 檔案會在啟用 JavaScript 轉譯之後載入。

我是否可以使用無伺服器解決方案,而不是 Amazon EC2 或 Amazon ECS?

是。網路爬取的 AWS Lambda函數可以是可行的選項,特別是對於較小規模或更模組化的爬取任務。不過,對於大規模、長時間執行的爬蟲操作,使用 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體或 Amazon Elastic Container Service (Amazon ECS) 的更傳統方法可能更合適。在選擇適合 Web 爬蟲需求的運算服務時,仔細評估您的特定需求和權衡非常重要。

為什麼爬蟲程式會取得 403 狀態碼?

HTTP 403 是 HTTP 狀態碼,表示禁止存取請求的資源。如果請求正確,則伺服器會了解請求,且不會履行該請求。若要防止 403 狀態碼,您可以執行下列動作:

  • 限制您的網路爬取率。

  • 檢查 sitemap 或 robots.txt 檔案是否允許爬蟲程式存取 URL。

  • 嘗試使用行動使用者代理程式,而非桌面使用者代理程式。

如果上述都無法運作,您應該遵守網站擁有者的決定,而不是編目頁面。