이 블로그 글에서 배울 내용:
- Apify란 무엇인가
- Apify와 함께 Scraping Browser를 사용하는 것이 윈윈 시나리오인 이유
- Bright Data의 Scraping Browser를 Apify Python 스크립트에 통합하는 방법
- Apify에서 Bright Data 프록시 사용 방법
자, 시작해 보겠습니다!
Apify란 무엇인가요?
Apify는 풀스택 웹 스크래핑 및 데이터 추출 플랫폼입니다. 클라우드에서 ‘액터(Actor)’로 알려진 맞춤형 웹 스크래핑 도구를 생성하고 실행할 수 있습니다. 이 액터들은 데이터 수집, 처리 및 자동화와 관련된 작업을 자동화합니다.
Apify에서는 스크래핑 스크립트를 공개하여 다른 사용자가 이용할 수 있게 함으로써 수익을 창출할 수 있습니다. 액터를 비공개로 활용할 계획이든 공개할 계획이든, Bright Data의 스크래핑 솔루션은 스크래퍼의 안정성과 효율성을 높이는 데 도움이 될 것입니다.
Apify에서 Bright Data의 스크래핑 브라우저를 사용해야 하는 이유
Bright Data의 스크래핑 브라우저의 가치를 제대로 이해하려면 이 도구가 무엇이며 어떤 기능을 제공하는지 알아야 합니다.
브라우저 자동화 도구의 가장 큰 한계는 API가 아니라 제어하는 브라우저 자체에 있습니다. 스크래핑 브라우저는 웹 스크래핑을 위해 특별히 설계된 차세대 웹 브라우저입니다. 특히 다음과 같은 핵심 기능을 제공합니다:
- 탐지를 피하기 위한 신뢰할 수 있는 TLS 지문
- 대규모 데이터 추출을 위한 무제한 확장성
- 1억 5천만 IP 프록시 네트워크 기반의 내장형 IP 로테이션
- 실패한 요청 처리 자동 재시도
- CAPTCHA 해결 기능
Scraping Browser는 Playwright, Puppeteer, Selenium을 포함한 모든 주요 브라우저 자동화 프레임워크와 호환됩니다. 따라서 새로운 API를 배우거나 타사 종속성을 설치할 필요가 없습니다. 기존 브라우저 자동화 스크래핑 스크립트에 직접 통합하기만 하면 됩니다.
이제 Apify와 함께 Scraping Browser를 사용하면 다음과 같은 추가 이점을 얻을 수 있습니다:
- 클라우드 비용 절감: 브라우저는 상당한 리소스를 소모하여 CPU 및 RAM 사용량을 증가시킵니다. 무제한 확장성이 보장된 클라우드 기반 Scraping Browser는 Apify에서 액터 실행 시 클라우드 비용을 절감합니다. Apify가 서버 사용량 기준으로 과금하므로 Scraping Browser 요금을 포함하더라도 비용 절감 효과를 기대할 수 있습니다.
- 올인원 안티봇 우회 도구: Scraping Browser는 IP 차단, CAPTCHA 검증, 브라우저 지문 문제 및 기타 스크래핑 방어 장벽을 해결합니다. 이를 통해 스크래핑 프로세스의 효율성을 높이고 중단 가능성을 줄입니다.
- 내장형 프록시 통합: 스크래핑 브라우저에는 프록시 관리 기능이 포함되어 있어 프록시 유지 관리 및 수동 교체를 더 이상 걱정할 필요가 없습니다.
- Apify의 이점: 일반 스크립트 대신 클라우드 Apify 액터에서 Scraping Browser를 사용하면 다음과 같은 추가 이점을 얻을 수 있습니다.
- 쉬운 배포
- API를 통한 프로그래매틱 데이터 접근
- 간편한 데이터 내보내기
- 쉬운 입력 인수 구성
- 대규모 프로젝트를 위한 확장성
Bright Data와 Apify의 통합은 스크래핑 워크플로우를 단순화할 뿐만 아니라 안정성도 향상시킵니다. 또한 웹 스크래핑 봇을 가동하는 데 필요한 시간과 노력을 줄여줍니다.
Apify에서 Bright Data 스크래핑 브라우저 통합 방법: 단계별 가이드
이 섹션의 대상 사이트는 정보가 풍부하지만 엄격한 반봇 조치로 악명 높은 플랫폼인 Amazon입니다. 적절한 도구가 없다면 악명 높은 Amazon CAPTCHA에 걸려 스크래핑 시도가 차단될 가능성이 높습니다:

