feder-cr/invisible_playwright
Playwright 호환 Firefox 기반 봇 탐지 우회 브라우저 - C++ 레벨에서 지문 위조
1,579+74이번 주0 찜
172포크2이슈
중간맛 분석
스택: Python + Firefox 150 (C++ 패치 적용), Playwright sync/async 완전 호환. 난이도: 초급 (설치 후 일반 Playwright처럼 사용). 바로 쓸 수 있나: 예. pip 설치 후 InvisiblePlaywright() 클래스로 즉시 시작 가능, 모든 Playwright 메서드 동작. 데모/테스트: CreepJS 및 FingerprintPro 통과 검증됨 (reCAPTCHA v3 점수 0.90). GitHub Actions에서 자동 테스트 중.
이런 레포예요
이럴 때 쓰면 좋아요
- reCAPTCHA v3 우회가 필요한 자동화 스크래핑
- Chromium 기반 탐지를 우회하고 residential proxy와 함께 사용해야 할 때
- CreepJS/FingerprintPro 같은 고급 탐지 시스템을 통과해야 하는 봇 자동화
핵심 기능
C++ 레벨 지문 위조 (JS 패치 탐지 불가)Playwright 100% API 호환성타임존/프록시/재현 가능한 지문 제어
대안 대비 차별점
Chromium 기반 도구들과 달리 Firefox 엔진 사용으로 봇 탐지의 Chromium 편향 회피, JavaScript 오버라이드 대신 C++ 네이티브 패치로 lie-detector 무력화, reCAPTCHA v3 0.90 점수 달성.
준비물
- Python 3.11+
- Windows x86_64 또는 Linux x86_64/arm64 또는 macOS arm64/x86_64
바로 시작하기
- 패키지 설치
pip install git+https://github.com/feder-cr/invisible_playwright.git
- Firefox 바이너리 다운로드 (일회성, ~100MB)
python -m invisible_playwright fetch
- 기본 사용 (동기 API)
# 이 코드를 Python 파일에 저장하고 실행:
# from invisible_playwright import InvisiblePlaywright
# with InvisiblePlaywright() as browser:
# page = browser.new_page()
# page.goto("https://creepjs-api.web.app")
- 프록시 사용 (선택사항)
# 코드에서:
# proxy = {"server": "socks5://gate.example.com:1080", "username": "u", "password": "p"}
# with InvisiblePlaywright(proxy=proxy) as browser:
# ...
- 지문 재현 (선택사항)
# seed 고정:
# with InvisiblePlaywright(seed=42) as browser:
# ... # 매번 동일한 GPU, canvas, 오디오
별 추이 · 7일
1,579+74 / 7일
활용성 · 따라 만들기 좋은가
베스트 샘플샘플 점수 68/100
- 관대한 라이선스
- 테스트 있음
- 예제 디렉토리
- 최근 활동
- AGENTS.md
- llms.txt
- 템플릿
🟢 최근 활동 있음 · 2026년 생성
이 레포에 깃밥 배지 달기
[](https://www.gitbap.com/r/feder-cr/invisible_playwright)🔌 클로드에서 바로 써보기
깃밥을 클로드에 연결하면 이런 레포를 클로드·커서·Codex에서 바로 찾고 체험할 수 있어요.
방법 ① 커넥터 URL
클로드 설정 → 커넥터에 이 주소를 붙여넣기.
https://www.gitbap.com/api/mcp방법 ② 플러그인 (체험까지)
플러그인을 설치하면 /gitbap-trending·/gitbap-try 슬래시 커맨드로 레포를 그 자리에서 체험. Claude Code에서 아래 두 줄을 차례로 실행하세요.
/plugin marketplace add jakeparkcolde/gitbap-cowork/plugin install gitbap-cowork@gitbapAI가 README 기반으로 요약했습니다 · 원문 보기