개발
Python 크롤링을 이용하여 메이플스토리 랭킹 이미지 수집
개발자-H
2021. 1. 5. 07:44
1. 크롤링이란?
크롤링이란 웹 페이지에 존재하는 다양한 정보를 접근하여 의미있는 데이터를 추출하는 작업이다.
웹 페이지에는 다양한 리소스들이 존재한다.
- 텍스트 (주식 정보)
- 이미지 (일러스트, 그림)
- 동영상
Python에는 아래의 라이브러리를 활용하여 웹 페이지의 리소스를 접근 할수 있다.
- requests (웹 페이지 요청)
- BeautifulSoup (웹 페이지 정보 접근)
오늘의 타켓 페이지는 메이플 스토리 랭킹 페이지이다.
(maplestory.nexon.com/Ranking/World/Total?page=1)

2. 환경 설정
아래의 명령어로 의존 라이브러리를 다운받는다.
pip install requests
pip install bs4
3. 크롤 코드
랭킹 1 페이지에 있는 10개의 케릭터 사진을 다운로드 하여 저장한다.
import requests
from bs4 import BeautifulSoup
# 랭킹 페이지 기본 주소
BASE_URL = "https://maplestory.nexon.com/Ranking/World/Total?page=1"
def rank_page_crawl():
html = requests.get(BASE_URL).text
crawl = BeautifulSoup(html, "html.parser")
# 랭킹 페이지 중 케릭터 정보 테이블 추출
f = crawl.select(".rank_table_wrap .rank_table tbody tr")
index = 0
for item in f:
# 테이블 Row 에서 필요 정보 추출
info = item.select(".char_img > img")[0]
img_src = info['src']
img = requests.get(img_src).content
# 이미지 저장
with open(f'./img/{index}.png', 'wb') as f:
f.write(img)
index += 1
rank_page_crawl()