이 섹션에서는 Bright Data의 스크래핑 브라우저를 활용하여 일반적인 아마존 제품 검색 페이지에서 데이터를 추출하는 스크래핑 액터를 구축할 것입니다:

참고: 액터는 Python으로 작성되지만, Apify가 JavaScript도 지원한다는 점을 기억하세요.
Bright Data의 스크래핑 도구를 Apify에 통합하는 방법을 아래 단계별로 따라 해보세요!
필수 조건
이 튜토리얼을 따라하려면 다음 전제 조건을 충족해야 합니다:
- 로컬에 설치된 Python 3.8+: 로컬 액터 스크립트 개발 및 빌드용.
- 로컬에 Node.js 설치: Apify CLI 설치를 위해 필요합니다.
- Apify 계정: 로컬 Actor를 Apify 플랫폼에 배포하기 위해필요합니다.
- Bright Data 계정: 스크래핑 브라우저에 접근하기 위해필요합니다.
1단계: 프로젝트 설정
새로운 Apify 액터 프로젝트를 설정하는 가장 쉬운 방법은 Apify CLI를 사용하는 것입니다. 먼저 Node.js를 통해 다음 명령어로 전역 설치하세요:
npm install -g apify-cli
그런 다음 다음 명령을 실행하여 새 Apify 프로젝트를 생성하세요:
npx apify-cli create
몇 가지 질문에 답변하라는 메시지가 표시됩니다. 다음과 같이 답변하세요:
✔ 새 액터 이름: amazon-scraper
✔ 새 액터의 프로그래밍 언어 선택: Python
✔ 새 액터용 템플릿 선택. 템플릿에 대한 자세한 정보는 다음 단계에서 표시됩니다.
Playwright + Chrome
이렇게 하면 Apify CLI가 “Playwright + Chrome” 템플릿을 사용하여 amazon-scraper 폴더에 새로운 Python 액터를 생성합니다. 해당 도구에 익숙하지 않다면 Playwright 웹 스크래핑 가이드를 참고하세요.
참고: Bright Data의 스크래핑 브라우저는 모든 브라우저 자동화 도구와 연동되므로 Selenium 또는 Puppeteer 템플릿도 사용할 수 있습니다.
Apify Actor 프로젝트는 다음과 같은 구조를 갖게 됩니다:
amazon-scraper
│── .dockerignore
│── .gitignore
│── README.md
│── requirements.txt
│
├── .venv/
│ └── ...
│
├── .actor/
│ │── actor.json
│ │── Dockerfile
│ └── input_schema.json
│
├── src/
│ │── main.py
│ │── __init__.py
│ │── __main__.py
│ └── py.typed
│
└── storage/
└── ...
Visual Studio Code(Python 확장 기능 포함 ) 또는 PyCharm Community Edition과 같은 선호하는 Python IDE에서 amazon-scraper 폴더를 로드하세요.
이제 로컬에서 Actor를 실행하려면 Playwright 브라우저가 설치되어 있어야 합니다. 이를 위해 먼저 프로젝트 디렉토리 내 가상 환경 폴더(.venv)를 활성화하세요. Windows에서는 다음 명령을 실행합니다:
.venv/Scripts/activate
Linux/macOS에서는 다음과 같이 실행하세요:
source .venv/bin/activate
그런 다음 다음 명령을 실행하여 필요한 Playwright 종속성을 설치하세요:
playwright install --with-deps
훌륭합니다! 이제 로컬에서 액터를 실행할 수 있습니다:
apify run
이제 Apify 프로젝트가 완전히 설정되어 Bright Data의 Scraping Browser와 통합할 준비가 되었습니다!
2단계: 대상 페이지에 연결하기
아마존 검색 결과 페이지의 URL을 살펴보면 다음과 같은 형식을 따르는 것을 확인할 수 있습니다:
https://www.amazon.com/search/s?k=<키워드>
예시:

