import os
import re
import requests
from bs4 import BeautifulSoup
from urllib.parse import urljoin

# 저장할 디렉토리 경로
directory = "C:/app/pokemon9"

# 디렉토리가 존재하지 않을 경우 생성합니다.
if not os.path.exists(directory):
os.makedirs(directory)

# 포켓몬 번역 데이터를 포함한 딕셔너리 생성
translation_data = {
"Sprigatito": "나오하",
"Floragato": "나로테",
"Meowscarada": "마스카나",
"Fuecoco": "뜨아거",
"Crocalor": "악뜨거",
"Skeledirge": "라우드본",
"Quaxly": "꾸왁스",
"Quaxwell": "아꾸왁",
"Quaquaval": "웨이니발",
"Lechonk": "맛보돈",
"Oinkologne": "퍼퓨돈",
"Tarountula": "타랜툴라",
"Spidops": "트래피더",
"Nymble": "콩알뚜기",
"Lokix": "엑스레그",
"Pawmi": "빠모",
"Pawmo": "빠모트",
"Pawmot": "빠르모트",
"Tandemaus": "두리쥐",
"Maushold": "파밀리쥐",
"Fidough": "쫀도기",
"Dachsbun": "바우첼",
"Smoliv": "미니브",
"Dolliv": "올리뇨",
"Arboliva": "올리르바",
"Squawkabilly": "시비꼬",
"Nacli": "베베솔트",
"Naclstack": "스태솔트",
"Garganacl": "콜로솔트",
"Charcadet": "카르본",
"Armarouge": "카디나르마",
"Ceruledge": "파라블레이즈",
"Tadbulb": "빈나두",
"Bellibolt": "찌리배리",
"Wattrel": "찌리비",
"Kilowattrel": "찌리비크",
"Maschiff": "오라티프",
"Mabosstiff": "마피티프",
"Shroodle": "땃쭈르",
"Grafaiai": "태깅구르",
"Bramblin": "그푸리",
"Brambleghast": "공푸리",
"Toedscool": "들눈해",
"Toedscruel": "육파리",
"Klawf": "절벼게",
"Capsakid": "캡싸이",
"Scovillain": "스코빌런",
"Rellor": "구르데",
"Rabsca": "베라카스",
"Flittle": "하느라기",
"Espathra": "클레스퍼트라",
"Tinkatink": "어리짱",
"Tinkatuff": "벼리짱",
"Tinkaton": "두드리짱",
"Wiglett": "바다그다",
"Wugtrio": "바닥트리오",
"Bombirdier": "떨구새",
"Finizen": "맨돌핀",
"Palafin": "돌핀맨",
"Varoom": "부르롱",
"Revavroom": "우락고래",
"Cyclizar": "가비루사",
"Orthworm": "어써러셔",
"Glimmet": "싸리용",
"Glimmora": "초롱순",
"Greavard": "키키링",
"Houndstone": "노고고치",
"Flamigo": "불꽃새",
"Cetoddle": "물뚜껑",
"Cetitan": "물거인",
"Veluza": "바다소라",
"Dondozo": "물마리",
"Tatsugiri": "땅가리기",
"Annihilape": "저승갓숭",
"Clodsire": "토산염",
"Farigiraf": "장착노래",
"Dudunsparce": "두던스파",
"Kingambit": "킹엠비트",
"Great Tusk": "위대한엄니",
"Scream Tail": "우렁찬꼬리",
"Brute Bonnet": "사나운버섯",
"Flutter Mane": "날개치는머리",
"Slither Wing": "땅위를 기는날개",
"Sandy Shocks": "모래전격",
"Iron Treads": "무쇠바퀴",
"Iron Bundle": "무쇠보따리",
"Iron Hands": "무쇠손",
"Iron Jugulis": "무쇠목걸이",
"Iron Moth": "무쇠나방",
"Iron Thorns": "무쇠가시",
"Frigibax": "서리고드",
"Arctibax": "북극고드",
"Baxcalibur": "고드호른",
"Gimmighoul": "모으령",
"Gholdengo": "고스트레고",
"Wo-Chien": "파이찬",
"Chien-Pao": "얼어바",
"Ting-Lu": "춤추네",
"Chi-Yu": "기랑",
"Roaring Moon": "울부짖는 달",
"Iron Valiant": "무쇠용갑",
"Koraidon": "코라이돈",
"Miraidon": "미라이돈",
"Walking Wake": "걷는 파도",
"Iron Leaves": "무쇠잎새"
}


