View a markdown version of this page

웹 크롤러 - Amazon Bedrock

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

웹 크롤러

웹 크롤러는 관리형 지식 기반에서 사용하도록 지정한 URLs에 연결하고 크롤링합니다. 웹 크롤러는 크롤링 범위 및 제한에 따라 하위 링크에 따라 시드 URLs에서 시작하여 HTML 페이지를 통과합니다. 사이트맵 URLs 시작점으로 제공할 수도 있습니다. 웹 크롤러는 RFC 9309에 따라 robots.txt를 준수합니다.

중요

크롤링할 웹 사이트를 선택할 때 Amazon 사용 정책 및 기타 모든 Amazon 약관을 준수해야 합니다. 웹 크롤러는 자체 웹 페이지 또는 크롤링 권한이 있는 웹 페이지를 인덱싱하는 데만 사용합니다.

참고

웹 크롤러는 문서 수준 액세스 제어(ACLs 지원하지 않습니다. 인덱싱된 모든 콘텐츠는 지식 기반에 액세스할 수 있는 모든 사용자가 액세스할 수 있습니다. ACL 필터링이 필요한 경우 이를 지원하는 커넥터(예: Amazon S3, SharePoint 또는 OneDrive)를 사용합니다.

지원되는 기능

  • 여러 URLs 및 사이트맵 URLs 크롤링

  • 구성 가능한 크롤링 깊이, 속도 제한 및 links-per-URL 제한

  • 크롤링 범위 제어: 동일한 호스트 및 경로, 호스트 전용 또는 호스트 및 하위 도메인

  • URL 패턴 필터(포함 및 제외 정규식)

  • 웹 페이지에서 연결된 첨부 파일 크롤링(PDFs, 문서 등)

  • 보호된 사이트에 대한 인증: 기본, 양식 기반 또는 SAML

  • 추가, 업데이트 및 삭제된 콘텐츠에 대한 증분 콘텐츠 동기화

인증 방법

웹 크롤러는 네 가지 인증 방법을 지원합니다. 대상 사이트가 사용자를 인증하는 방법과 일치하는 메서드를 선택합니다. 로그인이 없는 퍼블릭 사이트의 경우를 사용합니다NO_AUTH.

웹 크롤러 인증 방법
방법 인증 방법 사용해야 하는 경우
인증 없음(NO_AUTH) 크롤러는 자격 증명 없이 요청을 보냅니다. 로그인이 필요하지 않은 퍼블릭 웹 사이트입니다.
기본 인증(BASIC_AUTH) 크롤러는 보안 암호의 사용자 이름과 암호가 포함된 HTTP Authorization: Basic 헤더를 전송합니다. HTTP 기본 인증으로 보호되는 사이트(브라우저 스타일 사용자 이름 및 암호 대화 상자).
양식 인증(FORM) 크롤러는 HTML 양식을 제출하여 로그인합니다. 양식 필드를 찾는 로그인 URL, 자격 증명 및 XPath 표현식을 제공합니다. 로그인에 HTML 양식을 사용하는 사이트.
SAML 인증(SAML) 크롤러는 SAML 자격 증명 공급자의 로그인 양식을 통해 로그인합니다. 양식 필드를 찾는 IdP 로그인 URL, 자격 증명 및 XPath 표현식을 제공합니다. SAML 기반 Single Sign-On을 사용하는 사이트입니다.

사전 조건

크롤링하려는 웹 사이트의 경우 다음을 확인합니다.

  • 웹 사이트와 해당 콘텐츠를 크롤링할 수 있는 권한이 있어야 합니다.

  • 사이트에 robots.txt 대해 크롤링하려는 URLs 허용하지 않는지 확인합니다. 웹 크롤러는 robots.txt 파일을 찾을 수 없는 경우 기본적으로 허용되지 않습니다.

  • 사이트에 로그인이 필요한 경우 인증 방법(기본, 양식 또는 SAML)을 식별합니다. 양식 및 SAML의 경우 로그인 페이지에서 사용자 이름 필드, 암호 필드 및 제출 버튼의 XPath 표현식을 찾습니다. XPath를 찾으려면 브라우저에서 양식 요소를 마우스 오른쪽 버튼으로 클릭하고 검사를 선택한 다음 개발자 도구에서 XPath를 복사합니다.

AWS 계정에서 다음을 확인합니다.

  • 사이트에 인증이 필요한 경우 보안 인증 정보를 AWS Secrets Manager 보안 암호에 저장하고 Amazon 리소스 이름(ARN)을 기록해 둡니다. 정확한 키-값 페어는 단원을 참조하십시오인증 자격 증명.

  • 지식 기반에 대한 AWS Identity and Access Management (IAM) 역할/권한 정책에 데이터 소스에 연결하는 데 필요한 권한을 포함합니다. 필요한 권한에 대한 자세한 내용은 섹션을 참조하세요데이터 소스에 액세스할 수 있는 권한.

웹 크롤러 데이터 소스를 설정하는 방법

웹 크롤러 데이터 소스 설정에는 다음 단계가 포함됩니다.

  1. (사이트에 로그인이 필요한 경우) 자격 증명을 준비합니다. 인증 방법의 자격 증명을 AWS Secrets Manager 보안 암호에 저장합니다. 인증 자격 증명을(를) 참조하세요.

  2. 데이터 소스를 연결합니다. AWS Management Console 또는 API를 사용하여 지식 기반에서 웹 크롤러 데이터 소스를 생성합니다. 데이터 소스 생성을(를) 참조하세요.

데이터 소스 생성

Console
웹 크롤러를 관리형 지식 기반에 연결하려면
  1. 데이터 소스에서 데이터 소스의 이름을 입력합니다.

  2. 데이터 소스 드롭다운에서 웹 크롤러를 선택합니다.

  3. 소스에서 소스 URLs(최대 10개의 시작점 URLs) 또는 소스 사이트맵(최대 3개의 사이트맵 URLs)을 선택합니다.

  4. URLs 추가 텍스트 영역에 행당 하나씩 URLs 입력합니다.

  5. 인증에서 인증 없음, 기본 인증, 양식 인증 또는 SAML 인증을 선택합니다. 인증 없음 이외의 방법의 경우 보안 AWS Secrets Manager 암호를 선택하거나 생성하여 자격 증명을 저장합니다.

  6. (선택 사항) 동기화 범위를 확장하여 크롤링 깊이(0~10), URL당 최대 링크(1~1000), 분당 크롤링된 최대 URLs(1~300) 및 크롤링 범위: 기본(시드 URL과 동일한 호스트 및 동일한 초기 URL 경로), 호스트 전용(동일한 호스트, 모든 경로) 또는 하위 도메인(하위 도메인을 포함한 동일한 기본 도메인)을 설정합니다.

  7. (선택 사항) URL 필터 패턴을 확장하여 특정 URLs을 포함하거나 제외하는 정규식을 추가합니다.

API

웹 크롤러 데이터 소스를 생성하려면 Agents for 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/.*" ] } } } }

인증된 사이트의 경우를 BASIC_AUTH, FORM또는 authType로 설정하고를 secretArnSAML추가합니다connectionConfiguration.

관리형 지식 기반의 경우 CreateDataSource는 비동기식입니다. 작업이 완료되면 데이터 소스 상태가에서 AVAILABLE CREATING로 전환됩니다.

커넥터 파라미터

데이터 소스 구성은 다음 커넥터 파라미터를 사용합니다. 웹 크롤러를 사용하려면에서 커넥터 유형WEB으로를 지정합니다connectorParameters. 래핑되는 필드connectorParameters(예: deletionProtectionConfigurationmediaExtractionConfiguration)는 섹션을 참조하세요데이터 소스 연결.

connectionConfiguration
Field 필수 설명
seedUrls 조건부 크롤링을 시작할 시드 URLs. 최대 10개 를 제공하지 않는 한 필수입니다siteMapUrls.
siteMapUrls 조건부 사이트맵 URLs. 최대 3. 를 제공하지 않는 한 필수입니다seedUrls.
authType 인증 유형: NO_AUTH, BASIC_AUTHFORM, 또는 SAML. 인증 방법을(를) 참조하세요.
secretArn 조건부 자격 증명이 포함된 AWS Secrets Manager 보안 암호의 ARN입니다. 이이 authType 아닌 경우 필요합니다NO_AUTH.
crawlConfiguration(선택 사항)
Field 필수 설명
crawlDepth 아니요 최대 크롤링 깊이입니다. 범위 0~10.는 지정된 URLs만 0크롤링합니다. 값이 높을수록 사이트 심층 링크를 따릅니다. 기본값은 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(선택 사항)
Field 필수 설명
inclusionPatterns 아니요 정규식 목록입니다. 하나 이상의 패턴과 일치하는 URLs만 크롤링되고 인덱싱됩니다.
exclusionPatterns 아니요 정규식 목록입니다. 패턴과 일치하는 URLs은 크롤링되거나 인덱싱되지 않습니다.
maxFileSizeInMegaBytes 아니요 크롤러가 수집하는 단일 파일의 최대 크기입니다. 를 숫자 문자열로 입력합니다(예: "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만 인덱싱됩니다. 사이트 탐색 링크는 표준 <a href="..."> 요소 대신 JavaScript 이벤트 핸들러(클릭, 스크롤, 동적 메뉴)를 통해 연결됩니다. 크롤러는 JavaScript를 렌더링하지만 사용자 상호 작용을 시뮬레이션하지 않으므로 해당 링크를 검색할 수 없습니다. 크롤링하려는 페이지에 대한 추가 URLs을 제공하거나 크롤링할 모든 URL을 나열하는 사이트맵 URL을 제공합니다. 콘텐츠를 파일로 내보낼 수 있는 경우 대신 Amazon S3 커넥터를 사용하는 것이 좋습니다.
동기화는 콘텐츠를 반환하지 않거나 예상보다 적은 페이지를 반환합니다. 사이트의 robots.txt 파일은 크롤링하려는 URLs을 허용하지 않거나 페이지에 noindex메타 태그가 있습니다. 크롤링하려는 경로를 허용하도록 호스트robots.txt를 업데이트하거나 인덱싱하려는 페이지에서 noindex메타 태그를 제거합니다. 메타 태그를 읽으려면 크롤러가 페이지에 액세스해야 하므로 메타 태그 감지도 원하는 robots.txt 경우에서 페이지를 차단하지 마십시오.
인증 실패(HTTP 401 또는 403, 로그인 리디렉션 루프 또는 세션 제한 시간). 자격 증명이 잘못되었거나 만료되었거나 XPath 표현식이 로그인 페이지 요소와 일치하지 않습니다. 보안 암호의 자격 증명을 확인합니다. FORM 또는 SAML 인증의 경우 브라우저의 개발자 도구에서 각 XPath를 검증하고를 확인합니다loginPageUrl.
속도 제한(HTTP 429) 또는 불완전한 콘텐츠와 함께 동기화가 실패합니다. 크롤러가 사이트에서 허용하는 것보다 빠르게 페이지를 가져오고 있습니다. 페이지가 준비된 후 로드되는 동적 콘텐츠가 있는 사이트의 implicitWaitInSeconds 경우를 낮추maxCrawledUrlsPerMinute거나를 늘립니다.
페이지가 예상보다 크기 때문에 누락되었습니다. 페이지 또는 첨부 파일이를 초과합니다maxFileSizeInMegaBytes. 를 늘리maxFileSizeInMegaBytes거나 제한보다 큰 파일은 수집되지 않도록 허용합니다.