Puppeteer 대 Selenium: 웹 스크래핑을 위해 무엇을 선택해야 할까요?

프록시 선택 및 구매

Puppeteer 대 Selenium: 웹 스크래핑을 위해 무엇을 선택해야 할까요?

웹 스크래핑을 위해 Puppeteer와 Selenium 중에서 결정하려고 하시나요? 둘 다 강력한 브라우저 자동화 프레임워크이며 올바른 선택은 특정 스크래핑 요구 사항과 사용 가능한 리소스에 따라 달라집니다.

정보에 입각한 결정을 내리는 데 도움이 되도록 아래 표에 Puppeteer와 Selenium의 주요 차이점을 강조했습니다. 그 후에는 세부 사항을 조사하고 각 프레임워크에 대한 스크래핑 예제를 제공하여 웹 페이지에서 데이터를 추출하는 데 있어 효율성을 입증할 것입니다.

기준인형사셀렌
호환 가능한 언어공식적으로는 JavaScript만 지원되지만 비공식 PHP 및 Python 포트도 있습니다.자바, Python, C#, Ruby, PHP, JavaScript 및 Kotlin
브라우저 지원Chromium 및 실험적인 Firefox 지원크롬, 사파리, 파이어폭스, 오페라, 엣지, 인터넷 익스플로러
성능60%는 셀레늄보다 빠릅니다.빠른
운영 체제 지원윈도우, 리눅스, 맥OS윈도우, 리눅스, macOS, 솔라리스
건축학헤드리스 브라우저 인스턴스를 갖춘 이벤트 중심 아키텍처브라우저 인스턴스를 제어하기 위한 웹 드라이버의 JSONWire 프로토콜
전제조건JavaScript 패키지로 충분합니다Selenium 바인딩(선택한 프로그래밍 언어용) 및 브라우저 웹 드라이버
지역 사회Selenium에 비해 작은 커뮤니티잘 확립된 문서와 대규모 커뮤니티

계속해서 이러한 라이브러리에 대해 자세히 논의하고 웹 페이지에서 데이터를 추출하는 효율성을 설명하기 위해 각각에 대한 스크래핑 예제를 수행해 보겠습니다.

인형사 로고

인형사

인형사 DevTools 프로토콜을 통해 Chrome 또는 Chromium을 제어하기 위한 고급 API를 제공하는 Node.js 라이브러리입니다. 스크린샷 찍기, PDF 생성, 페이지 탐색 등 Chrome 또는 Chromium에서 작업을 자동화하도록 설계되었습니다.

Puppeteer는 버튼 클릭, 양식 작성, 표시되는 결과 확인과 같은 사용자 상호 작용을 시뮬레이션하여 웹 페이지를 테스트하는 데에도 사용할 수 있습니다.

인형극의 장점

  • 사용의 용이성: 사용법이 간단하고 간단합니다.
  • Chromium과 함께 번들로 제공: 추가 설정이 필요하지 않습니다.
  • 헤드리스 모드: 기본적으로 헤드리스 모드에서 실행되지만 전체 브라우저 모드에서 실행되도록 구성할 수 있습니다.
  • 이벤트 기반 아키텍처: 코드에서 수동 수면 호출이 필요하지 않습니다.
  • 포괄적인 기능: 스크린샷을 찍고, PDF를 생성하고, 모든 브라우저 작업을 자동화할 수 있습니다.
  • 성과 관리: 스크레이퍼를 최적화하고 디버그하기 위해 런타임 및 로드 성능을 기록하는 도구를 제공합니다.
  • SPA 크롤링: SPA(단일 페이지 애플리케이션)를 크롤링하고 사전 렌더링된 콘텐츠(서버 측 렌더링)를 생성할 수 있습니다.
  • 스크립트 녹음: DevTools 콘솔을 사용하여 브라우저에 작업을 기록하여 Puppeteer 스크립트를 생성할 수 있습니다.

인형극의 단점

  • 제한된 브라우저 지원: Selenium에 비해 더 적은 수의 브라우저를 지원합니다.
  • 자바스크립트 중심: Python 및 PHP에 대한 비공식 포트가 존재하지만 주로 JavaScript를 지원합니다.

Puppeteer를 사용한 웹 스크래핑 예

Puppeteer 웹 스크래핑 튜토리얼을 통해 다뉴브 웹사이트의 범죄 및 스릴러 카테고리에서 항목을 추출해 보겠습니다.

