
from bs4 import BeautifulSoup as BS
import csv
import pandas as pd
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
import requests
driver = webdriver.Chrome('executable_path=DRIVER_PATH, chrome_options=chrome_options')
name_list = []
server_list = []
damage_list = []
val_list = []
for i in range(1,6) :
url = "https://dundam.xyz/damage_ranking?page={}&type=7&job=%E7%9C%9E%20%EC%9B%A8%ED%8E%80%EB%A7%88%EC%8A%A4%ED%84%B0&baseJob=%EA%B7%80%EA%B2%80%EC%82%AC(%EB%82%A8)&weaponType=%EC%A0%84%EC%B2%B4&weaponDetail=%EC%A0%84%EC%B2%B4" #페이지 번호가 바뀌는 get방식의 홈페이지 구조
driver.get(url.format(i))
time.sleep(2)
name_list += [x.text for x in driver.find_elements(By.CLASS_NAME,'nik')] # 닉네임
server_list += [k.text for k in driver.find_elements(By.CLASS_NAME,'svname')] # 서버
damage_list += [j.text for j in driver.find_elements(By.CLASS_NAME,'damegen')] # 데미지
val_list += [y.text for y in driver.find_elements(By.CLASS_NAME, 'val')] # 명성
name_list = " ".join(name_list).split()
server_list = " ".join(server_list).split()
damage_list = " ".join(damage_list).split()
val_list = " ".join(val_list).split()
b = []
for value in pair.values() :
if value == '카인' :
b.append('cain')
elif value == '디레지에' :
b.append('diregie')
elif value == '시로코' :
b.append('siroco')
elif value == '프레이' :
b.append('prey')
elif value == '카시야스' :
b.append('casillas')
elif value == '힐더' :
b.append('hilder')
elif value == '안톤' :
b.append('anton')
elif value == '바칼' :
b.append('bakal')
pair = {key: value for key, value in zip(name_list,b)}
pair
{'문일성': 'cain',
'반요': 'anton',
'팡재': 'anton',
'Last아담': 'cain',
'이불도둑': 'casillas',
'키비치': 'cain',
'누우런새우': 'casillas',
'찰리.': 'hilder',
'검협': 'cain',
'갓참철': 'anton',
'고태경': 'anton',
'마우스': 'cain',
'검슨': 'casillas',
'말고탐': 'cain',
'던접까지n초': 'casillas',
'빨래줄': 'hilder',
'초류황': 'cain',
'딕맨': 'casillas',
'맹룡선풍참': 'cain',
'백나람': 'siroco',
'B.G': 'diregie',
'서정무': 'cain',
'세츠': 'cain',
'장야': 'cain',
'invincib!e': 'cain',
'맹룡선풍챰': 'bakal',
'제이': 'anton',
'폼만이': 'cain',
'태산베기': 'cain',
'무적': 'diregie',
'벨': 'bakal',
'껟': 'hilder',
'검기잇~!!': 'cain',
'윂빙': 'anton',
'천상.': 'bakal',
'로템검신': 'prey',
'밤': 'cain',
'고니로니웨펀': 'anton',
'살찐댕댕이': 'cain',
'새우김치만두': 'bakal',
'안디': 'anton',
'천상계향페브': 'cain',
'Asmus=': 'siroco',
'싸움법': 'cain',
'갈래신': 'casillas',
'차지마스터': 'prey',
'원이웨펀': 'casillas',
'파티': 'siroco',
'멸검신': 'hilder',
'하복어울림': 'anton'}
answer = []
APIKEY = '??????????????????????' #개인 고유 api key
with requests.Session() as session:
for characterId_encoded in a:
# URL 조합
url = "https://api.neople.co.kr/df/servers/all/characters?characterName={}&jobId=41f1cdc2ff58bb5fdc287be0db2a8df3&jobGrowId=37495b941da3b1661bc900e68ef3b2c6&apikey={}".format(characterId_encoded, APIKEY)
req = session.get(url)
# API 응답의 결과를 확인하여 유효한 캐릭터 ID가 있는 경우에만 answer 리스트에 추가
answer.append(req.json())
[{'rows': [{'serverId': 'cain',
'characterId': 'd417c0189ebc9fcf3936a99db993872a',
'characterName': '문일성',
'level': 110,
'jobId': '41f1cdc2ff58bb5fdc287be0db2a8df3',
'jobGrowId': '37495b941da3b1661bc900e68ef3b2c6',
'jobName': '귀검사(남)',
'jobGrowName': '眞 웨펀마스터'}]},
{'rows': [{'serverId': 'anton',
'characterId': 'a2020b9a7d048b6b07f6cd86fce5a5c4',
'characterName': '반요',
'level': 110,
'jobId': '41f1cdc2ff58bb5fdc287be0db2a8df3',
'jobGrowId': '37495b941da3b1661bc900e68ef3b2c6',
'jobName': '귀검사(남)',
'jobGrowName': '眞 웨펀마스터'}]},
{'rows': [{'serverId': 'anton',
'characterId': 'c1d4ab6953f79e32b36809ec278b29e5',
'characterName': '팡재',
'level': 110,
'jobId': '41f1cdc2ff58bb5fdc287be0db2a8df3',
'jobGrowId': '37495b941da3b1661bc900e68ef3b2c6',
'jobName': '귀검사(남)',
'jobGrowName': '眞 웨펀마스터'}]},