本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Web 爬蟲程式整合
透過 Amazon Quick 中的 Web Crawler 整合,您可以透過編目和編製網頁索引,從網站內容建立知識庫。此整合支援具有不同身分驗證選項的資料擷取功能。
Web 爬蟲程式功能
Web Crawler 使用者可以針對存放在網站和網頁上的內容提出問題。例如,使用者可以跨多個網頁搜尋文件網站、知識庫或特定資訊。
整合可協助使用者存取和了解 Web 內容,無論其位置或類型為何。它提供內容詳細資訊,例如發佈日期、修改歷史記錄和頁面擁有權,以實現更有效率的資訊探索。
注意
Web 爬蟲程式整合僅支援資料擷取。它不提供管理網站或 Web 服務的動作功能。
先決條件
設定 Web Crawler 整合之前,請確定您有下列項目:
-
要編目和編製索引的網站 URLs。
-
Amazon Quick Enterprise 訂閱。
-
不在防火牆後方且不需要特殊瀏覽器外掛程式即可連線的網站。
準備網站存取和身分驗證
在 Amazon Quick 中設定整合之前,請準備您的網站存取憑證。Web 爬蟲程式整合支援不同的身分驗證方法:
- 無身分驗證
-
使用 來爬取不需要身分驗證的網站。
- 基本身分驗證
-
安全網站的標準 HTTP 基本身分驗證。當您造訪受保護的網站時,您的瀏覽器會顯示一個對話方塊,要求您提供登入資料。
必要的登入資料:
-
登入頁面 URL - 登入頁面的 URL
使用者名稱 - 基本身分驗證使用者名稱
密碼 - 基本身分驗證密碼
-
- 表單驗證
-
對於使用 HTML 表單型登入頁面的網站。您可以指定 XPath 表達式來識別登入頁面上的表單欄位。
XPath (XML 路徑語言) 是一種查詢語言,用於導覽 HTML 或 XML 文件中的元素。若要尋找網頁元素的 XPath,請在瀏覽器中的 元素上按一下滑鼠右鍵,然後選擇檢查。在開發人員工具中,在反白顯示的 HTML 程式碼上按一下滑鼠右鍵,選擇複製,然後選擇複製 XPath。
必要資訊:
登入頁面 URL - 登入表單的 URL (例如
https://example.com/login)使用者名稱 - 登入使用者名稱
密碼 - 登入密碼
使用者名稱欄位 XPath - XPath 到使用者名稱輸入欄位 (例如,
//input[@id='username'])-
使用者名稱按鈕 XPath (選用) - XPath 到使用者名稱按鈕欄位 (例如,
//input[@id='username_button']) 密碼欄位 XPath - XPath 到密碼輸入欄位 (例如,
//input[@id='password'])密碼按鈕 XPath - XPath 到密碼按鈕 (例如,
//button[@type='password'])
- SAML 身分驗證
-
對於使用 SAML 型單一登入 (SSO) 身分驗證的網站。
SAML (安全性聲明標記語言) 身分驗證是一種啟用 SSO 的聯合身分標準。使用者透過集中式身分提供者 (例如 Microsoft Azure AD 或 Okta) 進行身分驗證,而不是直接在每個應用程式中輸入登入資料。身分提供者會將安全字符傳遞回應用程式,以授予存取權。
必要資訊:
登入頁面 URL - SAML 登入頁面的 URL
使用者名稱 - SAML 使用者名稱
密碼 - SAML 密碼
-
使用者名稱欄位 XPath - XPath 到使用者名稱輸入欄位 (例如,
//input[@id='username']) -
使用者名稱按鈕 XPath (選用) - XPath 到使用者名稱按鈕欄位 (例如,
//input[@id='username_button']) -
密碼欄位 XPath - XPath 到密碼輸入欄位 (例如,
//input[@id='password']) -
密碼按鈕 XPath - XPath 到密碼按鈕 (例如,
//button[@type='password'])
XPath 組態範例
使用這些 XPath 範例來設定表單和 SAML 身分驗證:
Username field examples: //input[@id='username'] //input[@name='user'] //input[@class='username-field'] Password field examples: //input[@id='password'] //input[@name='pass'] //input[@type='password'] Submit button examples: //button[@type='submit'] //input[@type='submit'] //button[contains(text(), 'Login')]
設定 Web 爬蟲程式整合
準備網站存取需求後,請在 Amazon Quick 中建立 Web Crawler 整合。
-
在 Amazon Quick 主控台中,選擇整合。
-
從整合選項中選擇 Web 爬蟲程式,然後按一下新增按鈕 (加 "+" 按鈕)。
-
選擇從 Web 爬蟲程式存取資料。Web Crawler 整合僅支援資料存取 - 動作執行不適用於 Web 爬取。
-
設定整合詳細資訊和身分驗證方法,然後視需要建立知識庫。
-
選擇 Web 爬蟲程式整合的身分驗證類型。
-
根據您選擇的身分驗證方法輸入必要的詳細資訊。
-
(選用) 選擇 VPC 連線至私有網路中託管的爬蟲網站。您必須先在管理員設定中設定 VPC 連線,才能在此處進行選擇。如需詳細資訊,請參閱設定要與 Amazon Quick 搭配使用的 VPC。
注意
建立整合之後,您無法變更 VPC 連線。若要使用不同的 VPC 連線,請建立新的整合。
-
選擇建立並繼續。
-
輸入知識庫的名稱和描述。
-
新增您要編目的內容 URLs。
-
選擇建立。
-
選擇建立後,資料同步會自動開始。
設定爬取
您可以設定要爬取的網站和頁面,以及如何篩選內容。
設定 URLs和內容來源
設定要爬取的網站和頁面:
直接 URLs
指定要爬取URLs:
https://example.com/docs https://example.com/blog https://example.com/support
限制:每個資料集最多 10 URLs
內容篩選條件和網路爬取設定
爬蟲範圍設定
若要檢視這些設定,您必須先設定知識庫,然後檢查進階設定選項。
- 爬蟲深度
-
範圍:0-10 (預設值:1)
0 = 僅爬取指定的 URLs
1 = 將連結頁面納入一層深
較高的值遵循更深入網站的連結
- 每個頁面的連結上限
-
預設:1000
上限:1,000
控制每個頁面要遵循多少連結
- Wait (等待) 階段
-
預設:1
-
Web 爬蟲程式在頁面到達就緒狀態後等待每個頁面的時間 (以秒為單位)。針對具有在主要範本之後載入的動態 JavaScript 內容的頁面,增加此值。
管理知識庫
設定 Web 爬蟲程式整合之後,您可以從爬蟲網站內容建立和管理知識庫。
編輯現有的知識庫
您可以修改現有的 Web Crawler 知識庫:
-
在 Amazon Quick 主控台中,選擇知識庫。
-
從清單中選擇您的 Web 爬蟲程式知識庫。
-
選擇動作下的三點圖示,然後選擇編輯知識庫。
-
視需要更新您的組態設定,然後選擇儲存。
附件和檔案爬取
控制系統是否處理從網頁連結的檔案和附件:
-
啟用檔案連接網路爬取 – 選擇此選項可網路爬取和索引網頁上的檔案和連接,例如 PDFs、文件和媒體檔案。
爬取行為和同步組態
您的 Web 爬蟲程式整合遵循下列爬蟲實務:
增量同步模型:第一次同步會執行完整網路爬取。後續同步只會擷取變更。
自動重試:失敗請求的內建重試邏輯。
重複處理:自動偵測和重複刪除 URLs。
爬蟲程式識別:使用請求標頭中的 user-agent 字串 "aws-quick-on-behalf-of-<UUID>" 來識別自己。
網站地圖探索
Web 爬蟲程式會自動檢查網站地圖,方法是將常見的網站地圖路徑附加到您的種子 URLs。您不需要另外提供網站地圖 URLs。會檢查下列路徑:
sitemap.xml sitemap_index.xml sitemap/sitemap.xml sitemap/sitemap_index.xml sitemaps/sitemap.xml sitemap/index.xml
例如,如果您的種子 URL 是 https://example.com/docs,爬蟲程式會檢查 https://example.com/docs/sitemap.xml、 https://example.com/docs/sitemap_index.xml等。
注意
Web 爬蟲程式不會遵循遞迴網站地圖索引參考。只會使用在探索到的網站地圖中直接列出的 URLs。robots.txt 中的 Sitemap 指令不會用於 sitemap 探索。
Robots.txt 合規
Web Crawler 遵守 robots.txt 通訊協定,遵守使用者代理程式和允許/不允許指令。這可讓您控制爬蟲程式存取網站的方式。
robots.txt 檢查的運作方式
主機層級檢查:Web Crawler 讀取主機層級的 robots.txt 檔案 (例如 example.com/robots.txt)
多個主機支援:對於具有多個主機的網域,Web Crawler 會分別遵守每個主機的機器人規則
備用行為:如果 Web 爬蟲程式因為封鎖、剖析錯誤或逾時而無法擷取 robots.txt,其行為就好像 robots.txt 不存在一樣。在此情況下,爬蟲程式會繼續爬取網站。
支援的 robots.txt 欄位
Web Crawler 會辨識這些 robots.txt 欄位 (欄位名稱不區分大小寫,值區分大小寫):
user-agent識別規則適用的爬蟲程式。
allow可能爬取的 URL 路徑。
disallow可能無法爬取的 URL 路徑。
crawl-delay在網站請求之間等待的時間 (以秒為單位)。
中繼標籤支援
Web Crawler 支援頁面層級機器人中繼標籤,可用來控制資料的使用方式。您可以在 HTML 頁面或 HTTP 標頭中包含中繼標籤,以指定頁面層級設定。
支援的中繼標籤
noindex請勿為頁面編製索引。如果您未指定此規則,頁面可能會編製索引,並有資格出現在體驗中。
nofollow請勿遵循此頁面上的連結。如果您未指定此規則,Web 爬蟲程式可能會使用頁面上的連結來探索這些連結頁面。
您可以使用逗號組合多個值 (例如,「noindex, nofollow」)。
注意
若要偵測中繼標籤,Web 爬蟲程式必須存取您的頁面。不要使用 robots.txt 封鎖您的頁面,因為這可防止頁面被回收。
疑難排解
使用本節來解決 Web Crawler 整合的常見問題。
身分驗證失敗
徵狀:
「無法驗證」錯誤訊息
401/403 HTTP 回應
登入頁面重新導向迴圈
工作階段逾時錯誤
解決步驟:
確認可從設定 Amazon Quick 執行個體 AWS 的區域存取網站。
確認您的登入資料正確且尚未過期。
檢查身分驗證端點可用性和可存取性。
在瀏覽器開發人員工具中測試 XPath 組態,以驗證 XPath 組態。
檢閱瀏覽器網路日誌以了解身分驗證流程。
確保登入頁面 URL 正確且可存取。
使用相同的登入資料手動測試身分驗證。
存取和連線問題
徵狀:
連線逾時和網路錯誤
網路無法連線的錯誤
DNS 解析失敗
解決步驟:
-
驗證與目標網站的網路連線。
-
驗證網站可存取性:
檢查目標網域的 DNS 解析。
驗證 SSL/TLS 組態和憑證。
如果可能,測試來自不同網路的存取。
DNS 解析
Web 爬蟲程式使用 DNS 將網站主機名稱 (例如 www.example.com) 解析為 IP 地址。根據預設,它會使用公有 DNS 解析。
在 VPC 內爬取網站時,您可能需要設定私有 DNS 伺服器,以便爬蟲程式可以解析內部網站的主機名稱。根據您的 VPC 組態選擇下列其中一個選項:
-
使用 VPC 提供的 DNS 伺服器 — 如果您的 VPC 同時啟用 DNS 主機名稱和 DNS 解析,您可以使用預設 VPC DNS 解析程式 (通常是 10.0.0.2,或更普遍的 VPC CIDR base+2)。如需詳細資訊,請參閱VPC。
-
使用自訂 DNS 伺服器 — 如果您的 VPC 使用自訂 DNS 解析程式,請提供組織內部 DNS 伺服器的 IP 地址。與您的網路管理員合作以取得此地址。
如果您未設定 DNS 伺服器,爬蟲程式只會解析公開註冊的主機名稱。
JavaScript 相依導覽
徵狀:
只有種子 URL 才會編製索引,未發現其他頁面
爬蟲成功完成,但只傳回一個文件
解決步驟:
-
Web 爬蟲程式會執行 JavaScript 並轉譯頁面內容,但不會模擬使用者互動,例如點選、捲動或暫留動作。如果您的網站透過使用者互動載入導覽連結 (例如,按一下處理常式、無限捲動或動態功能表),爬蟲程式就無法探索這些連結。
-
在瀏覽器開發人員工具中檢查您的頁面,以檢查導覽連結是否使用標準
<a href="...">元素。如果連結是透過 JavaScript 事件處理常式進行路由,爬蟲程式將不會跟隨它們。 -
如果您的網站提供網站地圖,Web 爬蟲程式會自動檢查種子 URLs 上的常見網站地圖路徑。確保您的網站地圖可在標準位置 (例如
/sitemap.xml) 使用,以便爬蟲程式可以在不依賴頁面內連結擷取的情況下探索其他 URLs。 -
或者,直接提供所有目標頁面 URLs做為種子 URLs。
-
如果內容可以匯出為 HTML、PDF 或文字檔案,請考慮改用 Amazon S3 連接器做為資料來源。
爬蟲和內容問題
徵狀:
遺失或不完整的內容
未完成爬蟲或提早終止
速率限制錯誤 (429 個回應)
內容未正確編製索引
解決步驟:
-
檢閱 robots.txt 限制:
檢查 robots.txt 檔案是否有爬蟲限制。
驗證爬蟲程式是否允許存取目標路徑。
確保 robots.txt 合規不會封鎖內容。
-
檢查速率限制和限流:
監控回應標頭以取得速率限制資訊。
實作適當的爬蟲延遲。
-
驗證 URL 模式和篩選條件:
測試 regex 模式的準確性。
檢查 URL 格式和結構。
驗證包含/排除模式邏輯。
-
檢閱內容限制:
檢查頁面上的 noindex 中繼標籤。
驗證內容類型支援。
確保內容大小在限制範圍內。
-
更新等待時間,讓內容在爬蟲程式開始爬蟲之前載入頁面。
已知限制
Web 爬蟲程式整合有下列限制:
URL 限制:每個資料集最多 10 URLs。您無法在種子 URLs欄位中提供網站地圖 URL。
爬蟲深度:爬蟲深度上限為 10 個層級
安全需求:Web 代理組態所需的 HTTPS
搭配 VPC 連線使用 Web 爬蟲程式時,適用下列限制:
不支援 HTTP/3 (QUIC):不支援 HTTP/3。大多數網站會自動回到 HTTP/2,但只能存取針對 HTTP/3 設定的網站。
需要透過 TCP 的 DNS:DNS 解析必須使用 TCP。在設定 VPC 爬取之前,請確認您的 DNS 伺服器支援透過 TCP 的 DNS。
需要公有信任的 SSL 憑證:內部網站必須使用來自知名憑證授權單位的憑證 (例如 Let's Encrypt 或 DigiCert)。使用自我簽署或私有 CA 憑證的站台將無法連線。
僅限 IPv4:僅支援 IPv4 地址。無法抓取只能透過 IPv6 存取的網站。