Web 爬蟲程式整合 - Amazon Quick

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

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 整合。

  1. 在 Amazon Quick 主控台中,選擇整合

  2. 從整合選項中選擇 Web 爬蟲程式,然後按一下新增按鈕 (加 "+" 按鈕)。

  3. 選擇從 Web 爬蟲程式存取資料。Web Crawler 整合僅支援資料存取 - 動作執行不適用於 Web 爬取。

  4. 設定整合詳細資訊和身分驗證方法,然後視需要建立知識庫。

    1. 選擇 Web 爬蟲程式整合的身分驗證類型。

    2. 根據您選擇的身分驗證方法輸入必要的詳細資訊。

    3. (選用) 選擇 VPC 連線至私有網路中託管的爬蟲網站。您必須先在管理員設定中設定 VPC 連線,才能在此處進行選擇。如需詳細資訊,請參閱設定要與 Amazon Quick 搭配使用的 VPC

      注意

      建立整合之後,您無法變更 VPC 連線。若要使用不同的 VPC 連線,請建立新的整合。

    4. 選擇建立並繼續

    5. 輸入知識庫的名稱和描述。

    6. 新增您要編目的內容 URLs。

    7. 選擇建立

選擇建立後,資料同步會自動開始。

設定爬取

您可以設定要爬取的網站和頁面,以及如何篩選內容。

設定 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 知識庫:

  1. 在 Amazon Quick 主控台中,選擇知識庫

  2. 從清單中選擇您的 Web 爬蟲程式知識庫。

  3. 選擇動作下的三點圖示,然後選擇編輯知識庫

  4. 視需要更新您的組態設定,然後選擇儲存

附件和檔案爬取

控制系統是否處理從網頁連結的檔案和附件:

  • 啟用檔案連接網路爬取 – 選擇此選項可網路爬取和索引網頁上的檔案和連接,例如 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.xmlhttps://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 回應

  • 登入頁面重新導向迴圈

  • 工作階段逾時錯誤

解決步驟:

  1. 確認可從設定 Amazon Quick 執行個體 AWS 的區域存取網站。

  2. 確認您的登入資料正確且尚未過期。

  3. 檢查身分驗證端點可用性和可存取性。

  4. 在瀏覽器開發人員工具中測試 XPath 組態,以驗證 XPath 組態。

  5. 檢閱瀏覽器網路日誌以了解身分驗證流程。

  6. 確保登入頁面 URL 正確且可存取。

  7. 使用相同的登入資料手動測試身分驗證。

存取和連線問題

徵狀:

  • 連線逾時和網路錯誤

  • 網路無法連線的錯誤

  • DNS 解析失敗

解決步驟:

  1. 驗證與目標網站的網路連線。

  2. 驗證網站可存取性:

    • 檢查目標網域的 DNS 解析。

    • 驗證 SSL/TLS 組態和憑證。

    • 如果可能,測試來自不同網路的存取。

DNS 解析

Web 爬蟲程式使用 DNS 將網站主機名稱 (例如 www.example.com) 解析為 IP 地址。根據預設,它會使用公有 DNS 解析。

在 VPC 內爬取網站時,您可能需要設定私有 DNS 伺服器,以便爬蟲程式可以解析內部網站的主機名稱。根據您的 VPC 組態選擇下列其中一個選項:

  1. 使用 VPC 提供的 DNS 伺服器 — 如果您的 VPC 同時啟用 DNS 主機名稱DNS 解析,您可以使用預設 VPC DNS 解析程式 (通常是 10.0.0.2,或更普遍的 VPC CIDR base+2)。如需詳細資訊,請參閱VPC

  2. 使用自訂 DNS 伺服器 — 如果您的 VPC 使用自訂 DNS 解析程式,請提供組織內部 DNS 伺服器的 IP 地址。與您的網路管理員合作以取得此地址。

如果您未設定 DNS 伺服器,爬蟲程式只會解析公開註冊的主機名稱。

JavaScript 相依導覽

徵狀:

  • 只有種子 URL 才會編製索引,未發現其他頁面

  • 爬蟲成功完成,但只傳回一個文件

解決步驟:

  1. Web 爬蟲程式會執行 JavaScript 並轉譯頁面內容,但不會模擬使用者互動,例如點選、捲動或暫留動作。如果您的網站透過使用者互動載入導覽連結 (例如,按一下處理常式、無限捲動或動態功能表),爬蟲程式就無法探索這些連結。

  2. 在瀏覽器開發人員工具中檢查您的頁面,以檢查導覽連結是否使用標準<a href="...">元素。如果連結是透過 JavaScript 事件處理常式進行路由,爬蟲程式將不會跟隨它們。

  3. 如果您的網站提供網站地圖,Web 爬蟲程式會自動檢查種子 URLs 上的常見網站地圖路徑。確保您的網站地圖可在標準位置 (例如 /sitemap.xml) 使用,以便爬蟲程式可以在不依賴頁面內連結擷取的情況下探索其他 URLs。

  4. 或者,直接提供所有目標頁面 URLs做為種子 URLs。

  5. 如果內容可以匯出為 HTML、PDF 或文字檔案,請考慮改用 Amazon S3 連接器做為資料來源。

爬蟲和內容問題

徵狀:

  • 遺失或不完整的內容

  • 未完成爬蟲或提早終止

  • 速率限制錯誤 (429 個回應)

  • 內容未正確編製索引

解決步驟:

  1. 檢閱 robots.txt 限制:

    • 檢查 robots.txt 檔案是否有爬蟲限制。

    • 驗證爬蟲程式是否允許存取目標路徑。

    • 確保 robots.txt 合規不會封鎖內容。

  2. 檢查速率限制和限流:

    • 監控回應標頭以取得速率限制資訊。

    • 實作適當的爬蟲延遲。

  3. 驗證 URL 模式和篩選條件:

    • 測試 regex 模式的準確性。

    • 檢查 URL 格式和結構。

    • 驗證包含/排除模式邏輯。

  4. 檢閱內容限制:

    • 檢查頁面上的 noindex 中繼標籤。

    • 驗證內容類型支援。

    • 確保內容大小在限制範圍內。

  5. 更新等待時間,讓內容在爬蟲程式開始爬蟲之前載入頁面。

已知限制

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 存取的網站。