다뉴브 상점: 범죄와 스릴러

시작하려면 Puppeteer 모듈을 가져오고 Puppeteer 코드를 실행하는 비동기 함수를 만듭니다.

const puppeteer = require('puppeteer'); 

async function main() { 
    // Launch a headless browser instance 
    const browser = await puppeteer.launch({ headless: true });

    // Create a new page object 
    const page = await browser.newPage();

    // Navigate to the target URL and wait until the loading finishes
    await page.goto('https://danube-webshop.herokuapp.com/', { waitUntil: 'networkidle2' });

    // Wait for the left-side bar to load
    await page.waitForSelector('ul.sidebar-list');

    // Click on the first element and wait for the navigation to finish
    await Promise.all([
        page.waitForNavigation(),
        page.click("ul[class='sidebar-list'] > li > a"),
    ]);

    // Wait for the book previews to load
    await page.waitForSelector("li[class='preview']");

    // Extract the book previews
    const books = await page.evaluateHandle(
        () => [...document.querySelectorAll("li[class='preview']")]
    );

    // Extract the relevant data using page.evaluate
    const processed_data = await page.evaluate(elements => {
        let data = [];
        elements.forEach(element => {
            let title = element.querySelector("div.preview-title").innerHTML;
            let author = element.querySelector("div.preview-author").innerHTML;
            let rating = element.querySelector("div.preview-details > p.preview-rating").innerHTML;
            let price = element.querySelector("div.preview-details > p.preview-price").innerHTML;

            let result = { title, author, rating, price };
            data.push(result);
        });
        return data;
    }, books);

    // Print out the extracted data
    console.log(processed_data);

    // Close the page and browser respectively
    await page.close();
    await browser.close();
}

// Run the main function to scrape the data
main();

예상 출력

코드를 실행하면 출력은 다음과 유사해야 합니다.

[
    {
        title: 'Does the Sun Also Rise?',
        author: 'Ernst Doubtingway',
        rating: '★★★★☆',
        price: '$9.95'
    },
    {
        title: 'The Insiders',
        author: 'E. S. Hilton',
        rating: '★★★★☆',
        price: '$9.95'
    },
    {
        title: 'A Citrussy Clock',
        author: 'Bethany Urges',
        rating: '★★★★★',
        price: '$9.95'
    }
]

Puppeteer를 사용하는 또 다른 예

웹페이지에서 데이터를 스크랩하는 것 외에도 Puppeteer는 다양한 자동화 작업에 사용될 수 있습니다. 일반적인 사용 사례 중 하나는 웹페이지의 PDF를 생성하는 것입니다. Puppeteer를 사용하여 웹 페이지에서 PDF를 생성하는 예를 살펴보겠습니다.

Puppeteer를 사용하여 PDF 생성

1단계: Puppeteer 가져오기 및 비동기 함수 만들기

const puppeteer = require('puppeteer');

async function generatePDF() {
    // Launch a headless browser instance
    const browser = await puppeteer.launch({ headless: true });

    // Create a new page object
    const page = await browser.newPage();

    // Navigate to the target URL
    await page.goto('https://example.com', { waitUntil: 'networkidle2' });

    // Generate a PDF from the web page
    await page.pdf({
        path: 'example.pdf', // Output file path
        format: 'A4',        // Paper format
        printBackground: true, // Include background graphics
    });

    // Close the page and browser respectively
    await page.close();
    await browser.close();
}

// Run the function to generate the PDF
generatePDF();

추가 인형사 옵션

Puppeteer는 필요에 맞게 사용자 정의할 수 있는 PDF 생성을 위한 여러 옵션을 제공합니다. 사용할 수 있는 몇 가지 옵션은 다음과 같습니다.

  • path: PDF를 저장할 파일 경로입니다.
  • format: 용지 형식(예: 'A4', 'Letter')입니다.
  • printBackground: 배경 그래픽을 포함할지 여부입니다.
  • landscape: 로 설정 true 가로 방향용.
  • margin: PDF의 여백(상단, 오른쪽, 하단, 왼쪽)을 지정합니다.

추가 옵션의 예:

const puppeteer = require('puppeteer');

