# 개요
POE2에 사용되는 스킬젬과 보조 스킬젬을 한글과 영문 이름으로 검색하여 자동 완성으로 표시합니다. 유튜브나 기타 다른 영문 사이트의 가이드를 참조할 때 POE2DB 사이트를 검색하는것보다 훨씬 빠르게 검색이 가능합니다.
부분 문자열을 통해 한글/영문 입력 시 스킬젬 리스트를 검색하는 싱글 검색과 하나의 문자열 안에 여러개의 스킬젬이 포함되어 있을 때 이를 모두 출력하는 멀티 검색으로 나누어져 있습니다.
현재 스킬젬 DB 기준은 2025월 3월 14일 입니다.
# 싱글 검색
# 싱글 검색 사용 방법
- 스킬젬의 부분 문자열 또는 전체 문자열을 입력하세요
- 일치하는 모든 스킬젬 / 보조 스킬젬을 검색합니다.
- 검색 결과 클릭 시 상세 페이지 화면으로 이동합니다.
▣ “Arcane” 입력 시 아래와 같이 검색됩니다.
- Arcane Surge / 비전 쇄도
- Arcane Tempo / 비전의 속도
# 멀티 검색
# 멀티 검색 사용 방법
- 보조젬을 포함한 스킬젬 리스트가 포함된 문자열을 입력하세요
- 정확한 스킬젬 이름을 입력해야 검색됩니다.(공백은 무시)
- 검색 결과 클릭 시 상세 페이지 화면으로 이동합니다.
▣ “Contagion - Unleash - Magnified Effect” 입력 시 아래와 같이 검색됩니다.
- Contagion: 전염
- Unleash: 촉발
- Magnified Effect: 강해진 효과
▣ “전염 - 촉발 - 강해진 효과” 입력 시 아래와 같이 검색됩니다.
- Contagion: 전염
- Unleash: 촉발
- Magnified Effect: 강해진 효과
# 코드
아래 코드는 python을 통해 poe2db 사이트의 스킬젬 그리고 보조 스킬젬을 가져오는 코드 입니다. json 형태로 한글과 영문으로 구분하여 출력하고 파일로 저장하는 코드입니다.
import requests
from bs4 import BeautifulSoup
import json
# 대상 URL
skill_url = "https://poe2db.tw/kr/Skill_Gems"
support_skill_url = "https://poe2db.tw/kr/Support_Gems"
# 웹 페이지 요청 및 HTML 파싱
headers = {"User-Agent": "Mozilla/5.0"}
def get_list_from_poe2db_url(url):
response = requests.get(url, headers=headers)
if response.status_code == 200:
soup = BeautifulSoup(response.text, "html.parser")
# class 속성이 'gem_blue'인 <a> 태그 찾기
skill_gems = soup.find_all("a", class_=["gem_blue", "gem_red", "gem_green","gemitem"])
gem_list = []
for gem in skill_gems:
# <a> 태그 내부에 <img> 태그가 없는 것만 필터링
if not gem.find("img"):
skill_name_kor = gem.text.strip()
skill_name_eng = gem.get("href", "No link").replace('/kr/','')
skill_name_eng = skill_name_eng.replace('_'," ")
link = 'https://poe2db.tw/' + gem.get("href", "No link")
gem_data = {
"Name-KR": skill_name_kor,
"Name-EN": skill_name_eng,
"Link": link
}
gem_list.append(gem_data)
return gem_list
if __name__ == "__main__":
skill_gems = get_list_from_poe2db_url(skill_url)
support_gems = get_list_from_poe2db_url(support_skill_url)
result = {
"SkillGems": skill_gems,
"SkillGems": support_gems,
}
# JSON 출력
print(json.dumps(result, indent=4, ensure_ascii=False))
# JSON 파일로 저장
with open("gems.json", "w", encoding="utf-8") as json_file:
json.dump(result, json_file, indent=4, ensure_ascii=False)
Leave a comment