Communitygithub.com

taazkareem/google-lens-scraper

Google Lens 기반 고성능 역방향 이미지 검색, 시각적 매칭 스크래퍼 및 Python용 OCR 추출 엔진입니다.

google-lens-scraper란 무엇인가요?

이 스킬은 AI 에이전트가 Google Lens를 통해 역방향 이미지 검색, OCR 텍스트 추출, 시각적 개체 감지, 쇼핑 매칭 및 가격 정보를 얻을 수 있게 해줍니다. Python 패키지 `google-lens-scraper`를 설치하고 `patchright install chromium`을 실행하면 곧바로 사용할 수 있습니다. 기본 검색 모드, OCR 전용 모드, 전자상거래 정보 보강 모드 등 다양한 CLI 명령을 지원하며, 선택적으로 Gemini API 키를 설정하면 AI 스튜디오 팩샷 생성 및 심층 속성 분석 기능을 사용할 수 있습니다. 출력은 JSON 형식으로 제공되어 에이전트가 구조화된 데이터를 쉽게 파싱하고 활용할 수 있습니다.

지원 대상~Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add taazkareem/google-lens-scraper

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Google Lens 에이전트 스킬

이 스킬을 통해 AI 에이전트는 Google Lens를 이용한 역방향 이미지 검색, 광학 문자 인식(OCR) 텍스트 추출, 시각적 개체 감지, 쇼핑 매칭 및 가격 정보를 얻을 수 있습니다.

전제 조건 및 설치

google-lens가 환경에 아직 설치되지 않은 경우, 패키지를 설치하고 stealth Chromium 브라우저 바이너리를 다운로드하세요:

pip install google-lens-scraper
patchright install chromium

참고: 고속 경로 OCR 모드(--ocr-only)는 Python 패키지만 필요하며, Chromium 바이너리를 다운로드하지 않고 즉시 작동합니다.

빠른 시작 레시피

1. 역방향 이미지 검색 및 시각적 인텔리전스 (기본 모드)

일치하는 제품, 웹 출처, 정규화된 가격 분석 및 다중 모달 속성 분석을 찾으려면:

google-lens search "<image-url-or-path>" --json-output

참고: 기본적으로 google-lens search는 GEMINI_API_KEY가 설정되어 있으면 자동으로 전자상거래 가격 정규화(--enrich) 및 심층 다중 모달 속성 분석(--analyze)을 Gemini 3.8 Flash를 통해 실행합니다.

에이전트 컨텍스트 내 폴백 전략: results.analysis가 null인 경우(호스트 환경에 GEMINI_API_KEY가 설정되지 않은 경우), AI 에이전트는 직접 쿼리 이미지와 반환된 visual_matches를 자체 대화 컨텍스트 내에서 검사하여 제품 속성(브랜드, 모델 실루엣, 소재, 상태, 예상 MSRP, 정품 인증)을 추론해야 합니다. 이는 추가 API 키 없이 사용자에게 완벽한 원활한 경험을 보장합니다.

2. Nano Banana Pro 8K AI Studio 팩샷 생성

참조 이미지로부터 깨끗한 흰색 배경의 초고해상도 8K 상업용 카탈로그 팩샷을 합성하려면:

google-lens search "<image-url-or-path>" --studio --studio-output ./packshot.png

선택적으로 사용자 정의 프롬프트를 제공할 수 있습니다:

google-lens search "<image-url-or-path>" --studio --studio-prompt "검은 브러시드 화강암 위의 8K 스튜디오 카탈로그 샷, 부드러운 드라마틱한 가장자리 조명"

3. 고속 경로 OCR 및 개체 감지 (1초 미만, CAPTCHA 없음)

이미지에서 텍스트 또는 경계 상자를 추출하려면 (Chromium Protobuf 엔드포인트 사용, 브라우저 오버헤드 없음):

google-lens search "<image-url-or-path>" --ocr-only --json-output

4. 전자상거래 및 재판매 차익거래 인텔리전스 (Pro)

정리된 표준 URL, 정규화된 가격 범위(최소/최대/평균)를 확인하고 최저 가격의 검증된 판매자("최적 거래")를 식별하려면:

google-lens search "<image-url-or-path>" --enrich --json-output

보강된 상거래 데이터를 깨끗한 JSON으로 직접 내보내려면:

google-lens search "<image-url-or-path>" --export-json deals.json

5. 실시간 토큰 및 비용 회계

모든 Gemini API 호출(Gemini 3.8 Flash 및 Nano Banana Pro)은 내장된 gemini-cost-calculator를 사용하여 자동으로 추적됩니다. CLI 또는 SDK를 통해 호출할 때 results.cost는 정확한 토큰 사용량과 USD 비용을 반환합니다:

"cost": {
  "model": "gemini-3.8-flash",
  "calls_count": 1,
  "tokens": { "prompt": 450, "output": 180, "total": 630 },
  "cost_usd": { "total": 0.001013 }
}

6. 라이선스 활성화 및 설정 (Pro)