async function generatePDF() {
    const browser = await puppeteer.launch({ headless: true });
    const page = await browser.newPage();
    await page.goto('https://example.com', { waitUntil: 'networkidle2' });

    await page.pdf({
        path: 'example.pdf',
        format: 'A4',
        printBackground: true,
        landscape: true,
        margin: {
            top: '20px',
            right: '20px',
            bottom: '20px',
            left: '20px',
        },
    });

    await page.close();
    await browser.close();
}

generatePDF();

예제 출력

위 코드를 실행하면 다음과 같은 PDF 파일이 생성됩니다. example.pdf 웹 페이지의 내용이 포함된 현재 디렉토리 https://example.com.

Puppeteer는 데이터 스크랩부터 PDF 생성까지 웹 자동화 작업을 위한 다목적 도구입니다. 사용하기 쉽고 강력한 기능을 갖추고 있어 광범위한 브라우저 활동을 자동화하는 데 탁월한 선택입니다. 데이터 스크랩, 보고서 생성, 웹 페이지 테스트 등 어떤 작업을 하든 Puppeteer는 작업을 효율적으로 완료하는 데 필요한 도구를 제공합니다.

셀레늄 로고

셀렌

셀렌 웹 스크래핑에 자주 사용되는 오픈 소스 엔드투엔드 테스트 및 웹 자동화 도구입니다. 주요 구성 요소로는 Selenium IDE, Selenium WebDriver 및 Selenium Grid가 있습니다.

  • 셀레늄 IDE: 작업을 자동화하기 전에 기록하는 데 사용됩니다.
  • 셀레늄 웹드라이버: 브라우저에서 명령을 실행합니다.
  • 셀레늄 그리드: 병렬 실행을 활성화합니다.

셀레늄의 장점

  • 사용의 용이성: 사용법이 간단하고 간단합니다.
  • 언어 지원: Python, Java, JavaScript, Ruby, C# 등 다양한 프로그래밍 언어를 지원합니다.
  • 브라우저 자동화: Firefox, Edge, Safari 및 맞춤형 QtWebKit 브라우저와 같은 브라우저를 자동화할 수 있습니다.
  • 확장성: 브라우저 설정이 다른 클라우드 서버를 사용하여 Selenium을 수백 개의 인스턴스로 확장 가능합니다.
  • 크로스 플랫폼: Windows, macOS, Linux에서 작동합니다.

셀레늄의 단점

  • 복잡한 설정: Selenium 설정 방법은 복잡할 수 있습니다.

Selenium을 사용한 웹 스크래핑 샘플

Puppeteer와 마찬가지로 동일한 대상 사이트를 사용하여 Selenium을 사용한 웹 스크래핑에 대한 튜토리얼을 살펴보겠습니다. 다뉴브 웹사이트의 범죄 및 스릴러 카테고리에서 도서 미리보기를 추출하겠습니다.

다뉴브 상점: 범죄와 스릴러

1단계: 필요한 모듈 가져오기 및 Selenium 구성

import time
from selenium import webdriver
from selenium.webdriver.common.by import By

options = webdriver.ChromeOptions()
options.add_argument("--headless")

2단계: Chrome WebDriver 초기화

driver = webdriver.Chrome(options=options)

3단계: 대상 웹사이트로 이동

time.sleep(1)
crime_n_thrillers = driver.find_element(By.CSS_SELECTOR, "ul[class='sidebar-list'] > li")
crime_n_thrillers.click()
time.sleep(1)
books = driver.find_elements(By.CSS_SELECTOR, "div.shop-content li.preview")

4단계: 범죄 및 스릴러 카테고리를 클릭하고 도서 미리보기 추출

time.sleep(1)
crime_n_thrillers = driver.find_element(By.CSS_SELECTOR, "ul[class='sidebar-list'] > li")
crime_n_thrillers.click()
time.sleep(1)
books = driver.find_elements(By.CSS_SELECTOR, "div.shop-content li.preview")

5단계: 각 도서 미리보기에서 데이터를 추출하는 함수 정의

def extract(element):
    title = element.find_element(By.CSS_SELECTOR, "div.preview-title").text
    author = element.find_element(By.CSS_SELECTOR, "div.preview-author").text
    rating = element.find_element(By.CSS_SELECTOR, "div.preview-details p.preview-rating").text
    price = element.find_element(By.CSS_SELECTOR, "div.preview-details p.preview-price").text
    return {"title": title, "author": author, "rating": rating, "price": price}

