이 리포지토리는 Yandex Search Engine Results Pages(SERP)에서 데이터를 추출하기 위한 신뢰할 수 있는 두 가지 솔루션을 제공합니다:
- 무료 Yandex Scraper: 소규모로 Yandex 검색 결과를 스크레이핑하기 위한 기본 도구입니다
- 엔터프라이즈급 Yandex SERP API: 대용량, 실시간 데이터 추출을 위한 확장 가능하고 프로덕션 준비가 된 솔루션입니다(Bright Data's SERP Scraper API의 일부입니다)
- Free Yandex SERP Scraper
- Yandex SERP Scraper API
- Implementation Methods
- Yandex Search Query Parameters
- Practical Example
- Support & Resources
무료 스크레이퍼는 소규모로 Yandex SERP 데이터를 수집할 수 있는 간단한 방법을 제공합니다. 개인 프로젝트, 연구 또는 테스트 목적을 위해 제한된 데이터가 필요한 개발자에게 적합합니다.
- Python 3.9+
- 필수 패키지:
- 브라우저 자동화를 위한
playwright - HTML 파싱을 위한
BeautifulSoup
- 브라우저 자동화를 위한
pip install playwright beautifulsoup4
playwright installWeb스크레이핑이 처음이신가요? Beginner's Guide to Web Scraping with Python을 확인해 보시기 바랍니다.
- yandex-search-results-scraper.py를 여십시오
- 검색어 및 페이지 수 변수를 사용자 지정하십시오:
PAGES_PER_TERM = {
"ergonomic office chair": 2,
}- 스크립트를 실행하십시오
Yandex를 스크레이핑할 때 가장 큰 과제 중 하나는 공격적인 CAPTCHA 보호입니다:
Yandex는 자동화된 데이터 추출을 방지하기 위해 엄격하고 지속적으로 진화하는 안티봇 시스템을 사용합니다. CAPTCHA가 자주 트리거되면 빠르게 IP 차단으로 이어질 수 있어, 안정적이고 장시간 실행되는 스크레이퍼를 유지하기가 어렵습니다.
무료 스크레이퍼는 기본 작업을 처리하지만, 다음과 같은 중요한 제한 사항이 있습니다:
- IP 차단 위험이 높습니다
- 요청 볼륨이 제한됩니다
- CAPTCHA 중단이 지속적으로 발생합니다
- 프로덕션 환경에 적합하지 않습니다
확장 가능하고 안정적인 솔루션을 원하신다면, 아래에 설명된 Bright Data의 전용 API를 고려해 보시기 바랍니다. 👇
Yandex Search API는 Bright Data의 SERP Scraping API 제품군의 일부입니다. 업계 선도적인 프록시 인프라를 활용하여 단 한 번의 API 호출로 실시간 Yandex 검색 결과를 제공합니다.
- Global Accuracy: 전 세계 특정 지역에 맞춘 결과를 얻을 수 있습니다
- Pay-Per-Success: 성공한 요청에 대해서만 비용을 지불합니다
- Real-Time Data: 최신 검색 결과를 몇 초 내로 액세스할 수 있습니다
- Unlimited Scalability: 대용량 스크레이핑을 손쉽게 처리합니다
- Cost-Efficient: 비용이 많이 드는 인프라 필요성을 제거합니다
- Reliable Performance: 내장된 차단 방지 기술을 제공합니다
- 24/7 Expert Support: 필요 시 언제든지 기술 지원을 받을 수 있습니다
📌 Try Before You Buy: SERP API Live Demo에서 무료로 테스트해 보시기 바랍니다
- Bright Data account를 생성하십시오(신규 사용자는 $5 크레딧을 받습니다)
- API key를 생성하십시오
- 단계별 가이드를 따라 SERP API를 구성하십시오
API를 사용하는 가장 간단한 방법은 Bright Data의 API 엔드포인트로 직접 요청를 보내는 것입니다.
cURL Example:
curl https://api.brightdata.com/request \
-H "Content-Type: application/json" \
-H "Authorization: Bearer API_TOKEN" \
-d '{
"zone": "ZONE_NAME",
"url": "https://www.yandex.com/search/?text=apple+watch+series+10+review&lr=95&lang=en",
"format": "raw"
}'Python Example:
import requests
import json
url = "https://api.brightdata.com/request"
headers = {"Content-Type": "application/json", "Authorization": "Bearer API_TOKEN"}
payload = {
"zone": "ZONE_NAME",
"url": "https://www.yandex.com/search/?text=apple+watch+series+10+review&lr=95&lang=en",
"format": "raw",
}
response = requests.post(url, headers=headers, json=payload)
with open("yandex-scraper-api-result.html", "w", encoding="utf-8") as file:
file.write(response.text)
print("Response saved!")이 대체 방법은 검색 결과에 직접 액세스하기 위해 프록시 라우팅을 사용합니다.
cURL Example:
curl -i \
--proxy brd.superproxy.io:33335 \
--proxy-user brd-customer-<CUSTOMER_ID>-zone-<ZONE_NAME>:<ZONE_PASSWORD> \
-k \
"https://www.yandex.com/search/?text=apple+watch+series+10+review&lr=95&lang=en"Python Example:
import requests
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
host = "brd.superproxy.io"
port = 33335
username = "brd-customer-<customer_id>-zone-<zone_name>"
password = "<zone_password>"
proxy_url = f"http://{username}:{password}@{host}:{port}"
proxies = {"http": proxy_url, "https": proxy_url}
url = "https://www.yandex.com/search/?text=apple+watch+series+10+review&lr=95&lang=en"
response = requests.get(url, proxies=proxies, verify=False)
with open("yandex-scraper-api-result.html", "w", encoding="utf-8") as file:
file.write(response.text)
print("Response saved!")Note: 네이티브 프록시 접근 방식을 사용할 때에는, 프로덕션 사용을 위해 Bright Data의 SSL 인증서를 설치하는 것을 권장합니다. 자세한 내용은 SSL Certificate Guide에서 확인하십시오.
👉 full HTML output을 확인해 보시기 바랍니다
lr 및 lang과 같은 쿼리 매개변수는 다음 섹션에서 설명합니다.
이 매개변수는 검색 결과에 대해 타겟팅할 지리적 지역 또는 국가를 정의합니다.
| Region | Code |
|---|---|
| Moscow | 1 |
| Saint-Petersburg | 2 |
| USA | 84 |
| Canada | 95 |
| China | 134 |
예시 - "best wireless earbuds"가 USA에서 어떻게 랭크되는지 확인하십시오:
curl --proxy brd.superproxy.io:33335 \
--proxy-user brd-customer-<id>-zone-<zone>:<password> \
"https://www.yandex.com/search/?text=best+wireless+earbuds&lr=84"두 글자 언어 코드를 사용하여 언어 선호도를 설정합니다:
lang=en- 영어lang=es- 스페인어lang=fr- 프랑스어
예시 - 스페인어로 스포츠 뉴스를 가져옵니다:
https://www.yandex.com/search/?text=local+sports+news&lang=es표시할 결과 페이지를 제어합니다:
p=0- 첫 번째 페이지(기본값)p=1- 두 번째 페이지p=4- 다섯 번째 페이지
각 Yandex SERP 페이지는 일반적으로 10개의 결과를 반환합니다.
예시 - "nike running shoes"에 대해 3페이지(결과 21-30)를 스크레이핑하십시오:
https://www.yandex.com/search/?text=nike+running+shoes&p=2결과를 특정 기간으로 제한합니다:
within=77- 지난 24시간의 결과within=1- 지난 2주간의 결과within=[%pm]- 지난 한 달의 결과
예시 - 지난 24시간의 "iPhone 15 review" 결과를 가져옵니다:
https://www.yandex.com/search/?text=iphone+15+review&within=77시뮬레이션할 디바이스 유형을 지정합니다:
brd_mobile=0또는 생략 - 랜덤 데스크톱 user-agentbrd_mobile=1- 랜덤 모바일 user-agentbrd_mobile=ios또는brd_mobile=iphone- iPhone user-agentbrd_mobile=ipad또는brd_mobile=ios_tablet- iPad user-agentbrd_mobile=android- Android 폰 user-agentbrd_mobile=android_tablet- Android 태블릿 user-agent
예시 - 반응형 웹사이트 테스트를 검색하는 iPhone을 시뮬레이션합니다:
https://www.yandex.com/search/?text=responsive+website+testing&brd_mobile=ios시뮬레이션할 브라우저를 정의합니다:
- 기본값(생략) - 랜덤 브라우저
brd_browser=chrome- Google Chromebrd_browser=safari- Safaribrd_browser=firefox- Mozilla Firefox
예시 - Python 튜토리얼을 검색하는 Safari 브라우저를 시뮬레이션합니다:
https://www.yandex.com/search/?text=how+to+learn+python&brd_browser=safariNote:
brd_browser=firefox와brd_mobile=1은 호환되지 않으므로 함께 사용하지 마십시오.
포괄적인 타겟팅을 위해 여러 매개변수를 결합할 수 있습니다:
https://www.yandex.com/search/?text=organic+skincare+products
&lr=95
&lang=en
&p=2
&within=1
&brd_mobile=ios
&brd_browser=safari이 검색은 다음을 수행합니다:
- 캐나다 사용자 타겟팅(
lr=95) - 영어 결과 표시(
lang=en) - 두 번째 페이지 표시(
p=2) - 지난 2주로 제한(
within=1) - iPhone 사용자 시뮬레이션(
brd_mobile=ios) - Safari 브라우저 사용(
brd_browser=safari)
iOS 모바일 사용자가 보는 관점에서 캐나다 시장의 최근 유기농 제품 트렌드를 조사하려는 스킨케어 회사에 적합합니다.
- Documentation: SERP API Documentation
- Related APIs:
- Use Cases:
- Additional Reading: Best SERP APIs
- Contact Support: support@brightdata.com




