AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

Node.js + Playwright Stealth: 5분 안에 Cloudflare 1020 우회하기

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발

대상자

웹 크롤링/스크래핑 개발자, 반자동/자동화 도구 사용자

난이도: 중급 (Node.js 및 Playwright 기초 지식 필요)

핵심 요약

  • playwright-extra-plugin-stealth 플러그인을 통해 headless 브라우저 감지 회피 가능
  • 거주형 프록시(residential proxies)와 User-Agent 회전으로 IP 차단 방지
  • 랜덤 딜레이마우스 이동 시뮬레이션으로 자동화 감지 회피

섹션별 세부 요약

1. 기초 Playwright 설정

  • npm install playwright 명령어로 Playwright 설치
  • chromium.launch()로 브라우저 인스턴스 생성
  • page.goto()로 페이지 로딩 후 page.content()로 HTML 내용 추출
  • 문제점: 반자동 보호 기술(예: CAPTCHA, 1020 에러)으로 인한 크롤링 실패 가능성

2. Stealth 플러그인 추가

  • npm install playwright-extra playwright-extra-plugin-stealth로 플러그인 설치
  • chromium.use(stealth())navigator.webdriver 속성 숨기기
  • 효과: 자동화 감지 회피율 상승, 1020 에러 발생 가능성 감소

3. 거주형 프록시 통합

  • 프록시 배열(residentialProxies) 생성 후 랜덤 선택
  • chromium.launch({ proxy: { server: proxy } })로 프록시 적용
  • 효과: IP 주소 회전으로 프록시 블랙리스트 회피

4. 헤더 및 User-Agent 회전

  • User-Agent 배열 생성 후 랜덤 선택:

```javascript

const userAgents = ['Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36', ...];

```

  • extraHTTPHeaders'Accept-Language', 'Accept' 헤더 추가
  • 효과: 브라우저 감지 기술 우회

5. 랜덤 딜레이 및 네비게이션 트윅

  • randomDelay() 함수로 1~3초 랜덤 딜레이 적용
  • page.mouse.move()로 마우스 이동, window.scrollBy()로 스크롤 시뮬레이션
  • 효과: 자동화 추적 회피

6. 최종 스크립트

  • 모든 설정 통합: 프록시, User-Agent, 헤더, 딜레이, 마우스 이동
  • 코드 예시:

```javascript

const { chromium } = require('playwright-extra');

const stealth = require('playwright-extra-plugin-stealth');

chromium.use(stealth());

```

결론

  • 1020 에러 우회를 위해 Stealth 플러그인 + 프록시 + 헤더 회전 조합 필수
  • CAPTCHA 해결 기능 추가가 추천되며, Cloudflare 기술은 지속적으로 업데이트됨
  • GitHub 저장소HasData 블로그에서 실제 성능 데이터 확인 가능