# 웹 페이지에 GET 요청을 보내고 응답을 받아옵니다.
url = "https://bulbapedia.bulbagarden.net/wiki/List_of_Pok%C3%A9mon_by_National_Pok%C3%A9dex_number"
response = requests.get(url)

# 응답의 텍스트를 BeautifulSoup 객체로 변환합니다.
soup = BeautifulSoup(response.text, 'html.parser')

# 테이블을 찾습니다.
tables = soup.find_all('table', class_='roundy')

# 3세대 포켓몬 데이터 추출
table_3rd_gen = tables[8]
for row in table_3rd_gen.find_all('tr', style=lambda style: style and 'background:#FFF' in style):
cells = row.find_all('td')
if len(cells) >= 4:
number = cells[0].text.strip()
english_name = cells[2].find('a').text.strip()
image_cell = cells[1]
image_url = image_cell.find('img')['src'] if image_cell.find('img') else None

if image_url and number:
# 이미지 URL에 스키마를 추가합니다.
image_url = urljoin(url, image_url)
# 이미지 URL에서 "70px" 부분을 "500px"로 변경합니다.
image_url = image_url.replace("70px", "500px")

# 번호 포맷 변경: #0252 -> (No.252)
number = re.sub(r'#0*(\d+)', r'(No.\1)', number)

# 포켓몬 이름을 한글로 번역
korean_name = translation_data.get(english_name, english_name)

# 파일명 포맷 변경: Treecko (No.252).png -> 나무지기 (No.252).png
file_name = f"{korean_name} {number}.png"
file_path = os.path.join(directory, file_name)

# 이미지 다운로드
response = requests.get(image_url)

# 이미지 저장
with open(file_path, 'wb') as f:
f.write(response.content)

print(f"번호: {number}")
print(f"영어 이름: {english_name}")
print(f"한글 이름: {korean_name}")
print(f"이미지 다운로드 완료: {file_path}")
print("---------------")

포켓몬스터 데이터를 저장하였다. 

파일명 포맷 변경하였고, 

 

포켓몬 이름을 한글로 변환하였다. 

위는 9세대 포켓몬을 크롤링하여 저장하는 로직이다.

 

번역데이터는 노가다가 아니라 chatgpt를 이용하여 억지로 만들었다.

 

chatgpt사용이 날이 갈수록 고도화되는 중이랄까..

 

chatgpt는 2021년 9월까지 학습해서 8세대 9세대 포켓몬의 이름은 몰랐다..

 

나무위키 정보랑 해당 url 정보를 조합해서 대화로 어떻게든 데이터를 번역시켰다.

 

귀여운 9세대 포켓몬

 

 

1세대부터 8세대까지 포켓몬도 

 

table_3rd_gen = tables[8]

이 값을 수정하면 출력할 수 있다.

1세대는 tables[0]이다.

 

영어랑 한글 번역은 chatgpt한테 문의하면 나온다..

 

 

그렇게 탄생한 ! 

이상형 월드컵 주소는 아래와 같다..

 

https://supercup.co.kr/matchstat?type=eCCb8BlKtPO2 

 

아이돌 움짤, 여자 IDOL 이상형 월드컵, 이상형 월드컵 게임, 이상형 월드컵 통계 SUPERCUP, 이상형만

공식적인 이상형 월드컵 사이트 - SUPERCUP입니다. 이상형 월드컵을 만들어서 즐겨보세요

supercup.co.kr

 

+ Recent posts