autoscrape-labs/pydoll

CDP 직접 연결로 WebDriver 바이너리 없이 Chrome/Edge를 자동화하고 Pydantic 추출 엔진으로 DOM을 타입된 Python 객체로 변환

개발 재료맘대로 써도 됨 · MIT자동화·워크플로우Python난이도
6,985+0이번 주0
394포크13이슈
데모·홈페이지 열기pydoll.tech

중간맛 분석

Python 3.10+ 기반의 완전 비동기(async/await) 자동화 라이브러리입니다. Pydantic 모델로 선언적 데이터 추출, humanize=True로 휴먼라이크한 마우스/키보드 조작, 네트워크 인터셉션, Shadow DOM 지원, HAR 레코딩 등을 제공합니다. 로그인 후 호출까지 세션을 유지하며, 클론→pip install→코드 실행으로 즉시 시작할 수 있습니다. 데모: Google 검색 자동화 및 quotes.toscrape.com 스크래핑 예제 포함.

이런 레포예요

이럴 때 쓰면 좋아요

  • 로그인 및 CAPTCHA 우회 후 API 호출로 대규모 데이터 수집
  • JavaScript 렌더링이 필요한 동적 웹페이지에서 구조화된 데이터 추출
  • Shadow DOM과 iframe을 포함한 복잡한 웹사이트 자동화 및 테스트

핵심 기능

Pydantic 기반 선언적 DOM 추출 엔진휴먼라이크 마우스 움직임과 타이핑(Bezier 곡선, Fitts 법칙)Shadow DOM(닫힌 루트 포함) 및 iframe 지원, 네트워크 인터셉션/모니터링, HAR 레코딩

대안 대비 차별점

WebDriver 바이너리 없이 CDP 직접 연결로 navigator.webdriver 탐지를 우회하고, Pydantic 추출 엔진으로 타입 안전한 구조화 데이터를 한 줄의 코드로 얻을 수 있습니다.

먹어본 사람들

실제로 차려 먹어본 손님들의 흔적이에요 — 한마디와 완주 인증 모두 검수 후 공개돼요.

시식평 · 먹어본 사람 한마디

아직 시식평이 없어요. 먹어보셨다면 첫 한마디를 남겨주세요.

다른 레포 시식평 구경하기 →

이 레포로 만든 것들

🖋 완주 인증하기

아직 이 레포로 만든 완주 인증이 없어요. 첫 밥도장을 찍어보세요!

이 레포, 해먹는 법

처음 오셨어요? 어렵지 않아요 — 위에서 아래로 따라 하면 내 컴퓨터에 이 레포를 차려서 바로 맛볼 수 있어요.

준비물

  • Python >= 3.10
  • Chrome 또는 Chromium 브라우저

바로 차려먹기Python (uv)

깃밥이 레포 구조를 확인하고 만든 실행 명령이에요. 터미널에 붙여넣으면 받기부터 실행까지 한 번에 진행돼요.

git clone --depth 1 https://github.com/autoscrape-labs/pydoll.git &&
cd pydoll &&
uv sync

uv가 없다면: brew install uv · 실행 명령은 README를 확인하세요.

코드는 내 컴퓨터에서 실행돼요 — 처음 보는 레포라면 내용을 한번 훑어보고 실행하는 습관을 추천해요.

README가 안내하는 자세한 단계 보기
  1. Pydoll 설치
pip install pydoll-python
  1. 기본 자동화 예제 (Google 검색)
import asyncio
from pydoll.browser import Chrome
from pydoll.constants import Key

async def google_search(query: str):
    async with Chrome() as browser:
        tab = await browser.start()
        await browser.set_window_maximized()
        await tab.go_to('https://www.google.com')
        search_box = await tab.find(tag_name='textarea', name='q')
        await search_box.type_text(query, humanize=True)
        await tab.keyboard.press(Key.ENTER)
        await asyncio.sleep(5)
        print(f"Page loaded: {await tab.title}")

asyncio.run(google_search('pydoll'))
  1. 구조화된 데이터 추출 예제
import asyncio
from pydoll.browser.chromium import Chrome
from pydoll.extractor import ExtractionModel, Field

class Quote(ExtractionModel):
    text: str = Field(selector='.text')
    author: str = Field(selector='.author')
    tags: list[str] = Field(selector='.tag')

async def extract_quotes():
    async with Chrome() as browser:
        tab = await browser.start()
        await tab.go_to('https://quotes.toscrape.com')
        quotes = await tab.extract_all(Quote, scope='.quote', timeout=5)
        for q in quotes:
            print(f'{q.author}: {q.text}')

asyncio.run(extract_quotes())

깃밥트라이로 맛보기

받아보기 귀찮고 살짝 불안했다면 — 안전 스캔부터 설치까지 터미널 한 줄로 끝나요.

터미널에 붙여넣으면 깃밥 안전 스캔 → 격리 폴더 clone → 설치 → 실행법 안내까지 자동이에요. 처음이어도 괜찮아요 — 이 한 줄이 전부예요.

npx gitbap-try autoscrape-labs/pydoll

Node.js만 있으면 설치 없이 실행돼요 · 깃밥트라이가 뭐예요? →

별 추이 · 7일

6,985+0 / 7일

활용성 · 따라 만들기 좋은가

베스트 샘플샘플 점수 68/100
  • 관대한 라이선스
  • 테스트 있음
  • 예제 디렉토리
  • 최근 활동
  • AGENTS.md
  • llms.txt
  • 템플릿

🟢 최근 활동 있음 · 2024년 생성

「자동화·워크플로우」 이런 레포, 매주 받아보실래요?

매주 월요일 아침, 골라 담은 밥상만. 광고 없이 · 언제든 해지.

내 레포인가요? README에 깃밥 배지 달기
[![깃밥](https://www.gitbap.com/badge/autoscrape-labs/pydoll.svg)](https://www.gitbap.com/r/autoscrape-labs/pydoll)
🔌 클로드에서 바로 써보기 — 깃밥 연결하는 법

깃밥을 클로드에 연결하면 이런 레포를 클로드·커서·Codex에서 바로 찾고 체험할 수 있어요.

방법 ① 커넥터 URL

클로드 설정 → 커넥터에 이 주소를 붙여넣기.

https://www.gitbap.com/api/mcp
방법 ② 플러그인 (체험까지)

플러그인을 설치하면 /gitbap-trending·/gitbap-try 슬래시 커맨드로 레포를 그 자리에서 체험. Claude Code에서 아래 두 줄을 차례로 실행하세요.

/plugin marketplace add jakeparkcolde/gitbap-cowork
/plugin install gitbap-cowork@gitbap
연결 방법 자세히 →

AI가 README 기반으로 요약했습니다 · 원문 보기