Gallery로 돌아가기

an-web

v0.4.1

AI-Native Web Browser Engine

AI 에이전트를 위한 시맨틱 우선 헤드리스 브라우저 엔진. 픽셀 렌더링 없이 웹 페이지를 구조화된 데이터로 변환합니다.

Python ≥ 3.12Apache-2.0
# Installation
$ pip install an-web
# or with uv
$ uv add an-web

핵심 기능

AI 에이전트를 위해 설계된 시맨틱 웹 브라우저 엔진의 기능을 확인하세요.

시맨틱 우선 설계

픽셀 렌더링 없이 HTML을 파싱하여 페이지 유형, 제목, 입력 필드, 액션 버튼 등을 자동으로 추출합니다.

11개 AI 도구

navigate, snapshot, click, type, select, extract, scroll, wait_for, eval_js 등 11개 도구를 제공합니다.

정책 엔진

도메인 화이트리스트, 샌드박스 모드, strict 모드 등으로 에이전트의 웹 접근 범위를 안전하게 제한합니다.

데이터 추출

CSS 셀렉터, Structured, JSON, HTML — 4가지 모드로 웹 페이지에서 구조화된 데이터를 추출합니다.

쿠키 & 스토리지

쿠키 관리, localStorage/sessionStorage 상태 저장, 세션 간 컨텍스트 유지를 지원합니다.

리플레이 & 추적

모든 액션을 기록하고 재생할 수 있는 ReplayEngine과 구조화된 로그/아티팩트 수집 기능을 제공합니다.

11개 AI 도구

Claude, GPT 등 LLM의 도구 호출 형식과 완벽하게 호환됩니다.

도구설명
navigateURL로 이동하고 페이지 로드 상태를 확인
snapshot현재 페이지의 시맨틱 스냅샷 생성
click시맨틱 타겟으로 요소 클릭
type입력 필드에 텍스트 입력
select드롭다운에서 옵션 선택
extract4가지 모드로 데이터 추출
scroll페이지 스크롤 (up/down/top/bottom)
wait_for조건 충족까지 대기
eval_jsJavaScript 코드 실행
clear입력 필드 내용 삭제
submit폼 제출

코드 예제

직관적인 Python API로 웹 페이지를 탐색하고 데이터를 추출하세요.

기본 네비게이션 & 스냅샷

from an_web import ANWebEngine

async with ANWebEngine() as engine:
    session = await engine.create_session()
    await session.navigate("https://example.com")

    snap = await session.snapshot()
    print(f"Title: {snap.title}")
    print(f"Type: {snap.page_type}")
    print(f"Actions: {snap.primary_actions}")

데이터 추출

# CSS 셀렉터로 추출
result = await session.act({
    "tool": "extract",
    "query": {
        "mode": "css",
        "selector": "h1, h2, h3"
    }
})

# Structured 모드 — 필드 매핑
result = await session.act({
    "tool": "extract",
    "query": {
        "mode": "structured",
        "selector": "div.item",
        "fields": {"title": "h2", "price": ".price"}
    }
})

정책 기반 안전 제어

from an_web.policy import PolicyRules, PolicyChecker

rules = PolicyRules.sandboxed(
    allowed_domains=["example.com", "api.example.com"]
)
checker = PolicyChecker(rules)

result = checker.check_navigate("https://example.com")
print(result.allowed)  # True

result = checker.check_navigate("https://evil.com")
print(result.allowed)  # False

아키텍처

10개 서브패키지로 구성된 모듈러 아키텍처

core
엔진, 세션
dom
HTML 파서
actions
11개 도구
semantic
페이지 분석
policy
보안 정책

an-web으로 시작하세요

pip install an-web으로 설치하고, AI 에이전트에 웹 탐색 능력을 부여하세요.