本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Web 編目程式
Web 爬蟲程式會連接至您指定的 URLs並編目,以便在受管知識庫中使用。Web 爬蟲程式會從種子 URLs 開始周遊 HTML 頁面,並根據您的爬蟲範圍和限制遵循子連結。您也可以提供網站地圖 URLs做為起點。Web Crawler 遵守符合 RFC 9309
重要
當您選取要抓取的網站時,必須遵守 Amazon 可接受的使用政策和
注意
Web 爬蟲程式不支援文件層級存取控制 (ACLs)。可存取知識庫的任何使用者皆可存取所有索引內容。如果您需要 ACL 篩選,請使用支援它的連接器 (例如 Amazon S3、SharePoint 或 OneDrive)。
支援的功能
-
編目多個種子 URLs和網站地圖 URLs
-
可設定的爬蟲深度、速率限制和links-per-URL限制
-
爬取範圍控制:相同的主機和路徑、僅限主機,或主機和子網域
-
URL 模式篩選條件 (包含和排除規則表達式)
-
從網頁連結的編目附件 PDFs、文件等)
-
受保護網站的身分驗證:基本、表單型或 SAML
-
新增、更新和刪除內容的增量內容同步
身分驗證方法
Web 爬蟲程式支援四種身分驗證方法。選擇符合目標網站對使用者進行身分驗證的方法。對於沒有登入的公有網站,請使用 NO_AUTH。
| Method | 如何進行身分驗證 | 使用情況 |
|---|---|---|
無身分驗證 (NO_AUTH) |
爬蟲程式在沒有登入資料的情況下傳送請求。 | 不需要登入的公有網站。 |
基本身分驗證 (BASIC_AUTH) |
爬蟲程式會從秘密傳送包含使用者名稱和密碼的 HTTP Authorization: Basic標頭。 |
受 HTTP 基本身分驗證保護的網站 (瀏覽器型使用者名稱和密碼對話方塊)。 |
表單身分驗證 (FORM) |
爬蟲程式透過提交 HTML 表單登入。您提供尋找表單欄位的登入 URL、登入資料和 XPath 表達式。 | 使用 HTML 表單登入的站台。 |
SAML 身分驗證 (SAML) |
爬蟲程式會透過 SAML 身分提供者的登入表單登入。您可以提供尋找表單欄位的 IdP 登入 URL、登入資料和 XPath 表達式。 | 使用 SAML 型單一登入的站台。 |
先決條件
對於您要抓取的網站,請確定您:
-
具有抓取網站及其內容的許可。
-
確認
robots.txt網站不允許您要抓取URLs。如果找不到robots.txt檔案,Web 爬蟲程式預設為不允許 。 -
如果網站需要登入,請識別身分驗證方法 (基本、表單或 SAML)。對於表單和 SAML,找到登入頁面上使用者名稱欄位、密碼欄位的 XPath 表達式,然後提交按鈕。若要尋找 XPath,請在瀏覽器中的表單元素上按一下滑鼠右鍵,然後選擇檢查,然後從開發人員工具複製 XPath。
在您的帳戶中 AWS ,請確定您:
-
如果您的網站需要身分驗證,請將您的登入資料存放在AWS Secrets Manager 秘密中,並記下其 Amazon Resource Name (ARN)。如需確切的鍵/值對,請參閱 驗證憑證。
-
在知識庫的 AWS Identity and Access Management (IAM) 角色/許可政策中包含連接到資料來源的必要許可。如需必要許可的資訊,請參閱 存取您的資料來源的許可。
如何設定 Web 爬蟲程式資料來源
設定 Web 爬蟲程式資料來源包含下列步驟:
建立資料來源
連接器參數
資料來源組態使用下列連接器參數。若要使用 Web 爬蟲程式,請在 中指定 WEB做為連接器類型connectorParameters。如需包裝的欄位 connectorParameters(例如 deletionProtectionConfiguration和 mediaExtractionConfiguration),請參閱 連接資料來源。
| 欄位 | 必要 | 說明 |
|---|---|---|
seedUrls |
有條件 | 要開始爬取的種子 URLs清單。上限為 10。除非您提供 ,否則為必要項目siteMapUrls。 |
siteMapUrls |
有條件 | 網站地圖 URLs的清單。最多 3 個。除非您提供 ,否則為必要項目seedUrls。 |
authType |
是 | 身分驗證類型:NO_AUTH、FORM、 BASIC_AUTH或 SAML。請參閱 身分驗證方法。 |
secretArn |
有條件 | 包含您登入資料的 AWS Secrets Manager 秘密 ARN。當 authType 不是 時為必要NO_AUTH。 |
| 欄位 | 必要 | 說明 |
|---|---|---|
crawlDepth |
否 | 爬蟲深度上限。範圍 0–10。 0 僅編目指定的 URLs;較高的值遵循更深入網站的連結。預設為 2。 |
maxLinksPerUrl |
否 | 每個 URL 要遵循的最大連結數。範圍 1–1000。預設為 100。 |
maxCrawledUrlsPerMinute |
否 | 每分鐘爬取的 URLs 上限 (速率限制)。範圍 1–300。 |
implicitWaitInSeconds |
否 | 爬蟲程式讀取頁面之前,頁面到達就緒狀態後的等待時間,以秒為單位。針對具有在主要範本之後載入的動態 JavaScript 內容的頁面,增加此值。 |
syncScope |
否 | 要遵循的連結範圍。其中一個 PATH_SPECIFIC(與種子 URL 相同的主機和相同的初始 URL 路徑)、 DOMAINS_ONLY (與種子 URL 相同的主機、任何路徑) 或 SUB_DOMAINS(與主要網域相同,包括子網域)。省略時,爬蟲程式只會爬取與種子 URL 相同的主機和相同的初始 URL 路徑。 |
crawlAttachments |
否 | 是否從網頁編目連結的檔案和附件 (例如 PDFs和其他文件)。 |
| 欄位 | 必要 | 說明 |
|---|---|---|
inclusionPatterns |
否 | 規則表達式的清單。只有符合至少一個模式URLs 才會編目和編製索引。 |
exclusionPatterns |
否 | 規則表達式的清單。符合任何模式URLs 不會編目或編製索引。 |
maxFileSizeInMegaBytes |
否 | 爬蟲程式擷取之任何單一檔案的大小上限,以 MB 為單位。提供 做為數值字串 (例如,"500")。預設為 "500"。 |
驗證憑證
如果您的網站需要身分驗證,請將您的登入資料存放在秘密 AWS Secrets Manager 中。秘密格式取決於您選擇的身分驗證類型。
基本身分驗證 (BASIC_AUTH)
{ "userName": "your-username", "password": "your-password", "authentication": "BASIC_AUTH" }
表單身分驗證 (FORM)
對於表單型身分驗證,請提供 XPath 表達式,以識別登入頁面上的使用者名稱欄位、密碼欄位和提交按鈕。
{ "authentication": "FORM", "loginPageUrl": "https://example.com/login", "userName": "your-username", "password": "your-password", "userNameFieldXpath": "//input[@name='username']", "passwordFieldXpath": "//input[@name='password']", "userNameButtonXpath": "//button[@type='submit']", "passwordButtonXpath": "//button[@type='submit']" }
SAML 身分驗證 (SAML)
針對 SAML 身分驗證,請為表單欄位提供 SAML 身分提供者的登入頁面 URL 和 XPath 運算式。
{ "authentication": "SAML", "loginPageUrl": "https://your-idp.example.com/login", "userName": "your-username", "password": "your-password", "userNameFieldXpath": "//input[@name='username']", "passwordFieldXpath": "//input[@name='password']", "userNameButtonXpath": "//button[@type='submit']", "passwordButtonXpath": "//button[@type='submit']" }
注意
若要在瀏覽器中尋找 XPath,請在登入頁面上的表單元素上按一下滑鼠右鍵,然後選擇檢查。在開發人員工具中,在反白顯示的 HTML 上按一下滑鼠右鍵,選擇複製,然後選擇複製 XPath。
疑難排解
| 徵狀 | 可能原因 | 修正 |
|---|---|---|
| 同步已成功完成,但只會編製種子 URL 的索引。 | 網站導覽連結是透過 JavaScript 事件處理常式 (按一下、捲動、動態功能表) 而非標準<a href="...">元素進行路由。爬蟲程式會轉譯 JavaScript,但不模擬使用者互動,因此無法探索這些連結。 |
為您要編目的頁面提供額外的種子 URLs,或提供網站地圖 URL,列出要編目的每個 URL。如果內容可以匯出為檔案,請考慮改用 Amazon S3 連接器。 |
| 同步不會傳回任何內容或少於預期的頁面。 | 網站的 robots.txt 檔案不允許您要抓取URLs,或頁面具有noindex中繼標籤。 |
robots.txt 更新主機,以允許您想要抓取的路徑,或從您想要編製索引的頁面中移除noindex中繼標籤。robots.txt 如果您也想要中繼標籤偵測,請勿在 中封鎖頁面,因為爬蟲程式必須存取頁面才能讀取中繼標籤。 |
| 身分驗證失敗 (HTTP 401 或 403、登入重新導向迴圈或工作階段逾時)。 | 登入資料不正確或過期,或 XPath 表達式與登入頁面元素不相符。 | 驗證秘密中的登入資料。對於 SAML FORM或 驗證,請驗證瀏覽器開發人員工具中的每個 XPath,並驗證 loginPageUrl。 |
| 同步失敗,速率限制 (HTTP 429) 或不完整的內容。 | 爬蟲程式擷取頁面的速度超過網站允許的速度。 | 降低 maxCrawledUrlsPerMinute,或在頁面就緒後載入動態內容implicitWaitInSeconds的網站增加 。 |
| 頁面因為大於預期而遺失。 | 頁面或附件超過 maxFileSizeInMegaBytes。 |
增加 maxFileSizeInMegaBytes,或接受未擷取大於限制的檔案。 |