이 가이드에서는 다음을 배우게 됩니다:
- 알리바바 스크레이퍼란 무엇이며 어떻게 작동하는지
- 알리바바에서 자동으로 추출할 수 있는 데이터 유형
- 파이썬을 사용한 알리바바 스크래핑 스크립트 구축 방법
자, 시작해 보겠습니다!
알리바바 스크레이퍼란 무엇인가요?
알리바바 스크레이퍼는 알리바바 페이지에서 데이터를 자동으로 추출하도록 설계된웹 스크레이핑 봇입니다. 사용자의 브라우징 행동을 모방하여 알리바바 페이지를 탐색합니다. 페이지네이션과 같은 상호작용을 처리하고 제품 상세 정보, 가격, 회사 데이터와 같은 구조화된 정보를 수집합니다.
알리바바에서 스크래핑할 수 있는 데이터
알리바바는 다음과 같은 귀중한 정보의 보고입니다:
- 제품 상세 정보: 제품명, 설명, 이미지, 가격대, 판매자 정보 등
- 회사 정보: 회사명, 제조업체 세부 정보, 연락처 정보, 평점 등.
- 고객 피드백: 평점, 제품 리뷰 등
- 물류 및 재고 현황: 재고 상태, 최소 주문 수량, 배송 옵션 등.
- 카테고리 및 태그: 제품 카테고리, 관련 태그 또는 라벨.
스크래핑 방법을 확인하세요!
Python으로 Alibaba 스크래핑하기: 단계별 가이드
이 섹션에서는 단계별 튜토리얼을 통해 알리바바 스크레이퍼를 구축하는 방법을 배울 수 있습니다.
목표는 알리바바 “노트북” 페이지에서 데이터를 자동으로 추출하는 Python 스크립트를 만드는 과정을 안내하는 것입니다:

준비되셨나요? 아래 단계를 따라 해보세요!
1단계: 프로젝트 설정
먼저, 컴퓨터에 Python 3이 설치되어 있는지 확인하세요. 설치되어 있지 않다면 다운로드하여 설치 마법사를 따라 설치하세요.
이제 아래 명령어를 사용하여 프로젝트 디렉터리를 생성하세요:
mkdir alibaba-scraper
alibaba-scraper 폴더는 Python 알리바바 스크레이퍼를 저장할 위치입니다.
터미널에 입력하고, 그 안에 가상 환경을 생성하세요:
cd alibaba-scraper
python -m venv env
Visual Studio Code(Python 확장 기능 포함 ) 또는 PyCharm Community Edition과 같은 선호하는 Python IDE에서 프로젝트 폴더를 로드하세요.
프로젝트 디렉터리에 scraper.py 파일을 생성합니다. 현재 파일 구조는 다음과 같아야 합니다:

scraper.py는 현재 빈 Python 스크립트이지만, 곧 원하는 스크래핑 로직이 포함될 것입니다.
IDE 터미널에서 가상 환경을 활성화하세요. Linux 또는 macOS에서는 다음 명령어를 실행합니다:
./env/bin/activate
Windows에서는 다음과 같이 실행하세요:
env/Scripts/activate
대단합니다! 알리바바 웹 스크래핑을 위한 파이썬 환경이 준비되었습니다!
2단계: 스크래핑 라이브러리 선택
이제 알리바바가 동적 페이지인지 정적 페이지인지 확인해야 합니다. 이를 위해 브라우저의 시크릿 모드에서 알리바바 대상 페이지를 엽니다. 그런 다음 배경에서 마우스 오른쪽 버튼을 클릭하고 “검사”를 선택한 후 “네트워크” 탭으로 이동합니다. “Fetch/XHR”로 필터링하고 페이지를 다시 로드하세요:

개발자 도구(DevTools)의 이 섹션에서 페이지가 중요한 동적 요청을 하는지 관찰하세요. 이 경우 요청이 발생하므로 페이지가 동적임을 나타냅니다. 추가 분석 결과 페이지가 렌더링에 자바스크립트를 사용함을 알 수 있습니다.
즉, 알리바바를 효과적으로 스크래핑하려면 셀레늄(Selenium) 과 같은 브라우저 자동화 도구가 필요합니다. 자세한 내용은 셀레늄 웹 스크래핑 튜토리얼에서 확인하세요.
Selenium을 사용하면 웹 브라우저를 프로그래밍 방식으로 제어하여 사용자 상호작용을 시뮬레이션하고 JavaScript로 렌더링된 콘텐츠를 스크래핑할 수 있습니다. 이제 설치하고 시작해 보세요!
3단계: 셀레늄 설치 및 구성
활성화된 가상 환경에서 다음 명령어로 Selenium을 설치하세요:
pip install -U selenium
scraper.py 에 Selenium을 임포트하고 WebDriver 객체를 생성합니다:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
# Chrome 웹 드라이버 인스턴스 초기화
driver = webdriver.Chrome(service=Service())
위 코드는 Chrome 인스턴스를 제어하기 위한 WebDriver 인스턴스를 초기화합니다. 알리바바는 헤드리스 브라우저를 차단할 수 있는 일부 스크래핑 방지 조치를 시행하고 있음을 유의하십시오.
따라서 --headless 플래그를 설정해서는 안 됩니다. 대안으로 Playwright Stealth를 활용하는 방법을 고려해 보세요.
스크레이퍼의 마지막 줄에서 웹 드라이버를 반드시 종료하세요:
driver.quit()
훌륭합니다! 이제 알리바바 스크래핑을 시작할 준비가 완전히 되었습니다.
4단계: 대상 페이지 연결
Selenium WebDriver 객체가 제공하는 get() 메서드를 사용하여 원하는 페이지를 방문하세요:
url = "https://www.alibaba.com/trade/search?spm=a2700.product_home_newuser.home_new_user_first_screen_fy23_pc_search_bar.keydown__Enter&tab=all&SearchText=laptop"
driver.get(url)
이제 scraper.py 파일에는 다음 코드 줄이 포함됩니다:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
# Chrome 웹 드라이버 인스턴스 초기화
driver = webdriver.Chrome(service=Service())
# 대상 페이지의 URL
url = "https://www.alibaba.com/trade/search?spm=a2700.product_home_newuser.home_new_user_first_screen_fy23_pc_search_bar.keydown__Enter&tab=all&SearchText=laptop"
# 대상 페이지에 연결
driver.get(url)
# 스크래핑 로직...
# 브라우저 닫기
driver.quit()
마지막 줄에 디버깅 중단점을 설정하고 디버거로 스크립트를 실행하세요. 다음과 같은 메시지가 표시되어야 합니다:

“Chrome이 자동화 테스트 소프트웨어에 의해 제어되고 있습니다.”라는 메시지는 Selenium이 예상대로 Chrome을 제어하고 있음을 확인해 줍니다. 잘하셨습니다!
5단계: 제품 요소 선택
알리바바 제품 페이지에는 여러 제품이 포함되어 있으므로, 먼저 스크래핑된 데이터를 저장할 데이터 구조를 초기화해야 합니다. 배열이 이 목적에 완벽하게 적합합니다:
products = []
다음으로 페이지의 제품 HTML 요소를 검사하여 다음을 파악하세요:
- 어떻게 선택할지
- 어떤 데이터를 포함하는지
- 해당 데이터를 추출하는 방법

여기서 각 제품 요소가 .m-gallery-product-item-v2 노드임을 확인할 수 있습니다.
Selenium을 사용하여 모든 제품 요소를 선택합니다:
product_elements = driver.find_elements(By.CSS_SELECTOR, ".m-gallery-product-item-v2")
find_elements() 는 주어진 선택기 전략을 적용하여 페이지의 요소를 검색합니다. 위의 경우 선택기 전략은 CSS 선택기입니다.
By를 반드시 임포트하세요:
from selenium.webdriver.common.by import By
선택된 요소들을 반복 처리하며 각 요소에서 데이터를 추출할 준비를 합니다:
for product_element in product_elements:
# 각 제품 요소에서 데이터 스크래핑
훌륭합니다! 알리바바 스크래핑 성공에 한 걸음 더 가까워졌습니다.
6단계: 제품 요소 스크래핑
제품 요소의 HTML 구조를 이해하기 위해 검사합니다:

여기서 스크랩할 수 있는 항목을 확인할 수 있습니다:
.search-card-e-slider__img에서 제품 이미지.search–card-e-title에서 제품 설명.search-card-e-price-main에서 제품 가격 범위.search-card-e-company에서 회사/제조사
for 루프 내에서 해당 정보를 스크래핑 로직으로 변환합니다:
img_element = product_element.find_element(By.CSS_SELECTOR,".search-card-e-slider__img")
img = img_element.get_attribute("src")
description_element = product_element.find_element(By.CSS_SELECTOR,".search-card-e-title")
description = description_element.text.strip()
price_element = product_element.find_element(By.CSS_SELECTOR,".search-card-e-price-main")
price = price_element.text.strip()
company_element = product_element.find_element(By.CSS_SELECTOR,".search-card-e-company")
company = company_element.text.strip()
find_element()는 지정된 CSS 선택자와 일치하는 유일한 요소를 가져옵니다. 그런 다음 text 속성을 사용하여 해당 텍스트 콘텐츠에 접근할 수 있습니다. 노드의 HTML 속성 값을 얻으려면 get_attribute() 메서드를 사용하세요.
스크랩한 데이터를 사용하여 제품 사전(dictionary)을 채우고 products 배열에 추가합니다:
product = {
"img": img,
"description": description,
"price": price,
"company": company
}
products.append(product)
훌륭합니다! 알리바바 데이터 추출 로직이 완성되었습니다.
7단계: 스크랩한 데이터를 CSV로 내보내기
현재 스크랩된 데이터는 products 배열에 저장되어 있습니다. 다른 사람이 접근하고 공유할 수 있도록 CSV 파일과 같은 사람이 읽을 수 있는 형식으로 내보내야 합니다.
다음 코드를 활용하여 추출된 데이터로 CSV 파일을 생성하고 채우세요:
csv_file_name = "products.csv"
with open(csv_file_name, mode="w", newline="", encoding="utf-8") as csv_file:
writer = csv.DictWriter(csv_file, fieldnames=["image", "description", "price", "company"])
# 헤더 행 작성
writer.writeheader()
# 제품 데이터 행 작성
for product in products:
writer.writerow(product)
Python 표준 라이브러리에서 csv를 반드시 임포트하세요:
import csv
와! 이제 알리바바 스크래퍼가 완성되었습니다.
8단계: 모든 것을 통합하기
아래는 완성된 알리바바 스크래핑 스크립트 코드입니다:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import csv
# Chrome 웹 드라이버 인스턴스 초기화
driver = webdriver.Chrome(service=Service())
# 대상 페이지의 URL
url = "https://www.alibaba.com/trade/search?spm=a2700.product_home_newuser.home_new_user_first_screen_fy23_pc_search_bar.keydown__Enter&tab=all&SearchText=laptop"
# 대상 페이지에 연결
driver.get(url)
# 스크랩된 데이터 저장 위치
products = []
# 페이지의 모든 제품 요소 선택
product_elements = driver.find_elements(By.CSS_SELECTOR, ".m-gallery-product-item-v2")
# 제품 노드 반복 처리 및 데이터 스크랩
for product_element in product_elements:
# 제품 상세 정보 추출
img_element = product_element.find_element(By.CSS_SELECTOR,".search-card-e-slider__img")
img = img_element.get_attribute("src")
description_element = product_element.find_element(By.CSS_SELECTOR,".search-card-e-title")
description = description_element.text.strip()
price_element = product_element.find_element(By.CSS_SELECTOR,".search-card-e-price-main")
price = price_element.text.strip()
company_element = product_element.find_element(By.CSS_SELECTOR,".search-card-e-company")
company = company_element.text.strip()
# 수집된 데이터로 제품 사전 생성
product = {
"img": img,
"description": description,
"price": price,
"company": company
}
# 제품 데이터를 배열에 추가
products.append(product)
# 출력 CSV 파일 이름 정의
csv_file_name = "products.csv"
# 쓰기 모드로 파일 열고 CSV 라이터 생성
with open(csv_file_name, mode="w", newline="", encoding="utf-8") as csv_file:
writer = csv.DictWriter(csv_file, fieldnames=["img", "description", "price", "company"])
# 헤더 행 작성
writer.writeheader()
# 제품 데이터 행 작성
for product in products:
writer.writerow(product)
# 브라우저 종료
driver.quit()
60줄이 조금 넘는 코드로 Python으로 알리바바 스크레이퍼를 만들었습니다!
다음 명령어로 스크레이퍼를 실행하세요:
python3 script.py
Windows에서는:
python script.py
프로젝트 폴더에 products.csv 파일이 생성됩니다. 파일을 열면 다음과 같은 내용을 확인할 수 있습니다:

자, 이제 완료되었습니다! 다음 단계는? 페이지 분할 처리, 스크립트 배포, 자동 실행 설정, 그리고 최적의 성능을 위해 추가 개선 작업입니다!
결론
이 단계별 튜토리얼을 통해 알리바바 스크레이퍼가 무엇이며 어떤 유형의 데이터를 추출할 수 있는지 배웠습니다. 또한 100줄 미만의 코드로 알리바바 제품을 스크레이핑하는 Python 스크립트를 구축하는 방법도 살펴보았습니다.
문제는 알리바바 스크래핑에는 어려움이 따릅니다. 플랫폼은 엄격한 봇 방지 조치를 시행하고 페이지네이션 같은 상호작용을 채택하여 스크래핑 과정을 더 복잡하게 만듭니다. 확장 가능하고 효과적인 알리바바 스크래핑 솔루션을 구축하는 것은 상당히 까다로울 수 있습니다.
알리바바 스크레이퍼 API로 이러한 어려움을 잊으세요! 이 전용 솔루션을 통해 간단한 API 호출만으로 대상 사이트의 데이터를 가져올 수 있으며, 차단될 위험이 없습니다.
웹 스크래핑이 선호하는 방법이 아니더라도 제품 데이터에 관심이 있다면, 바로 사용 가능한 알리바바 데이터셋을 살펴보세요!
스크레이퍼 API를 사용해 보거나 데이터셋을 살펴보려면 지금 바로 Bright Data 무료 계정을 생성하세요.