View a markdown version of this page

Web 編目程式 - Amazon Bedrock

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

Web 編目程式

Web 爬蟲程式會連接至您指定的 URLs並編目,以便在受管知識庫中使用。Web 爬蟲程式會從種子 URLs 開始周遊 HTML 頁面,並根據您的爬蟲範圍和限制遵循子連結。您也可以提供網站地圖 URLs做為起點。Web Crawler 遵守符合 RFC 9309 的 robots.txt。

重要

當您選取要抓取的網站時,必須遵守 Amazon 可接受的使用政策和所有其他 Amazon 術語。僅使用 Web 爬蟲程式來為您自己的網頁或您有權進行爬蟲的網頁編製索引。

注意

Web 爬蟲程式不支援文件層級存取控制 (ACLs)。可存取知識庫的任何使用者皆可存取所有索引內容。如果您需要 ACL 篩選,請使用支援它的連接器 (例如 Amazon S3、SharePoint 或 OneDrive)。

支援的功能

  • 編目多個種子 URLs和網站地圖 URLs

  • 可設定的爬蟲深度、速率限制和links-per-URL限制

  • 爬取範圍控制:相同的主機和路徑、僅限主機,或主機和子網域

  • URL 模式篩選條件 (包含和排除規則表達式)

  • 從網頁連結的編目附件 PDFs、文件等)

  • 受保護網站的身分驗證:基本、表單型或 SAML

  • 新增、更新和刪除內容的增量內容同步

身分驗證方法

Web 爬蟲程式支援四種身分驗證方法。選擇符合目標網站對使用者進行身分驗證的方法。對於沒有登入的公有網站,請使用 NO_AUTH

Web 爬蟲程式身分驗證方法
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 爬蟲程式資料來源包含下列步驟:

  1. (如果您的網站需要登入) 準備登入資料。將身分驗證方法的登入資料存放在 AWS Secrets Manager 秘密中。請參閱 驗證憑證

  2. 連接資料來源。使用 AWS 管理主控台 或 API 在知識庫中建立 Web 爬蟲程式資料來源。請參閱 建立資料來源

建立資料來源

Console
將 Web 爬蟲程式連接至您的受管知識庫
  1. 資料來源下,提供資料來源的名稱。

  2. 從資料來源下拉式清單中選取 Web 爬蟲程式

  3. 來源下,選擇來源 URLs(最多 10 URLs) 或來源網站地圖 (最多 3 個網站地圖 URLs)。

  4. 在新增 URLs文字區域中輸入您的 URL,每行一個。 URLs

  5. 身分驗證下,選取無身分驗證基本身分驗證表單身分驗證SAML 身分驗證。對於無身分驗證以外的任何方法,請選取或建立 AWS Secrets Manager 秘密來存放您的登入資料。

  6. (選用) 展開同步範圍以設定網路爬取深度 (0–10)、每個 URL 的連結上限 (1–1000)、每分鐘網路爬取URLs 上限 (1–300),以及網路爬取範圍:預設 (與種子 URL 相同的主機和相同的初始 URL 路徑)、僅限主機 (相同的主機、任何路徑) 或子網域 (包括子網域)。

  7. (選用) 展開 URL 篩選模式,以新增包含或排除特定 URLs規則運算式。

API

若要建立 Web 爬蟲程式資料來源,請使用 Amazon Bedrock 建置時間端點的代理程式傳送 CreateDataSource 請求。下列 AWS Command Line Interface 範例會建立資料來源,在沒有身分驗證的情況下爬取公有網站。如需每個欄位的說明,請參閱以下連接器參數參考。

aws bedrock-agent create-data-source \ --name "WebCrawler-connector" \ --knowledge-base-id "your-knowledge-base-id" \ --data-source-configuration file://webcrawler-managed-connector.json

webcrawler-managed-connector.json 檔案包含下列項目:

{ "type": "MANAGED_KNOWLEDGE_BASE_CONNECTOR", "managedKnowledgeBaseConnectorConfiguration": { "connectorParameters": { "type": "WEB", "version": "1", "connectionConfiguration": { "seedUrls": [ "https://docs.example.com" ], "authType": "NO_AUTH" }, "crawlConfiguration": { "crawlDepth": 3, "maxLinksPerUrl": 100, "maxCrawledUrlsPerMinute": 50, "syncScope": "SUB_DOMAINS", "crawlAttachments": true }, "filterConfiguration": { "exclusionPatterns": [ "https://docs.example.com/private/.*" ] } } } }

對於已驗證的網站,請將 authType設定為 BASIC_AUTHFORMSAML,並將 新增至 secretArn connectionConfiguration

對於受管知識庫, CreateDataSource是非同步的:當操作完成CREATINGAVAILABLE時,資料來源狀態會從 轉換為 。

連接器參數

資料來源組態使用下列連接器參數。若要使用 Web 爬蟲程式,請在 中指定 WEB做為連接器類型connectorParameters。如需包裝的欄位 connectorParameters(例如 deletionProtectionConfigurationmediaExtractionConfiguration),請參閱 連接資料來源

connectionConfiguration
欄位 必要 說明
seedUrls 有條件 要開始爬取的種子 URLs清單。上限為 10。除非您提供 ,否則為必要項目siteMapUrls
siteMapUrls 有條件 網站地圖 URLs的清單。最多 3 個。除非您提供 ,否則為必要項目seedUrls
authType 身分驗證類型:NO_AUTHFORMBASIC_AUTHSAML。請參閱 身分驗證方法
secretArn 有條件 包含您登入資料的 AWS Secrets Manager 秘密 ARN。當 authType 不是 時為必要NO_AUTH
crawlConfiguration (選用)
欄位 必要 說明
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和其他文件)。
filterConfiguration (選用)
欄位 必要 說明
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

疑難排解

常見的 Web 爬蟲程式問題、原因和修正
徵狀 可能原因 修正
同步已成功完成,但只會編製種子 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,或接受未擷取大於限制的檔案。