6단계: 미리 보기 반복, 데이터 추출 및 드라이버 종료

extracted_data = []
for element in books:
    data = extract(element)
    extracted_data.append(data)

print(extracted_data)
driver.quit()

예상 출력

위의 코드를 실행하면 다음과 유사한 출력이 생성됩니다.

[
    {'title': 'Does the Sun Also Rise?', 'author': 'Ernst Doubtingway', 'rating': '★★★★☆', 'price': '$9.95'},
    {'title': 'The Insiders', 'author': 'E. S. Hilton', 'rating': '★★★★☆', 'price': '$9.95'},
    {'title': 'A Citrussy Clock', 'author': 'Bethany Urges', 'rating': '★★★★★', 'price': '$9.95'}
]

추가 Selenium 예: 스크린샷 찍기

데이터를 스크랩하는 것 외에도 Selenium을 사용하여 웹 페이지의 스크린샷을 찍을 수도 있습니다. 다음은 Selenium을 사용하여 웹페이지의 스크린샷을 찍는 방법에 대한 예입니다.

1단계: 필요한 모듈 가져오기 및 Selenium 구성

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--headless")

2단계: Chrome WebDriver 초기화

driver = webdriver.Chrome(options=options)

3단계: 대상 웹사이트로 이동

url = "https://example.com"
driver.get(url)

4단계: 스크린샷 찍기

driver.save_screenshot("example_screenshot.png")

5단계: 드라이버 종료

driver.quit()

Selenium은 웹 스크래핑 및 스크린샷 찍기를 포함한 웹 자동화 작업을 위한 다목적 도구입니다. 확장성과 함께 여러 프로그래밍 언어 및 브라우저에 대한 지원은 다양한 자동화 요구 사항에 대한 강력한 선택입니다. 데이터를 추출하든 보고서를 생성하든 Selenium은 작업을 효율적으로 자동화하는 기능을 제공합니다.

인형극 대 셀레늄: 속도 비교

Puppeteer는 Selenium보다 빠르나요? 대답은 '예'입니다. Puppeteer는 일반적으로 Selenium보다 빠릅니다.

Puppeteer와 Selenium의 속도를 비교하기 위해 Danube-store 샌드박스를 사용하고 위에 제시된 스크립트를 20번 실행하여 평균 실행 시간을 계산했습니다.

셀레늄 속도 테스트

우리는 time Selenium 스크립트의 실행 시간을 측정하기 위한 Python 모듈입니다. 시작 시간은 스크립트 시작 부분에 기록되고 종료 시간은 끝 부분에 기록되었습니다. 이 시간의 차이는 총 실행 기간을 제공합니다.

Selenium에 사용되는 전체 스크립트는 다음과 같습니다.

import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

def extract(element):
    title = element.find_element(By.CSS_SELECTOR, "div.preview-title").text
    author = element.find_element(By.CSS_SELECTOR, "div.preview-author").text
    rating = element.find_element(By.CSS_SELECTOR, "div.preview-details p.preview-rating").text
    price = element.find_element(By.CSS_SELECTOR, "div.preview-details p.preview-price").text
    return {"title": title, "author": author, "rating": rating, "price": price}

# Start the timer
start_time = time.time()

options = webdriver.ChromeOptions()
options.add_argument("--headless")

# Create a new instance of the Chrome driver
driver = webdriver.Chrome(options=options)

url = "https://danube-webshop.herokuapp.com/"
driver.get(url)

# Click on the Crime & Thrillers category
time.sleep(1)
crime_n_thrillers = driver.find_element(By.CSS_SELECTOR, "ul[class='sidebar-list'] > li")
crime_n_thrillers.click()
time.sleep(1)

# Extract the book previews
books = driver.find_elements(By.CSS_SELECTOR, "div.shop-content li.preview")

extracted_data = []
for element in books:
    data = extract(element)
    extracted_data.append(data)

print(extracted_data)

# End the timer
end_time = time.time()
print(f"The whole script took: {end_time - start_time:.4f} seconds")

driver.quit()

인형극 속도 테스트

Puppeteer 스크립트의 경우, 우리는 Date 실행 시간을 측정하는 객체입니다. 시작 시간은 스크립트 시작 부분에 기록되고 종료 시간은 끝 부분에 기록되었습니다. 이 시간의 차이는 총 실행 기간을 제공합니다.

Puppeteer에 사용된 전체 스크립트는 다음과 같습니다.

