Puppeteer에서 프록시를 설정하고 사용하는 방법

댓글: 0

퍼피티는 자바스크립트로 구글 크롬, 마이크로소프트 엣지, 오페라, 브레이브와 같은 크롬 기반 브라우저를 제어할 수 있게 해주는 Node.js 라이브러리입니다. 페이지 탐색, 인터페이스 요소와의 상호 작용, PDF 파일 생성, 스크린샷 찍기, 서비스 테스트 수행 등 브라우저 작업을 자동화하는 데 특히 유용합니다. Puppeteer의 주요 기능 중 하나는 브라우저가 그래픽 인터페이스 없이 작동하는 헤드리스 모드를 지원한다는 점입니다. 이 모드는 데이터 수집 및 분석 속도를 크게 향상시키기 때문에 웹 스크래핑에 최적화되어 있습니다.

다음으로는 이 라이브러리의 기능을 극대화하기 위한 중요한 단계인 프록시를 설정하고 활용하는 방법에 대해 알아보겠습니다. 프록시를 활용하는 것은 여러 가지 이유로 유용합니다:

  • 사용자 행동 시뮬레이션: 다양한 디바이스 및 IP 주소에서 동작을 시뮬레이션하여 보다 자연스러운 브라우징 경험을 모방할 수 있습니다;
  • 사기 방지 조치 및 캡차 우회: 프록시는 짧은 기간 동안 단일 IP 주소에서 수많은 요청을 할 때 캡차와 같은 보안 조치를 트리거할 수 있는 탐지를 피하는 데 도움이 될 수 있습니다;
  • 로드 밸런싱: 여러 서버에 요청을 분산하면 스크래핑 속도와 효율성을 높일 수 있습니다;
  • 지리적 제한 극복: 프록시를 사용하면 지리적 블록을 우회하여 지역별 콘텐츠에 액세스할 수 있으므로 현지화된 데이터를 수집할 수 있습니다.

이러한 장점은 웹 스크래핑 및 자동화 작업을 성공적이고 효율적으로 수행하기 위해 Puppeteer 설정 내에서 프록시 관리를 통합하는 것이 얼마나 중요한지를 강조합니다.

자바스크립트를 사용하여 Puppeteer에서 단계별 프록시 설정

Puppeteer에 프록시를 추가하고 사용하도록 구성하려면 다음과 같은 간소화된 단계를 따르세요:

  1. Microsoft Visual Studio와 같은 개발 환경을 시작하고 JavaScript 라이브러리를 선택합니다.
  2. 다음 코드를 사용합니다:
    
    
    const puppeteer = require('puppeteer');
    
    async function run() {
    const browser = await puppeteer.launch({
    headless: false,
    args: ['--proxy-server=PROXY_IP:PROXY_PORT']
    });
    const page = await browser.newPage();
    
    const pageUrl = 'https://example.com/';
    
    // Adding proxy authentication
    
    await page.authenticate({ username: 'PROXY_USERNAME', password: 'PROXY_PASSWORD' });
    await page.goto(pageUrl);
    }
    
    run();
     
  3. 프록시 서버 = 프록시_IP:프록시_포트 인수는 지정된 프록시를 사용하도록 브라우저를 구성합니다.
    • --proxy-server: 브라우저에서 프록시 서버를 통해 네트워크 요청을 라우팅해야 함을 나타내는 명령줄 인수에 사용되는 플래그입니다.
    • PROXY_IP: 를 사용하려는 프록시 서버의 실제 IP 주소로 바꿉니다.
    • PROXY_PORT: 를 프록시 서버가 연결을 수신하도록 구성된 포트 번호로 대체합니다.

    예를 들어 프록시가 IP 111.111.11.11, 포트 2020에 있는 경우 코드는 다음과 같습니다:

    
    args: ['--proxy-server=111.111.11.11 : 2020]
    
  4. 비공개 프록시 서버를 사용하려면 인증 정보를 제공해야 합니다. 페이지 인증 메서드에 로그인 자격 증명을 입력합니다. 예를 들어 사용자 아이디가 myUser이고 비밀번호가 myPass인 경우 다음과 같이 코드를 업데이트합니다:
    await page.authenticate({ username: 'myUser', password: 'myPass' }); 
  5. 브라우저의 시작 페이지를 지정하려면 pageUrl 변수를 수정합니다. 기본 URL을 필요한 URL로 바꿉니다. 예를 들어 시작 페이지를 https://example.com/ 로 설정하려면 코드는 다음과 같습니다:
    const pageUrl = 'https://example.com/'; await page.goto(pageUrl); 

퍼펫티어에서 프록시를 사용해 모든 브라우저 트래픽을 지정된 서버로 라우팅하면 매우 유용할 수 있습니다. 이를 통해 지리적 제한을 우회하고 온라인 익명성을 강화하며 웹 스크래핑 활동 중 부하를 분산할 수 있습니다.

댓글:

0 댓글