스크립트의 대상 URL은 이 형식을 사용해야 하며, <키워드> 는 Apify 입력 인수를 사용하여 동적으로 설정할 수 있습니다. 액터가 허용하는 입력 매개변수는 .actor 디렉터리에 위치한 input_schema.json 파일에 정의되어 있습니다.
키워드 인수를 정의하면 스크립트를 사용자 정의할 수 있어 사용자가 원하는 검색어를 지정할 수 있습니다. 해당 매개변수를 정의하려면 input_schema.json의 내용을 다음과 같이 교체하세요:
{
"title": "Amazon Scraper",
"type": "object",
"schemaVersion": 1,
"properties": {
"keyword": {
"title": "검색 키워드",
"type": "string",
"description": "아마존에서 상품을 검색하는 데 사용되는 키워드",
"editor": "textfield"
}
},
"required": ["keyword"]
}
이 구성은 문자열 유형의 필수 키워드 매개변수를 정의합니다.
로컬에서 액터를 실행할 때 키워드 인수를 설정하려면 storage/key_value_stores/default 내부의 INPUT.json 파일을 다음과 같이 수정하세요:
{
"keyword": "laptop"
}
이렇게 하면 액터가 키워드 입력 인수를 읽고 "laptop" 을 검색어로 사용합니다.
Actor가 Apify 플랫폼에 배포되면, Actor 실행 전에 이 매개변수를 사용자 정의할 수 있는 입력 필드가 표시됩니다:

Apify Actor의 진입점 파일은 src 폴더에 위치한 main.py입니다. 이 파일을 열고 다음과 같이 수정하세요:
- 입력 인수에서 키워드 매개변수 읽기
- Amazon 검색 페이지의 대상 URL을 구성합니다
- Playwright를 사용하여 해당 페이지로 이동
이 단계가 완료되면 main.py 파일에 아래와 같은 Python 로직이 포함되어야 합니다:
from apify import Actor
from playwright.async_api import async_playwright
async def main() -> None:
# Actor 컨텍스트 진입
async with Actor:
# Actor 입력값 가져오기 (제공되지 않을 경우 기본값 사용)
actor_input = await Actor.get_input() or {}
# 입력 데이터에서 "keyword" 인수를 읽고, 기본값으로 "laptop"을 할당
keyword = actor_input.get("keyword")
# 대상 URL 생성
target_url = f"https://www.amazon.com/search/s?k={keyword}"
# Playwright 실행 및 새 브라우저 컨텍스트 열기
async with async_playwright() as playwright:
# Actor 구성에 따라 헤드리스 모드로 브라우저 실행 설정
browser = await playwright.chromium.launch(
headless=Actor.config.headless,
args=["--disable-gpu"],
)
context = await browser.new_context()
try:
# 브라우저 컨텍스트에서 새 페이지 열기 및 URL로 이동
page = await context.new_page()
await page.goto(target_url)
# 스크래핑 로직...
except Exception:
Actor.log.exception(f"{target_url}에서 데이터를 추출할 수 없습니다")
finally:
await page.close()
위의 코드:
- 스크립트 라이프사이클 관리를 위해 Apify
Actor를초기화합니다 Actor.get_input()을 사용하여 입력 인수를 가져옵니다- 입력 데이터에서
키워드인수를 추출합니다 - 파이썬 f-string을 사용하여 대상 URL을 구성합니다
- Playwright를 실행하고 GPU를 비활성화한 헤드리스 크로미움 브라우저를 시작합니다
- 새 브라우저 컨텍스트 생성, 페이지 열기,
page.goto()를 사용한 대상 URL로 이동 Actor.log.exception()으로 오류 기록- 실행 후 Playwright 페이지가 닫히도록 보장
완벽합니다! 이제 Apify Actor가 Bright Data의 Scraping Browser를 활용하여 효율적인 웹 스크래핑을 수행할 준비가 되었습니다.
3단계: Bright Data의 스크래핑 브라우저 통합
이제 Playwright API를 사용하여 대상 페이지에 연결한 후 스크린샷을 캡처하세요:
await page.screenshot(path="screenshot.png")
로컬에서 액터를 실행하면 프로젝트 폴더에 screenshot.png 파일이 생성됩니다. 파일을 열면 다음과 같은 내용이 표시될 것입니다:

마찬가지로 아마존 오류 페이지가 표시될 수도 있습니다:

보시다시피, 웹 스크래핑 봇이 아마존의 봇 방지 조치에 의해 차단되었습니다. 이는 아마존이나 다른 인기 웹사이트를 스크래핑할 때 마주칠 수 있는 수많은 문제 중 하나에 불과합니다.
Bright Data의 Scraping Browser를사용하면 이러한 문제를 잊어버리세요. 무제한 확장성, 자동 IP 로테이션, CAPTCHA 해결, 스크래핑 방지 우회 기능을 제공하는 클라우드 기반 스크래핑 솔루션입니다.
시작하려면, 아직 계정이 없다면 Bright Data 계정을 생성하세요. 그런 다음 플랫폼에 로그인하세요. “사용자 대시보드” 섹션에서 “프록시 제품 받기” 버튼을 클릭하세요:

“프록시 및 스크래핑 인프라” 페이지의 “내 영역” 테이블에서 “scraping_browser” 행을 선택하세요:

토글 스위치를 켜서 제품을 활성화하세요:

이제 “구성” 탭에서 최대 효과를 위해 “프리미엄 도메인”과 “CAPTCHA 솔버” 옵션이 모두 활성화되었는지 확인하세요:

“개요” 탭에서 Playwright 스크래핑 브라우저 연결 문자열을 복사하세요:

연결 문자열을 main.py 파일에 상수로 추가하세요:
SBR_WS_CDP = "<YOUR_PLAYWRIGHT_SCRAPING_BROWSER_CONNECTION_STRING>"
<YOUR_PLAYWRIGHT_SCRAPING_BROWSER_CONNECTION_STRING> 을 앞서 복사한 연결 문자열로 대체하세요.
참고: Apify에서 액터를 공개할 계획이라면 SBR_WS_CDP를 Apify 액터 입력 인자로 정의해야 합니다. 이렇게 하면 액터를 채택하는 사용자가 자체 스크래핑 브라우저 연결 문자열을 통합할 수 있습니다.
이제 main.py 의 브라우저 정의를 Playwright와 함께 Scraping Browser를 사용하도록 업데이트하세요:
browser = await playwright.chromium.connect_over_cdp(SBR_WS_CDP, timeout=120000)
프록시를 통한 IP 로테이션 및 CAPTCHA 해결에 시간이 소요될 수 있으므로 연결 시간 제한은 평소보다 높은 값으로 설정해야 합니다.
완료! Apify Actor 내에서 Playwright에 Scraping Browser를 성공적으로 통합했습니다.
4단계: 모든 제품 목록 스크래핑 준비
아마존에서 제품 목록을 스크래핑하려면 먼저 페이지의 HTML 구조를 파악하기 위해 페이지 검사(Inspect)를 수행해야 합니다. 페이지의 제품 요소 중 하나를 마우스 오른쪽 버튼으로 클릭하고 “검사(Inspect)” 옵션을 선택하세요. 다음과 같은 개발자 도구(DevTools) 섹션이 나타납니다:

여기서 각 상품 목록 요소는 다음 CSS 선택자로 선택할 수 있음을 확인할 수 있습니다:
[data-component-type="s-search-result"]
테스트나 모니터링에 주로 사용되는 사용자 정의 data-* 속성을 타겟팅하는 것이 이상적입니다. 따라서 이러한 속성은 시간이 지나도 일관성을 유지하는 경향이 있습니다.
이제 Playwright 로케이터를 사용하여 페이지의 모든 제품 요소를 가져옵니다:
product_elements = page.locator("[data-component-type="s-search-result"]")
다음으로 제품 요소를 반복 처리하며 데이터 추출을 준비합니다:
for product_element in await product_elements.all():
# 데이터 추출 로직...
훌륭합니다! 이제 아마존 데이터 추출 로직을 구현할 차례입니다.
단계 #5: 스크래핑 로직 구현
먼저 개별 제품 목록 요소를 살펴봅니다:

이 섹션에서 .s-image 요소의 src 속성으로부터 제품 이미지를 가져올 수 있습니다:
image_element = product_element.locator(".s-image").nth(0)
image = await image_element.get_attribute("src")
로케이터에 일치하는 첫 번째 HTML 요소를 가져오려면 nth(0) 이 필요합니다.
다음으로 상품 제목을 확인합니다:

[data-cy="title-recipe"] 요소 내부의 <a> 및 <h2> 요소에서 각각 제품 URL과 제목을 수집할 수 있습니다:
title_header_element = product_element.locator("[data-cy="title-recipe"]").nth(0)
link_element = title_header_element.locator("a").nth(0)
url = None if url_text == "javascript:void(0)" else "https://amazon.com" + url_text
title_element = title_header_element.locator("h2").nth(0)
title = await title_element.get_attribute("aria-label")
“javascript:void(0)” URL(특수 광고 상품에 표시됨)을 무시하는 로직과 상품 URL을 절대 경로로 변환하는 처리 방식을 참고하세요.
다음으로 리뷰 섹션을 살펴보겠습니다:

[data-cy="reviews-block"]에서 <a> 요소의 aria-label을 통해 리뷰 평점을 얻을 수 있습니다:
rating_element = product_element.locator("[data-cy="reviews-block"] a").nth(0)
rating_text = await rating_element.get_attribute("aria-label")
rating_match = re.search(r"(d+(.d+)?) out of 5 stars", rating_text)
if rating_match:
rating = rating_match.group(1)
else:
rating = None
aria-label 속성의 평점 텍스트가 “X out of 5 stars” 형식이기 때문에 간단한 정규 표현식으로 평점 값 X를 추출할 수 있습니다. 웹 스크래핑에 정규 표현식을 사용하는 방법을 참고하세요.
Python 표준 라이브러리에서 re를 반드시 임포트하세요:
import re
이제 리뷰 수 요소를 검사합니다:

[data-component-type="s-client-side-analytics"] 내부의 <a> 요소에서 리뷰 수를 추출합니다:
review_count_element = product_element.locator("[data-component-type="s-client-side-analytics"] a").nth(0)
review_count_text = await review_count_element.text_content()
review_count = int(review_count_text.replace(",", ""))
Python에서 “2,539”와 같은 문자열을 숫자 값으로 변환하는 간단한 논리를 확인하세요.
마지막으로 제품 가격 노드를 검사합니다:

[data-cy="price-recipe"] 내부의 .a-offscreen 요소에서 제품 가격을 수집합니다:
price_element_locator = product_element.locator("[data-cy="price-recipe"] .a-offscreen")
# 가격 요소가 제품 요소 내에 존재하는 경우
if await price_element_locator.count() > 0:
price = await price_element_locator.nth(0).text_content()
else:
price = None
모든 제품에 가격 요소가 있는 것은 아니므로, 값을 가져오기 전에 가격 요소의 개수를 확인하여 해당 시나리오를 처리해야 합니다.
스크립트가 작동하도록 Playwright 임포트 부분을 다음과 같이 업데이트하세요:
from playwright.async_api import async_playwright, TimeoutError
훌륭합니다! 아마존 제품 데이터 스크래핑 로직이 완성되었습니다.
이 글의 목적은 아마존 스크래핑 로직을 깊이 있게 다루는 것이 아님을 유의하세요. 더 자세한 안내는 Python으로 아마존 상품 데이터를 스크래핑하는 방법 가이드를 참고하세요.
6단계: 수집된 데이터 모으기
for 루프의 마지막 명령어로 스크래핑된 데이터로 제품 객체를 채웁니다:
product = {
"image": image,
"url": url,
"title": title,
"rating": rating,
"review_count": review_count,
"price": price
}
그런 다음 Apify 데이터셋에 푸시합니다:
await Actor.push_data(product)
push_data()는 스크랩된 데이터가 Apify에 등록되도록 보장하여 API를 통해 액세스하거나 다양한 지원 형식(예: CSV, JSON, Excel, JSONL 등)으로 내보낼 수 있게 합니다.
7단계: 모든 것을 통합하기
최종 Apify + Bright Data Actor main.py 파일은 다음과 같이 구성됩니다:
from apify import Actor
from playwright.async_api import async_playwright, TimeoutError
import re
async def main() -> None:
# Actor 컨텍스트 진입
async with Actor:
# Actor 입력값 가져오기 (미제공 시 기본값 사용)
actor_input = await Actor.get_input() or {}
# 입력 데이터에서 "keyword" 인수를 읽고, 기본값으로 "laptop"을 할당
keyword = actor_input.get("keyword")
# 대상 URL 생성
target_url = f"https://www.amazon.com/search/s?k={keyword}"
# Playwright 실행 및 새 브라우저 컨텍스트 열기
async with async_playwright() as playwright:
# Bright Data Scraping API 연결 문자열
SBR_WS_CDP = "wss://brd-customer-username-zone-scraping_browser:[email protected]:9222"
# Playwright가 Scraping Browser에 연결하고 새 컨텍스트를 열도록 구성
browser = await playwright.chromium.connect_over_cdp(SBR_WS_CDP, timeout=120000)
context = await browser.new_context()
try:
# 브라우저 컨텍스트에서 새 페이지를 열고 URL로 이동
page = await context.new_page()
await page.goto(target_url)
# 로케이터를 사용하여 모든 제품 요소 선택
product_elements = page.locator("[data-component-type="s-search-result"]")
# 모든 제품 요소를 반복하며 데이터 스크래핑
for product_element in await product_elements.all():
# 제품 스크래핑 로직
image_element = product_element.locator(".s-image").nth(0)
image = await image_element.get_attribute("src")
title_header_element = product_element.locator("[data-cy="title-recipe"]").nth(0)
link_element = title_header_element.locator("a").nth(0)
url_text = await link_element.get_attribute("href")
url = None if url_text == "javascript:void(0)" else "https://amazon.com" + url_text
title_element = title_header_element.locator("h2").nth(0)
title = await title_element.get_attribute("aria-label")
rating_element = product_element.locator("[data-cy="reviews-block"] a").nth(0)
rating_text = await rating_element.get_attribute("aria-label")
rating_match = re.search(r"(d+(.d+)?) out of 5 stars", rating_text)
if rating_match:
rating = rating_match.group(1)
else:
rating = None
review_count_element = product_element.locator("[data-component-type="s-client-side-analytics"] a").nth(0)
review_count_text = await review_count_element.text_content()
review_count = int(review_count_text.replace(",", ""))
price_element_locator = product_element.locator("[data-cy="price-recipe"] .a-offscreen")
# 가격 요소가 제품 요소에 존재하는 경우
if await price_element_locator.count() > 0:
price = await price_element_locator.nth(0).text_content()
else:
price = None
# 스크랩한 데이터로 새 사전 채우기
product = {
"image": image,
"url": url,
"title": title,
"rating": rating,
"review_count": review_count,
"price": price
}
# Actor 데이터셋에 추가
await Actor.push_data(product)
except Exception:
Actor.log.exception(f"{target_url}에서 데이터를 추출할 수 없습니다")
finally:
await page.close()
보시다시피, Bright Data의 Scraping Browser를 Apify의 “Playwright + Chrome” 템플릿에 통합하는 것은 간단하며 몇 줄의 코드만 필요합니다.
8단계: Apify에 배포하고 Actor 실행하기
로컬 액터를 Apify에 배포하려면 프로젝트 폴더에서 다음 명령어를 실행하세요:
apify push
아직 로그인하지 않았다면 Apify CLI를 통해 인증하라는 메시지가 표시됩니다.
배포가 완료되면 다음과 같은 질문이 표시됩니다:
✔ 브라우저에서 액터 세부 정보를 열겠습니까?
“Y” 또는 “yes”로 응답하면 Apify 콘솔의 액터 페이지로 이동됩니다:

원하시는 경우 다음 방법으로 동일한 페이지에 수동으로 접근할 수 있습니다:
- 브라우저에서 Apify에 로그인
- 콘솔로 이동
- “액터” 페이지 방문
“액터 시작” 버튼을 클릭하여 Amazon 스크레이퍼 액터를 실행하세요. 예상대로 키워드 입력을 요청받게 됩니다. “gaming chair”와 같은 키워드를 입력해 보세요:

이후 “저장 및 시작”을 눌러 액터를 실행하고 Amazon에서 “gaming chair” 제품 목록을 스크래핑하세요.
스크래핑이 완료되면 출력 섹션에서 수집된 데이터를 확인할 수 있습니다:

데이터를 내보내려면 “저장소” 탭으로 이동하여 “CSV” 옵션을 선택한 후 “다운로드” 버튼을 누르세요:

다운로드된 CSV 파일에는 다음과 같은 데이터가 포함됩니다:

자, 이제 끝! Bright Data의 스크래핑 브라우저와 Apify 연동은 완벽하게 작동합니다. 아마존이나 다른 사이트에서 스크래핑할 때 더 이상 CAPTCHA나 차단에 시달리지 않아도 됩니다.
[추가] Apify에서의 Bright Data 프록시 통합
Scraping Browser나 Web Unlocker 같은 스크래핑 제품을 Apify에서 직접 사용하는 것은 유용하고 간편합니다.
동시에, Apify에 이미 액터(Actor)가 있고 프록시로만 강화해야 하는 경우(예: IP 차단 방지)를 생각해 보세요. 저희 문서나 통합 가이드에 설명된 대로 Bright Data 프록시를 Apify 액터에 직접 통합할 수 있다는 점을 기억하세요.
결론
이 튜토리얼에서는 Playwright의 Scraping Browser와 연동되는 Apify 액터를 구축하여 Amazon에서 데이터를 프로그래밍 방식으로 수집하는 방법을 배웠습니다. 로컬 스크래핑 스크립트를 구축하고 Apify에 배포하는 모든 단계를 처음부터 차근차근 살펴보았습니다.
이제 Apify에서 클라우드 스크래핑을 수행할 때 Scraping Browser와 같은 전문 스크래핑 도구를 사용하는 이점을 이해하셨을 것입니다. 동일한 또는 유사한 절차를 통해 Apify는 Bright Data의 다른 모든 제품도 지원합니다:
- 프록시 서비스: 지역 제한을 우회하는 4가지 유형의 프록시( 1억 5천만 개 이상의 주거용 IP 포함)
- 웹 스크레이퍼 API: 100개 이상의 인기 도메인에서 최신 구조화된 웹 데이터를 추출하기 위한 전용 엔드포인트
- SERP API: SERP의 지속적인 잠금 해제 관리를 처리하고 한 페이지를 추출하는 API
지금 Bright Data에 가입하여 상호 운용 가능한 프록시 서비스와 스크래핑 제품을 무료로 테스트해 보세요!