const puppeteer = require('puppeteer');

async function main() {
    const start = Date.now();

    const browser = await puppeteer.launch({ headless: true });
    const page = await browser.newPage();
    await page.goto('https://danube-webshop.herokuapp.com/', { waitUntil: 'networkidle2' });

    await page.waitForSelector('ul.sidebar-list');

    await Promise.all([
        page.waitForNavigation(),
        page.click("ul[class='sidebar-list'] > li > a"),
    ]);

    await page.waitForSelector("li[class='preview']");
    const books = await page.evaluateHandle(
        () => [...document.querySelectorAll("li[class='preview']")]
    );

    const processed_data = await page.evaluate(elements => {
        let data = [];
        elements.forEach(element => {
            let title = element.querySelector("div.preview-title").innerHTML;
            let author = element.querySelector("div.preview-author").innerHTML;
            let rating = element.querySelector("div.preview-details > p.preview-rating").innerHTML;
            let price = element.querySelector("div.preview-details > p.preview-price").innerHTML;

            let result = { title, author, rating, price };
            data.push(result);
        });
        return data;
    }, books);

    console.log(processed_data);
    await page.close();
    await browser.close();

    const end = Date.now();
    console.log(`Execution time: ${(end - start) / 1000} seconds`);
}

main();

성능 테스트 결과

성능 테스트 결과 Puppeteer는 Selenium보다 약 60% 빠른 것으로 나타났습니다. 이러한 속도 이점으로 인해 Puppeteer는 특히 Chromium 기반 브라우저로 작업할 때 고속 웹 스크래핑 및 자동화가 필요한 프로젝트에 더 적합한 선택입니다.

속도 결과 요약:

인형극 대 셀레늄 속도 테스트

아래 차트는 Puppeteer와 Selenium의 성능 차이를 보여줍니다.

빠르고 효율적인 웹 스크래핑이 필요한 프로젝트를 위해 Puppeteer 애플리케이션을 확장하는 것이 이러한 맥락에서 최적의 선택입니다.

인형극 대 셀레늄: 어느 것이 더 낫나요?

그렇다면 긁기에는 Selenium과 Puppeteer 중 어느 것이 더 낫습니까? 해당 질문에 대한 직접적인 대답은 없습니다. 이는 장기 라이브러리 지원, 크로스 브라우저 지원 및 웹 스크래핑 요구 사항과 같은 여러 요소에 따라 달라지기 때문입니다.

Puppeteer는 더 빠르지만 Selenium에 비해 더 적은 수의 브라우저를 지원합니다. Selenium은 또한 Puppeteer에 비해 더 많은 프로그래밍 언어를 지원합니다.

결론

Puppeteer 또는 Selenium을 사용하는 것이 웹 스크래핑에 좋은 옵션이지만 고급 안티 봇 조치가 이러한 라이브러리를 감지하고 차단할 수 있기 때문에 웹 스크래핑 프로젝트를 확장하고 최적화하는 것이 어려울 수 있습니다. 이를 방지하는 가장 좋은 방법은 OneProxy와 같은 웹 스크래핑 API를 사용하는 것입니다.

프록시 서버와 함께 Puppeteer 사용

프록시 서버와 함께 Puppeteer를 사용하려면 다음에서 프록시 설정을 전달할 수 있습니다. args 브라우저 인스턴스를 시작할 때의 옵션입니다. 예는 다음과 같습니다.

const puppeteer = require('puppeteer');

async function main() {
    const proxyServer = 'http://your-proxy-server:port';
    
    const browser = await puppeteer.launch({
        headless: true,
        args: [`--proxy-server=${proxyServer}`]
    });

    const page = await browser.newPage();
    await page.goto('https://example.com', { waitUntil: 'networkidle2' });

    // Perform your web scraping tasks here

    await browser.close();
}

main();

프록시 서버와 함께 Selenium 사용

프록시 서버와 함께 Selenium을 사용하려면 다음을 사용하여 프록시 옵션을 설정할 수 있습니다. webdriver.Proxy 수업. 예는 다음과 같습니다.

from selenium import webdriver
from selenium.webdriver.common.proxy import Proxy, ProxyType

proxy = Proxy()
proxy.proxy_type = ProxyType.MANUAL
proxy.http_proxy = "your-proxy-server:port"
proxy.ssl_proxy = "your-proxy-server:port"

