SpiderTool

설명

Spider가장 빠른 오픈 소스 스크래퍼이자 크롤러로, LLM(대형 언어 모델)에 바로 사용할 수 있는 데이터를 제공한다. 이 도구는 어떤 웹사이트든 순수한 HTML, 마크다운, 메타데이터 또는 텍스트로 변환하며, AI를 활용해 커스텀 액션으로 크롤링할 수 있는 기능을 제공한다.

설치

SpiderTool을 사용하려면 Spider SDKcrewai[tools] SDK를 다운로드해야 한다:

pip install spider-client 'crewai[tools]'

예제

이 예제는 SpiderTool을 사용해 에이전트가 웹사이트를 스크랩하고 크롤링할 수 있도록 설정하는 방법을 보여준다. Spider API에서 반환된 데이터는 이미 LLM에서 바로 사용할 수 있도록 준비되어 있으므로 추가적인 정제 작업이 필요하지 않다.

from crewai_tools import SpiderTool

def main():
    spider_tool = SpiderTool()

    searcher = Agent(
        role="웹 리서치 전문가",
        goal="특정 URL에서 관련 정보를 찾는다",
        backstory="웹을 매우 잘 활용하는 전문 웹 리서치 전문가",
        tools=[spider_tool],
        verbose=True,
    )

    return_metadata = Task(
        description="https://spider.cloud를 스크랩하고, 1개의 제한과 메타데이터 활성화",
        expected_output="spider.cloud의 메타데이터와 10단어 요약",
        agent=searcher
    )

    crew = Crew(
        agents=[searcher],
        tasks=[
            return_metadata,
        ],
        verbose=2
    )

    crew.kickoff()

if __name__ == "__main__":
    main()

인자

인자타입설명
api_keystringSpider API 키를 지정한다. 지정하지 않으면 환경 변수에서 SPIDER_API_KEY를 찾는다.
paramsobject요청에 대한 선택적 매개변수. 기본값은 {"return_format": "markdown"}로, LLM에 최적화된 콘텐츠를 반환한다.
requeststring수행할 요청 타입 (http, chrome, smart). smart는 기본적으로 HTTP를 사용하며, 필요한 경우 JavaScript 렌더링으로 전환한다.
limitint웹사이트당 최대 크롤링 페이지 수. 0으로 설정하거나 생략하면 제한 없이 크롤링한다.
depthint최대 크롤링 깊이. 0으로 설정하면 제한 없이 크롤링한다.
cacheboolHTTP 캐싱을 활성화해 반복 실행 속도를 높인다. 기본값은 true이다.
budgetobject크롤링 페이지에 대한 경로 기반 제한을 설정한다. 예를 들어 {"*":1}은 루트 페이지만 크롤링한다.
localestring요청에 대한 로케일을 지정한다. 예: en-US.
cookiesstring요청에 사용할 HTTP 쿠키를 지정한다.
stealthboolChrome 요청에 대해 탐지를 피하기 위해 스텔스 모드를 활성화한다. 기본값은 true이다.
headersobject모든 요청에 대한 HTTP 헤더를 키-값 쌍의 맵으로 지정한다.
metadatabool페이지와 콘텐츠에 대한 메타데이터를 저장해 AI 상호 운용성을 높인다. 기본값은 false이다.
viewportobjectChrome 뷰포트의 크기를 설정한다. 기본값은 800x600이다.
encodingstring인코딩 타입을 지정한다. 예: UTF-8, SHIFT_JIS.
subdomainsbool크롤링에 서브도메인을 포함시킨다. 기본값은 false이다.
user_agentstring커스텀 HTTP 사용자 에이전트를 지정한다. 기본값은 랜덤 에이전트이다.
store_databool요청에 대한 데이터 저장을 활성화한다. storageless가 설정된 경우 이를 재정의한다. 기본값은 false이다.
gpt_configobjectAI가 크롤링 액션을 생성하도록 허용하며, "prompt"에 대한 배열을 통해 선택적 체이닝 단계를 설정할 수 있다.
fingerprintboolChrome에 대한 고급 지문 인식을 활성화한다.
storagelessboolAI 임베딩을 포함한 모든 데이터 저장을 방지한다. 기본값은 false이다.
readabilityboolMozilla의 readability를 통해 콘텐츠를 사전 처리해 읽기 쉽게 만든다. LLM에 적합한 콘텐츠를 제공한다.
return_formatstring데이터 반환 형식을 지정한다: markdown, raw, text, html2text. 기본 페이지 형식을 원한다면 raw를 사용한다.
proxy_enabledbool네트워크 수준의 차단을 피하기 위해 고성능 프록시를 활성화한다.
query_selectorstring마크업에서 콘텐츠를 추출하기 위한 CSS 쿼리 선택자를 지정한다.
full_resourcesbool웹사이트에 연결된 모든 리소스를 다운로드한다.
request_timeoutint요청에 대한 타임아웃을 초 단위로 설정한다 (5-60). 기본값은 30이다.
run_in_backgroundbool요청을 백그라운드에서 실행한다. 데이터 저장 및 대시보드 크롤링 트리거에 유용하다. storageless가 설정된 경우 효과가 없다.