本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
常見問答集
如果無法使用 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。
-
嘗試使用行動使用者代理程式,而非桌面使用者代理程式。
如果上述都無法運作,您應該遵守網站擁有者的決定,而不是編目頁面。