capabilities = webdriver.DesiredCapabilities.CHROME
proxy.add_to_capabilities(capabilities)

options = webdriver.ChromeOptions()
options.add_argument("--headless")

driver = webdriver.Chrome(desired_capabilities=capabilities, options=options)
driver.get("https://example.com")

# Perform your web scraping tasks here

driver.quit()

Puppeteer 및 Selenium과 함께 프록시 서버를 사용하면 IP 기반 제한을 우회하고 차단 위험을 줄여 웹 스크래핑 작업의 효율성을 높일 수 있습니다. OneProxy의 회전 프록시 이 프로세스를 더욱 최적화하여 원활한 스크래핑 경험을 제공할 수 있습니다.

자주 묻는 질문(FAQ)

Puppeteer와 Selenium은 모두 웹 스크래핑, 테스트 및 브라우저 작업 자동화에 사용되는 브라우저 자동화 프레임워크입니다. Puppeteer는 DevTools 프로토콜을 통해 Chrome 또는 Chromium을 제어하는 Node.js 라이브러리인 반면, Selenium은 WebDriver API를 통해 다양한 브라우저와 프로그래밍 언어를 지원하는 오픈 소스 도구입니다.

Puppeteer는 일반적으로 Selenium보다 빠릅니다. 그러나 속도 차이는 웹 스크래핑 또는 자동화 프로젝트에 사용되는 특정 작업 및 구성에 따라 달라질 수 있습니다.

Puppeteer는 사용 편의성, 속도, 기본적으로 헤드리스 모드에서 작업을 자동화하는 기능으로 유명합니다. Chromium을 지원하며 코드에서 수동 절전 호출이 필요 없는 강력한 이벤트 기반 아키텍처를 갖추고 있습니다.

Puppeteer는 Selenium에 비해 더 적은 수의 브라우저를 지원하며 주로 JavaScript에 중점을 둡니다. 하지만 Python 및 PHP와 같은 다른 언어에 대한 비공식 포트가 존재합니다.

프록시 설정을 전달하여 Puppeteer가 프록시 서버를 사용하도록 구성할 수 있습니다. args 브라우저를 시작할 때 옵션.

Selenium은 여러 프로그래밍 언어(Python, Java, JavaScript, Ruby, C#)를 지원하며 Firefox, Edge, Safari 및 QtWebKit과 같은 사용자 정의 브라우저를 포함한 다양한 브라우저를 자동화할 수 있습니다. 또한 다양한 브라우저 설정으로 클라우드 서버를 설정하는 것과 같은 기술을 통해 광범위한 확장성을 허용합니다.

Selenium은 특히 다양한 브라우저와 환경에 맞게 구성할 때 Puppeteer에 비해 설정이 더 복잡할 수 있습니다.

다음을 사용하여 Selenium에서 프록시 서버를 설정할 수 있습니다. webdriver.Proxy 수업.

Puppeteer와 Selenium을 모두 사용하여 Danube-store 샌드박스에서 동일한 웹 스크래핑 작업을 실행했습니다. 각 스크립트는 20번씩 실행되었으며, 성능 비교를 위해 평균 실행 시간을 계산하였습니다.

결과에 따르면 Puppeteer는 Selenium보다 약 60% 빠르며 고속 웹 스크래핑 및 자동화 작업에 더 나은 선택입니다.

OneProxy는 차단을 방지하는 데 도움이 될 수 있습니다. OneProxy는 안티 봇 우회를 처리하고 회전 프록시, 헤드리스 브라우저, 자동 재시도 등을 제공하여 원활한 웹 스크래핑 환경을 보장합니다.

데이터센터 프록시
공유 프록시

믿을 수 있고 빠른 수많은 프록시 서버.

시작 시간IP당 $0.06
회전 프록시
회전 프록시

요청당 지불 모델을 갖춘 무제한 순환 프록시입니다.

시작 시간요청당 $0.0001
개인 프록시
UDP 프록시

UDP를 지원하는 프록시.

시작 시간IP당 $0.4
개인 프록시
개인 프록시

개인용 전용 프록시.

시작 시간IP당 $5
무제한 프록시
무제한 프록시

트래픽이 무제한인 프록시 서버.

시작 시간IP당 $0.06
지금 바로 프록시 서버를 사용할 준비가 되셨나요?
IP당 $0.06부터