Pro 기능(시장 가격 인텔리전스, 깔끔한 URL, JSON 내보내기, 스튜디오 팩)을 사용하려면 활성 Polar.sh 라이선스가 필요합니다.

라이선스 구매 (브라우저):

google-lens buy pro
# 또는 요금제 지정:
google-lens buy --plan annual

브라우저에서 Polar.sh 결제 페이지를 열어 요금제(평생, 연간, 월간)를 선택할 수 있습니다.

터미널에서 활성화:

google-lens pro activate "<your-polar-license-key>"
# 또는 대화형으로 실행:
google-lens pro activate
# 또는 환경 변수 설정:
export LENS_LICENSE_KEY="<your-polar-license-key>"

라이선스 상태 확인:

google-lens pro status

이 머신에서 비활성화:

google-lens pro deactivate

7. Google AI Studio 키 (선택 사항, --studio 전용)

Google Lens Scraper는 일반 검색이나 제품 속성에 Gemini API 키가 필요하지 않습니다. 이러한 정보는 Lens 메타데이터에서 기본적으로 제공되어 원활하게 작동합니다.

8K AI 스튜디오 팩샷(--studio)을 합성하려면 키를 한 번 구성하세요:

google-lens setup-ai --key "<your-gemini-api-key>"
# 또는 환경 변수 설정:
export GEMINI_API_KEY="<your-gemini-api-key>"

8. 세션 상태 및 Google 인증

Google Lens는 완전한 시각적 매칭을 위해 인증된 Google 세션이 필요하며 /sorry/index 속도 제한을 방지합니다:

google-lens status

인증되지 않았고 대화형 데스크톱 환경에서 실행 중인 경우:

google-lens login

헤드리스/클라우드/CI 환경의 경우 환경 변수를 통해 세션 상태를 전달하세요:

export LENS_STORAGE_STATE_JSON="<base64-또는-raw-json-스토리지-상태>"

번들 헬퍼 스크립트

프로그래매틱 워크플로 및 배치 작업을 위해 scripts/ 디렉토리에 있는 번들 스크립트를 사용하세요. 이 스크립트에는 PEP 723 인라인 종속성 메타데이터가 포함되어 있습니다.

단일 이미지 검색 및 필터링 (scripts/search_image.py)

내장된 가격, 결과 수 또는 모드별 필터링을 사용하여 이미지를 검색합니다:

# JSON 출력으로 기본 검색
python3 scripts/search_image.py "https://example.com/photo.jpg" --json

# 시각적 매칭 필터링 (예: 최대 5개 결과)
python3 scripts/search_image.py "path/to/image.png" --max-results 5 --json

# 빠른 OCR 추출
python3 scripts/search_image.py "path/to/receipt.jpg" --ocr-only --json

배치 이미지 처리 (scripts/batch_search.py)

이미지 디렉토리 또는 URL 목록을 비동기적으로 처리합니다:

# 디렉토리의 모든 이미지 처리
python3 scripts/batch_search.py --dir ./images/ --output ./batch_results.json

# 파일에서 URL 목록 처리
python3 scripts/batch_search.py --urls-file ./image_urls.txt --output ./batch_results.json --concurrency 3

출력 해석

--json-output을 사용할 때 JSON 페이로드는 다음 구조를 따릅니다:

{
  "query": "https://example.com/item.jpg",
  "ocr_text": "이미지에서 감지된 텍스트...",
  "knowledge_graph": {
    "title": "식별된 개체/엔터티 이름",
    "subtitle": "분류 (예: 신발 / 식물)",
    "description": "간단한 백과사전적 설명",
    "website": "https://..."
  },
  "visual_matches": [
    {
      "title": "제품 제목",
      "link": "https://store.com/item",
      "source": "스토어 이름",
      "price": "$99.00",
      "thumbnail": "https://..."
    }
  ],
  "detected_objects": [
    {
      "id": "item_1",
      "bounding_box": {
        "center_x": 0.5,
        "center_y": 0.5,
        "width": 0.3,
        "height": 0.4
      }
    }
  ]
}

문제 해결 및 모범 사례

  1. 봇 차단 (HTTP 429 / CAPTCHA): 시각적 매칭 요청이 속도 제한을 받는 경우 --ocr-only로 전환하거나(CAPTCHA 없음 보장) google-lens login 또는 LENS_STORAGE_STATE_JSON을 통해 인증하세요.
  2. 로컬 이미지: 로컬 파일 경로 (.png, .jpg, .jpeg, .webp, .bmp, .gif)는 Google의 빠른 업로드 엔드포인트에 자동으로 업로드됩니다.
  3. 헤드리스 실행: 검색은 기본적으로 헤드리스로 실행됩니다. 디버깅 환경에서는 --no-headless를 전달하여 브라우저를 검사하세요.

전체 CLI 플래그, 구성 매개변수 및 상세 JSON 스키마는 references/REFERENCE.md를 참조하세요.

관련 스킬