728x90
반응형

안녕하세요!

오늘은 붕괴 스타레일 2.1 업데이트 모든 캐릭터 유물 및 차원 장식구 세팅 포스팅을 진행하겠습니다.

 

캐릭터의 유물, 차원 장신구 세팅은 엑셀 내 저장되어 있으며, 조회를 통해서 쉽게 보실 수 있습니다!

엑셀 파일을 조회하는 방법은 아래 포스팅을 참고해주세요:)

https://yhj9855.com/entry/%EB%B6%95%EA%B4%B4-%EC%8A%A4%ED%83%80%EB%A0%88%EC%9D%BC-%EC%9C%A0%EB%AC%BC-%EC%B0%A8%EC%9B%90-%EC%9E%A5%EC%8B%A0%EA%B5%AC-%EC%84%B8%ED%8C%85-%EC%97%91%EC%85%80-%ED%8C%8C%EC%9D%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95

 

[붕괴 스타레일] 유물, 차원 장신구 세팅 엑셀 파일 사용하는 방법

안녕하세요. 오늘은 제가 만든 스타레일 유물, 차원 장신구 세팅이 담긴 엑셀 파일을 사용하는 방법에 대해서 포스팅 하겠습니다. 스타레일도 원신과 비슷하게 유물과 차원 장신구를 세팅해주

yhj9855.com

 

728x90

2.1 업데이트 기준으로 어벤츄린까지 캐릭터가 존재합니다.

유물 및 차원 장신구 세팅의 정보는 나무위키를 기반으로 하고 있습니다!

 

이번에 아케론과 어벤츄린 신규 캐릭터가 출시되었습니다!

아케론은 이전 캐릭터들과는 완전 다른 필살기를 가지고 있는데, 연출이 일단 너무 멋있어서 좋았습니다...

원신의 라이덴을 어느 정도 모티브 삼고 있기 때문에 확실히 비슷한 느낌이 들어서 좋은 느낌입니다!

아주 강력한 메인 딜러이기 때문에 파티가 조금 경직되는 감이 있어도 앞으로 자주 쓸 것 같네요.

 

아케론은 이번에 새로 나온 사수에 잠수한 선구자 4세트+이즈모 현세와 타카마 신국 2세트가 가장 베스트입니다.

사실상 사수에 잠수한 선구자는 아케론 쓰라고 나온 유물 느낌이 강해서 완전 찰떡인 친구입니다.

주옵션은 치명타 확률, 공격력 백분율 혹은 번개 속성 피해 증가로 맞춰주시면 됩니다.

 

 

어벤츄린은 일단 방어력 4000을 맞춰야 제대로 사용할 수 있기 때문에 방어력 4000을 맞추는데 힘들었네요ㅠㅠ

그래도 실드량이 진짜 어마무시해서 키워준 보람은 있는 캐릭터입니다. (게파드 안녕..)

 

어벤츄린은 정토 교황의 팔라딘 4세트+회전을 멈춘 살소토 2세트가 가장 베스트인 것 같아요!

아무래도 방어력 4000을 올려줘야 하기 때문에 거의 주옵션은 방어력 백분율로 맞추시면 됩니다.

 

자세한 유물 설명은 엑셀 파일에 있으니 사용해보시길 추천드립니다!

궁금한 부분이 있으신 분들은 댓글로 남겨주시면, 답변 드리도록 하겠습니다.

엑셀 파일은 아래 파일을 다운 받아주세요!

스타레일(2.1업데이트 기준).xlsx
0.09MB

 

★읽어주셔서 감사합니다★

728x90
반응형
728x90
반응형

안녕하세요!

오늘은 프로그래머스 SQL 고득점 Kit 중 JOIN 분야의 '있었는데요 없었습니다' 문제 리뷰를 진행하겠습니다.

 

문제는 아래 링크에서 확인해주시면 됩니다.

https://school.programmers.co.kr/learn/courses/30/lessons/59043

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

  • 문제 설명

 

  • 문제

 

  • 예시

 

  • 문제를 파악하여 쿼리 생각하기

예시에서 볼 수 있듯이, 저희가 문제에서 SELECT 해야하는 부분은 동물의

  1. ID: A.ANIMAL_ID
  2. 이름: A.NAME
    → A는 ANIMAL_INS 테이블, B는 ANIMAL_OUTS 테이블을 의미합니다.
    → ID와 이름은 각 테이블에서 같이 포함되어 있기 때문에 어느 테이블에 존재하는지 꼭 명시를 해야합니다.
    → 여기서는 A, B 어느 테이블에 있는 값을 가지고 와도 동일한 값을 SELECT 합니다.

총 2개인 것을 확인할 수 있습니다.

 

다음으로 두 개의 테이블을 JOIN 해야하는 부분은

  1. ANIMAL_INS 테이블과 ANIMAL_OUTS 테이블을 동시에 만족: JOIN ANIMAL_OUTS B
    → 두 테이블을 동시에 만족해야 하기 때문에 내부 조인을 사용하는데, JOIN 혹은 INNER JOIN 으로 표기하시면 됩니다.
    → ANIMAL_OUTS을 FROM에 두고, ANIMAL_INS 테이블로 JOIN을 해도 상관 없습니다.
  2. 두 테이블에서 값이 동일한 컬럼이 기준: ON A.ANIMAL_ID=B.ANIMAL_ID
    → 두 테이블에서 동일한 값이 여러 개 있으나, 문제에서 ANIMAL_OUTS의 ANIMAL_ID는 ANIMAL_INS의 ANIMAL_ID의 외래 키라고 하였기 때문에 ANIMAL_ID로 JOIN하는 것이 좋습니다.
    → NAME, ANIMAL_TYPE 과 같은 값으로 JOIN을 할 경우, 테이블 내에 중복 값으로 인해 원하는 대로 JOIN이 되지 않을 가능성이 높습니다.

위와 같은 것을 확인할 수 있습니다.

 

다음으로 저희가 WHERE 조건으로 확인해야 하는 부분은

  1. 보호 시작일보다 입양일이 더 빠른 동물: A.DATETIME > B.DATETIME

총 1개인 것을 확인할 수 있습니다.

 

마지막으로 저희가 문제에서 확인해야 하는 부분은

  1. 결과는 보호 시작일이 빠른 순으로 조회: ORDER BY A.DATETIME

총 1개인 것을 확인할 수 있습니다.

 

 

  • 쿼리 완성하기

이제 위에서 생각한 쿼리를 SQL 실행순서에 맞게 배치해주시면 됩니다.

그렇게 완성된 쿼리는 아래와 같습니다.

SELECT 
    A.ANIMAL_ID, A.NAME
FROM 
    ANIMAL_INS A
JOIN 
    ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE 
    A.DATETIME > B.DATETIME
ORDER BY 
    A.DATETIME

 

궁금한 부분이 있으신 분들은 댓글로 남겨주시면, 답변 드리도록 하겠습니다.

★읽어주셔서 감사합니다★

728x90
반응형
728x90
반응형

안녕하세요! 오늘은 원신 나무위키에 플레이어블 캐릭터성유물 카테고리의 글을 크롤링하는 코드에 대해 포스팅 진행하겠습니다.

해당 포스팅에서는 전체 코드와 결과물 이미지만 첨부합니다.

크롤링의 자세한 과정은 추후에 포스팅 진행하도록 하겠습니다.

 

해당 크롤링은 원신 각 캐릭터의 성유물 추천 옵션과 세트를 빠르게 파악하기 위한 데이터 수집을 목적으로 하고 있습니다!

나무위키에서 수집할 정보는 아래와 같습니다.

※ 사진 속 정보는 나히다를 예시로 한 것입니다.

1. 캐릭터의 이름, 속성, 무기

2. 권장 성유물 옵션

3. 추천 성유물 세트 및 설명

4. 성유물 이름, 세트 효과, 획득처

 

  • 크롤링 진행 방식

크롤링은 총 3개의 코드로 진행을 합니다.

 

  • 첫 번째 코드
  1. 원신 캐릭터의 상세 정보가 담긴 링크를 전부 긁어옵니다.
  2. 캐릭터의 이름과 링크만 저장하여 하나의 엑셀 파일로 저장합니다.
  • 두 번째 코드
  1. 첫 번째 코드에서 저장한 엑셀 파일에서 각 캐릭터의 상세 정보 링크를 가져옵니다.
  2. 캐릭터의 속성, 무기, 권장 성유물 옵션, 추천 성유물 세트 및 상세 설명의 내용을 가지고 옵니다.
  3. 캐릭터의 이름, 속성, 무기 권장 성유물 옵션을 저장하여 하나의 엑셀 파일로 저장합니다.
  4. 캐릭터의 이름, 추천 성유물 세트, 상세 설명을 저장하여 하나의 엑셀 파일로 저장합니다.

엑셀 파일을 두 개로 나눈 이유는 이후에 원신 캐릭터 성유물을 조회하는 엑셀 파일을 쉽게 만들기 위해서 입니다!

  • 세번째 코드
  1. 성유물 세트 이름, 2세트, 4세트, 획득처의 내용을 가지고 옵니다.
  2. 획득처에서 비경의 이름을 분리합니다.
  3. 성유물 세트 이름, 2세트, 4세트, 획득처, 비경의 이름을 저장하여 하나의 엑셀 파일로 저장합니다.

비경 이름을 분리한 이유는 이후 원신 캐릭터 성유물을 조회하는 엑셀 파일을 쉽게 만들기 위해서 입니다!

 

[실제 코드 및 결과물]

  • 첫 번째 코드
import pandas as pd
from selenium import webdriver
import time
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as E
from openpyxl import *

# 원신/캐릭터 나무위키 링크
link = 'https://namu.wiki/w/%EC%9B%90%EC%8B%A0/%EC%BA%90%EB%A6%AD%ED%84%B0'

# 나무위키는 BeautifulSoup이 먹히지 않기 때문에 동적 크롤링으로 진행
driver = webdriver.Chrome('chromedriver.exe')
driver.get(link)
time.sleep(3)

# '원소별' 버튼 클릭
button = list(driver.find_elements(By.CLASS_NAME, "_3xTXXXtF"))
button[1].click()
time.sleep(3)

Character = pd.DataFrame({'캐릭터 이름' : [], '링크' : []})

character_info = driver.find_elements(By.CLASS_NAME, "s3zppxXT")

for i in range(len(character_info)) :
    character = character_info[i]
    # 캐릭터 이름만 담기 위해서 데이터를 정제하는 부분
    # 캐릭터의 소개가 끝나는 부분
    if character.text == '취소선' :
        break
    # 주인공 캐릭터인 아이테르와 루미네는 데이터 수집에서 제외
    # 캐릭터 이름이 아닌데, 들어온 정보는 모두 제외
    if character.text == '' or  '원신' in character.text or '아이테르' in character.text or character.text in ['불', '물', '바람', '번개', '풀', '얼음', '바위'] :
        pass
    else :
    	# 캐릭터의 이름
        name = character.text
        # 캐릭터의 이름이 길 경우, 엔터로 구분이 되어있기 때문에 이를 띄어쓰기로 변경
        if '\n' in name :
            name = name.replace('\n', ' ')
        Char = [name, str(character.get_attribute('href'))]
        Character.loc[i] = Char

with pd.ExcelWriter('genshin_link.xlsx') as writer :
    Character.to_excel(writer, sheet_name='링크', index=False)

 

 

  • 첫 번째 코드 결과물

 

  • 두 번째 코드
import pandas as pd
from selenium import webdriver
import time
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as E
from openpyxl import *

# 캐릭터의 이름과 상세정보 링크가 담긴 엑셀 파일
link = pd.read_excel('genshin_link.xlsx')
Main_link = list(link['링크'])
Character = list(link['캐릭터 이름'])

Information = pd.DataFrame({'캐릭터 이름' : [], '무기' : [], '시간의 모래' : [], '공간의 성배' : [], '이성의 왕관' : [], '부옵션' : []})
Relic_Information = pd.DataFrame({'캐릭터 이름' : [], '성유물' : [], '평가': []})

driver = webdriver.Chrome('chromedriver.exe')

# 엑셀 전체 인덱스를 의미
# 저장할 엑셀이 두 개이기 때문에 인덱스도 두 개가 필요
total_index = 0
relic_index = 0

# 특정 캐릭터의 상세정보에서 오류가 발생할 경우을 대비
try :
    for k in range(len(Main_link)) :
        driver.get(Main_link[k])
        time.sleep(3)
        
        # 캐릭터의 무기 수집 과정
        attack = driver.find_elements(By.CLASS_NAME, 'cIflhYhI')
        for i in range(len(attack)) :
            if '무기' == attack[i].text :
                attack_index = i+1
                break
        weapon = attack[attack_index].text
        
        # 캐릭터의 성유물 수집 과정
        info = driver.find_elements(By.CLASS_NAME, 'D7SMSdcV')
        for i in range(len(info)) :
        	# 권장 성유물 옵션을 파악하기 위해 위치를 저장
            if '권장 성유물' in info[i].text :
                index = i
                break
        # 권성유물의 정보가 담긴 공간
        sung = info[index]
        
        # 권장 성유물 옵션 수집 과정
        options = sung.find_elements(By.CLASS_NAME, 'cIflhYhI')
        Option = [Character[k], weapon]
        for j in range(len(options)) :
        	# 권장 성유물 옵션에서 필요한 정보가 들어있는 부분
            if j in [4, 5, 6, 8] :
                option = options[j].text
                # 옵션이 여러 개일 경우, 줄바꿈으로 구분하기 때문에 이를 / 구분으로 변경
                if '\n' in option :
                    option = option.replace('\n', ' / ')
                Option.append(option)
        # 권장 성유물의 옵션만 담는 부분
        Information.loc[total_index] = Option
        total_index = total_index+1
        
        # 추천 성유물 세트 및 상세 설명 수집 과정
        sets = sung.find_elements(By.CLASS_NAME, 'W078FM6Z')
        # 성유물 세트는 캐릭터마다 여러 개 존재하기 때문에 이를 구분하기 위한 부분
        character_number = 1
        for j in range(len(sets)) :
            # li로 구분되어 있는데, 그 안에 div가 같이 들어가 있기 때문에 문제가 발생한다.
            relic_info = list(sets[j].text.split('\n'))
            for m in range(len(relic_info)) :
            	# 실제 정보가 들어가 있는 부분
                if m%2 == 1:
                    one_set = relic_info[m-1]
                    set_info =relic_info[m]
                    character_name = Character[k]+'%d' %(character_number)
                    Option = [character_name, one_set, set_info]
                    Relic_Information.loc[relic_index] = Option
                    character_number = character_number+1
                    relic_index = relic_index+1
except Exception as e :
    print(e)
    print(Main_link[k])
        
with pd.ExcelWriter('genshin.xlsx') as writer :
    Information.to_excel(writer, sheet_name='성유물 옵션', index=False)

with pd.ExcelWriter('genshin_set_relic.xlsx') as writer :
    Relic_Information.to_excel(writer, sheet_name='성유물', index=False)
  • 두 번째 코드 결과물

 

  • 세 번째 코드
import pandas as pd
from selenium import webdriver
import time
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as E
from openpyxl import *

# 원신/성유물 나무위키 링크
link = 'https://namu.wiki/w/%EC%9B%90%EC%8B%A0/%EC%84%B1%EC%9C%A0%EB%AC%BC'

driver = webdriver.Chrome('chromedriver.exe')
driver.get(link)
time.sleep(3)

Relic = pd.DataFrame({'성유물 세트' : [], '2세트' : [], '4세트' : [], '획득처' : [], '비경' : []})
total_index = 0

# 성유물 세트 효과 수집 과정
info = driver.find_elements(By.CLASS_NAME, 'TiHaw-AK._6803dcde6a09ae387f9994555e73dfd7')
for i in range(len(info)) :
    # 첫 번째 성유물이 검투사의 피날레이기 때문에 해당 부분이 기준
    # 여기서부터 끝까지가 성유물에 대한 정보가 존재
    if '검투사' in info[i].text :
        index_start = i
        break
# 전체적으로 3단위로 원하는 정보가 있음
for i in range(index_start, len(info), 3) :
    relic_info = info[i].text.split('\n')
    # 1세트 효과가 있는 4성 성유물은 생략한다.
    if '모시는 자' in relic_info[0] :
        continue
    # 획득처에서 비경을 구분하는 과정
    if '비경' in  relic_info[7] :
        place_index_start = relic_info[7].index(':')
        place = relic_info[7][place_index_start+2:]
        if ',' in place :
            place_end_index = place.index(',')
            place = place[:place_end_index]
    else :
        place = ''
    relic = [relic_info[0], relic_info[3], relic_info[5], relic_info[7], place]
    Relic.loc[total_index] = relic
    total_index = total_index+1

with pd.ExcelWriter('genshin_relic.xlsx') as writer :
    Relic.to_excel(writer, sheet_name='성유물', index=False)
  • 세 번째 코드 결과물

 

해당 데이터를 활용하여 원신 캐릭터의 성유물을 엑셀에서 쉽게 조회하는 포스팅은 아래에서 확인해주세요!

https://yhj9855.com/entry/%EC%9B%90%EC%8B%A0-%EC%84%B1%EC%9C%A0%EB%AC%BC-%EC%84%B8%ED%8C%85-%EC%97%91%EC%85%80%EB%A1%9C-%EC%89%BD%EA%B2%8C-%EB%B3%B4%EA%B8%B0-45-%EC%97%85%EB%8D%B0%EC%9D%B4%ED%8A%B8-%EA%B8%B0%EC%A4%80-%EC%B9%98%EC%98%A4%EB%A6%AC-%ED%8F%AC%ED%95%A8

 

[원신] 성유물 세팅 엑셀로 쉽게 보기 (4.5 업데이트 기준, 치오리 포함)

안녕하세요! 오늘은 원신 4.5 업데이트 모든 캐릭터 성유물 세팅 포스팅을 진행하겠습니다. 4.5 업데이트는 간단한 업데이트여서 호다닥 갖고 왔습니다. 캐릭터의 성유물 세팅은 엑셀 내 저장되

yhj9855.com

 

코드에 대해 궁금한 부분이 있으신 분들은 댓글로 남겨주시면, 답변 드리도록 하겠습니다!

★읽어주셔서 감사합니다★

728x90
반응형
728x90
반응형

안녕하세요!

오늘은 프로그래머스 SQL 고득점 Kit  중 GROUP BY 분야의 '조건에 맞는 사용자와 총 거래금액 조회하기' 문제 리뷰를 진행하겠습니다.

 

문제는 아래 링크에서 확인해주시면 됩니다.

https://school.programmers.co.kr/learn/courses/30/lessons/164668

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

  • 문제설명

  • 문제

  • 예시

 

  • 문제를 파악하여 쿼리 생각하기

예시에서 볼 수 있듯이, 저희가 문제에서 SELECT 해야하는 부분은 회원의

  1. ID: B.USER_ID
  2. 닉네임: B.NICKNAME
    → A는 USES_GOODS_BOARD 테이블, B는 USED_GOODS_USER 테이블을 뜻하는데, 컬럼 이름이 고유할 경우 소속 테이블을 명시해주지 않아도 SQL에서 구분이 가능합니다.
  3. 총 거래금액: SUM(A.PRICE) TOTAL_SALES
    → 거래금액만 존재하고, 총 거래금액은 존재하지 않기 때문에 총 거래금액은 거래금액을 합친 거라고 생각할 수 있습니다.
    → TOTAL_SALES는 총 거래금액의 컬럼을 별칭으로 지정한 것 입니다.

총 3개인 것을 확인할 수 있습니다.

 

다음으로 두 개의 테이블을 JOIN 해야하는 부분은

  1. USES_GOODS_BOARD 테이블과 USED_GOODS_USER 테이블을 동시에 만족: JOIN USED_GOODS_USER B
    → 두 테이블을 동시에 만족해야 하기 때문에 내부 조인을 사용하는데, JOIN 혹은 INNER JOIN 어떤 걸 사용하셔도 상관없습니다.
  2. 두 테이블에서 값이 동일한 컬럼이 기준: ON A.WRITER_ID = B.USER_ID
    → ON은 조인의 조건으로 두 테이블에서 값이 동일한 것은 회원 ID 밖에 없기 때문에 해당 부분으로 조인을 진행합니다.

위와 같은 것을 확인할 수 있습니다.

 

다음으로 저희가 WHERE 조건으로 확인해야 하는 부분은

  1. 완료된 중고 거래: A.STATUS = 'DONE'
    → 여기서 주의해야할 점은 총 금액이 70만원 이상인 조건은 총 금액의 조건이고, 테이블 자체에서는 총 금액이라는 컬럼이 없기 때문에 WHERE 조건에서는 사용할 수 없습니다.

총 1개인 것을 확인할 수 있습니다.

 

다음으로 저희가 GROUP BY 해야하는 부분은

  1. 총 거래금액을 제외한 나머지 부분: B.USER_ID, B.NICKNAME
    USER_ID 혹은 NICKNAME 각각으로 GROUP BY를 해도 두 개의 값이 모두 중복 값이 없기 때문에 동일한 결과물을 가지지만, 항상 그룹화하고 싶은 컬럼을 제외한 모든 컬럼으로 그룹화하는 것이 좋습니다.
  2. 총 금액이 70만원 이상: HAVING TOTAL_SALES >= 700000
    → HAVING은 GROUP BY의 조건으로 그룹화를 통해 생성된 컬럼에 조건을 걸 수 있습니다.

위와 같은 것을 확인할 수 있습니다.

 

마지막으로 저희가 문제에서 확인해야 하는 부분은

  1. 결과는 총 거래금액을 기준으로 오름차순 정렬: ORDER BY TOTAL_SALES

총 1개인 것을 확인할 수 있습니다.

 

쿼리 완성하기

이제 위에서 생각한 쿼리를 SQL 실행순서에 맞게 배치해주시면 됩니다.

그렇게 완성된 쿼리는 아래와 같습니다.

SELECT 
    B.USER_ID, 
    B.NICKNAME, 
    SUM(A.PRICE) TOTAL_SALES
FROM
    USED_GOODS_BOARD A
JOIN
    USED_GOODS_USER B ON A.WRITER_ID = B.USER_ID
WHERE
    A.STATUS = 'DONE'
GROUP BY 
    B.USER_ID, B.NICKNAME HAVING TOTAL_SALES >= 700000
ORDER BY 
    TOTAL_SALES

 

궁금한 부분이 있으신 분들은 댓글로 남겨주시면, 답변 드리도록 하겠습니다.

 

★읽어주셔서 감사합니다★

728x90
반응형
728x90
반응형

안녕하세요! 네이버 뉴스가 24년 1월 25일부터 페이지가 보여주는 방식이 변경되면서, 이전 포스팅에서 진행했던 첫 번째 코드를 사용할 수 없게 되었습니다.

 

그래서 변경된 페이지에서 적용되는 크롤링 코드를 새로 가지고 왔습니다!

※ 두 번째 코드는 동일하게 적용됩니다.

 

해당 포스팅에서는 전체 코드만 첨부합니다.

크롤링할 페이지의 설명, 크롤링 진행 방식, 이전 크롤링 코드가 궁금하신 분들은 아래 링크에서 확인하실 수 있습니다.

https://yhj9855.com/entry/Crawling-%EB%84%A4%EC%9D%B4%EB%B2%84-%EB%89%B4%EC%8A%A4-%ED%81%AC%EB%A1%A4%EB%A7%81-1

 

[Crawling] 네이버 뉴스 크롤링 - 1

안녕하세요. 크롤링에서 가장 첫 포스팅을 네이버 뉴스 크롤링으로 하게 되었어요. 아무래도 바쁜 일상 속에서 매일 뉴스 기사를 파악하는 부분이 시간적으로 힘들었는데, 크롤링하고 데이터

yhj9855.com

 

크롤링의 자세한 과정이 궁금하신 분들은 아래 링크를 봐주시면 됩니다!

 

첫 번째 코드의 자세한 과정은 다음 포스팅에서 진행하겠습니다.

 

<두 번째 코드의 자세한 과정>

https://yhj9855.com/entry/Crawling-%EB%84%A4%EC%9D%B4%EB%B2%84-%EB%89%B4%EC%8A%A4-%ED%81%AC%EB%A1%A4%EB%A7%81-3

 

[Crawling] 네이버 뉴스 크롤링 - 3

안녕하세요. 오늘은 기존에 작성한 네이버 뉴스 크롤링 코드에서 두 번째 코드의 자세한 크롤링 과정을 포스팅 하겠습니다. 네이버 뉴스 크롤링 전체 코드를 확인하고 싶으신 분들은 아래 링크

yhj9855.com


[첫 번째 코드]

전체 코드

import pandas as pd
from selenium import webdriver
import time
from selenium.webdriver.common.by import By
from openpyxl import *

# 2024.01.25 부터 변경된 네이버 기사를 새로 크롤링하기 위해 만든 코드

link = 'https://news.naver.com/main/list.naver?mode=LS2D&sid2=229&sid1=105&mid=shm&date='
# 스크랩 하고 싶은 날짜를 년도월일 나열
# 날짜를 쉽게 바꾸기 위해 date를 따로 선언
date = '20240205'

# 메인 링크는 링크에 날짜가 붙은 구조이기 때문에 이렇게 작성해준다.
main_link = link + date
# number: 기사의 수, title: 기사 제목, link: 기사 링크
Main_link = pd.DataFrame({'number' : [], 'title' : [], 'link' : []})

# 크롬드라이버 실행
driver = webdriver.Chrome('chromedriver.exe')
driver.get(main_link)
time.sleep(3)

# 기사 더보기 버튼
more_button = driver.find_element(By.CLASS_NAME, 'section_more_inner._CONTENT_LIST_LOAD_MORE_BUTTON')

# 기사 더보기가 몇 개가 있을지 모르기 때문에 오류가 날 때까지 누르는 것으로 한다.
# 여기서 발생하는 오류란 버튼을 찾을 수 없다 즉, 버튼이 없을 때 발생하는 오류
while True :
    try :
        more_button.click()
        time.sleep(3)
    except :
        break

# 기사들의 정보가 담겨져 있는 곳
articles = driver.find_elements(By.CLASS_NAME, 'sa_text_title')
for i in range(len(articles)) :
	# 각 기사의 제목과 링크를 추출
    title = articles[i].text.strip()
    link = articles[i].get_attribute('href')
    li = [i+1, title, link]
    Main_link.loc[i] = li

# 엑셀 파일이 헷갈리지 않기 위해 엑셀 이름에 날짜를 넣음
excel_name = 'news_' + date + '.xlsx'
with pd.ExcelWriter(excel_name) as writer :
    Main_link.to_excel(writer, sheet_name='링크', index=False)

[두 번째 코드]

전체 코드

from bs4 import BeautifulSoup
import requests
import pandas as pd
from openpyxl import *
import time
import urllib

# 첫 번째 코드에서 지정한 뉴스의 링크들이 담긴 파일
link = pd.read_excel('news_20231222.xlsx')
# 엑셀 파일이 헷갈리지 않게 최종 결과파일에도 날짜를 넣어줌
excel_name = 'news_detail_20231222.xlsx'
Main_link = list(link['link'])
# number: 기사의 수, title: 기사의 제목, information: 본문 내용, link: 기사의 링크
Information = pd.DataFrame({'number' : [], 'title' : [], 'information' : [], 'link' : []})
# 본문 내용만 추가하면 되기 때문에 데이터 프레임에 미리 나머지 내용을 담아줌
Information['number'] = link['number']
Information['title'] = link['title']
Information['link'] = link['link']
information = []

for main_link in Main_link :
	# 기사가 전체적으로 2개의 구조를 가지고 있음 (게임/리뷰 카테고리에 한하여)
    # 하나의 구조를 기준으로 삼고, 해당 부분에서 오류가 발생하면 다음 구조의 기사로 판단
    try :
        response = requests.get(main_link, headers={'User-Agent':'Moailla/5.0'})
        if response.status_code == 200 :
            html = response.content
            soup = BeautifulSoup(html, 'html.parser')
            # 기사의 본문 내용만 담고 있는 부분
            info = soup.find('div', {'id' : 'newsct_article'}).text.strip()
            # 기사 내용 데이터 분석을 위해서 줄바꿈을 띄어쓰기로 변경
            info = info.replace('\n', '')
            information.append(info)
    except :
    	# 다른 구조의 기사 크롤링 코드
        # 여기서 오류가 나는 경우는 게임/리뷰 기사가 아닌 다른 카테고리의 기사로 판단
        try :
            response = requests.get(main_link, headers={'User-Agent':'Moailla/5.0'})
            if response.status_code == 200 :
                html = response.content
                soup = BeautifulSoup(html, 'html.parser')
                # 기사의 본문 내용을 담고 있는 부분
                info = soup.find('div', {'id' : 'newsEndContents'}).text.strip()
                info = info.replace('\n', '')
                # 해당 구조의 기사는 기자의 정보가 본문과 무조건 같이 존재
                # 기자의 정보 부분은 필요가 없기 때문에 기자 정보의 기준점이 되는 부분을 찾음
                # 기자의 정보 기준이 기사제공이라는 단어이기 때문에 그 이후는 삭제
                end = info.index('기사제공')
                info = info[:end]
                information.append(info)
        # 다른 카테고리의 기사가 들어올 경우에는 정보를 담지 않는 것으로 함
        except Exception as e :
        	info = ''
            information.append(info)
            # 오류가 발생하는 이유와 발생하는 링크를 출력하여 오류를 확인하는 장치
            #print(e)
            #print(main_link)

Information['information'] = information

with pd.ExcelWriter(excel_name) as writer :
    Information.to_excel(writer, sheet_name='결과값', index=False)

 

뉴스 크롤링 데이터를 이용한 워드클라우드 포스팅은 아래에서 확인해주세요!

https://yhj9855.com/entry/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D-%ED%95%9C%EA%B8%80%EB%A1%9C-%EC%9B%8C%EB%93%9C%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EB%A7%8C%EB%93%A4%EA%B8%B0-feat%EB%84%A4%EC%9D%B4%EB%B2%84-%EB%89%B4%EC%8A%A4-%ED%81%AC%EB%A1%A4%EB%A7%81

 

[데이터 분석] 한글로 워드클라우드 만들기 (feat.네이버 뉴스 크롤링)

안녕하세요. 오늘은 크롤링 데이터로 워드클라우드(wordcloud)를 만드는 방법에 대해 포스팅 하겠습니다. 크롤링 데이터는 네이버 뉴스 크롤링을 사용할 예정입니다! 네이버 뉴스 크롤링 과정이

yhj9855.com

 

뉴스 크롤링 데이터를 이용한 토픽모델링 포스팅은 아래세어 확인해주세요!

https://yhj9855.com/entry/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D-%ED%95%9C%EA%B8%80-%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%86%A0%ED%94%BD-%EB%AA%A8%EB%8D%B8%EB%A7%81-%EC%A7%84%ED%96%89%ED%95%98%EA%B8%B0

 

[데이터 분석] 한글 데이터 토픽 모델링 진행하기

안녕하세요! 오늘은 한글 데이터로 토픽 모델링(topic modeling)을 하는 방법에 대해 포스팅 하겠습니다. 한글 데이터는 네이버 뉴스 크롤링 데이터를 사용할 예정입니다. 네이버 뉴스 크롤링 과정

yhj9855.com

코드에 대해 궁금한 부분이 있으신 분들은 댓글로 남겨주시면, 답변 드리도록 하겠습니다.

★읽어주셔서 감사합니다★

728x90
반응형
728x90
반응형

안녕하세요! 오늘은 프로그래머스 SQL 고득점 Kit 문제 중 SELECT 분야의 '3월에 태어난 여성 회원 목록 출력하기' 문제 리뷰를 진행하겠습니다.

 

문제는 아래 링크에서 확인해주시면 됩니다.

https://school.programmers.co.kr/learn/courses/30/lessons/131120

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

  • 문제 설명

  • 문제

  • 예시

  • 주의사항

 

  • 문제를 파악하여 쿼리 생각하기

예시에서 볼 수 있듯이, 저희가 문제에서 SELECT 해야하는 부분은 회원의

  1. ID : MEMBER_ID
  2. 이름 : MEMBER_NAME
  3. 전화번호 : TLNO
  4. 성별 : GENDER
  5. 생년월일 : DATE_OF_BIRTH

총 5개인 것을 확인할 수 있습니다.

 

다음으로 저희가 WHERE로 조건을 확인해야 하는 부분은

  1. 회원의 생일은 3월 : DATE_OF_BIRTH LIKE '%-03-%'
    → 생년월일이 '연도-월-일' 의 형태로 되어있기 때문에 월만 3월이면 되기 때문에 위와 같은 쿼리가 완성됩니다.
  2. 회원의 성별은 여성 : GENDER = 'W'
  3. 회원의 전화번호는 NULL이 아니여야 함 : TLNO IS NOT NULL

총 3개인 것을 확인할 수 있습니다.

 

마지막으로 저희가 문제에서 확인해야 하는 부분은

  1. 결과는 회원 ID를 기준으로 오름차순 : ORDER BY MEMBER_ID ASC
  2. DATE_OF_BIRTH는 예시와 동일한 데이터 포맷 : DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d)
    DATE_FORMAT 함수는 SQL에서 날짜 및 시간 값을 특정 형식의 문자열로 변환하는데 사용합니다.
    → 형식이 %Y-%m-%d인 이유는 M은 월의 영어 단어를 의미하고, D는 일 뒤에 영어 접미사(EX :1st, 2nd)가 붙기 때문에 숫자만 가져오고 싶을 경우, 소문자를 써야합니다.

총 2개인 것을 확인할 수 있습니다.

 

  • 쿼리 완성하기

이제 위에서 생각한 쿼리를 SQL의 실행순서에 맞게 배치해주면 됩니다.

그렇게 완성된 쿼리는 아래와 같습니다.

SELECT 
    MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d')
FROM 
    MEMBER_PROFILE
WHERE 
    DATE_OF_BIRTH LIKE '%-03-%' 
    AND TLNO IS NOT NULL 
    AND GENDER = 'W'
ORDER BY 
    MEMBER_ID ASC

 

궁금한 부분이 있으신 분들은 댓글로 남겨주시면, 답변 드리도록 하겠습니다.

★읽어주셔서 감사합니★

728x90
반응형
728x90
반응형

안녕하세요!

오늘은 원신 4.5 업데이트 모든 캐릭터 성유물 세팅 포스팅을 진행하겠습니다.

4.5 업데이트는 간단한 업데이트여서 호다닥 갖고 왔습니다.

 

캐릭터의 성유물 세팅은 엑셀 내 저장되어 있으며, 조회를 통해서 쉽게 보실 수 있습니다!

엑셀 파일을 조회하는 방법은 아래 포스팅을 참고 해주세요:)

https://yhj9855.tistory.com/entry/%EC%9B%90%EC%8B%A0-%EC%84%B1%EC%9C%A0%EB%AC%BC-%EC%84%B8%ED%8C%85-%EC%97%91%EC%85%80-%ED%8C%8C%EC%9D%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95

 

[원신] 성유물 세팅 엑셀 파일 사용하는 방법

안녕하세요. 오늘은 제가 만든 원신 성유물 세팅이 담긴 엑셀 파일을 사용하는 방법에 대해서 포스팅 하겠습니다. 원신은 캐릭터마다 어울리는 성유물 세팅을 해주는 것이 거의 엔드 콘텐츠로

yhj9855.com

4.5업데이트 기준으로 치오리까지 캐릭터가 존재합니다!

성유물 세팅의 정보는 나무위키를 기반으로 하고 있습니다!

 

원신에서 가장 애매한 바위 원소 캐릭터가 등장했습니다...

생긴 건 정말 제 취향이지만.. 솔직히 성능이 좋지 않고

무엇보다 후반에 느비예트가 복각하기 때문에 뽑지는 않을 것 같네요ㅠㅠㅠ

 

궁금한 부분이 있으신 분들은 댓글로 남겨주시면, 답변 드리도록 하겠습니다.

엑셀 파일은 아래 파일 다운 받아주시면 됩니다!!

원신(4.5업데이트 기준).xlsx
0.13MB

★읽어주셔서 감사합니다★

728x90
반응형
728x90
반응형

안녕하세요!

오늘은 한국어 데이터 분석을 위해 꼭 필요한 Konlpy(코엔엘파이) 라이브러리에 대해서 포스팅 하겠습니다.

 

  • Konlpy 란?

한국어 자연어 처리를 위한 파이썬 라이브러리 입니다.

 

  • Konlpy의 특징

Konlpy은 다양한 한국어 형태소 분석기를 지원하기 때문에 같은 문장을 다른 방식으로 분석을 하는 것이 가능합니다.

※ Konlpy는 설치 및 사용 환경을 설정하는 과정이 조금 복잡하기 때문에 따로 포스팅을 진행하도록 하겠습니다!

 

  • Konlpy이 제공하는 형태소 분석기 종류

Konlpy은 아래 5가지 형태소 분석기를 제공합니다.

  1. Kkma
  2. Komoran
  3. Hannaum
  4. Okt (구 Twittrer)
  5. Mecab: 일본어 형태소 분석기를 한국어로 변경한 분석기로, 세종 말뭉치로 만들어진 CSV 형태의 사전 (Windows에서 잘 지원이 되지 않음)

Mecab은 Windows에서 잘 지원이 되지 않기 때문에 나머지 4개의 형태소 분석기만 비교를 해보도록 하겠습니다!

 

  • Kkma

서울대 지능형 데이터 시스템 연구실에서 개발한 형태소 분석기 입니다.

비교적 정확한 품사를 구분하는 형태소 분석기로 띄어쓰기 오류에 강하고, 다의어 처리에 효과적이지만, 단어의 수가 증가할수록 분석을 진행하는 시간이 가장 크게 느려지는게 특징입니다.

Kkma는 4가지의 함수를 제공합니다.

아래는 4가지 함수와 코드 예시입니다.

from konlpy.tag import Kkma

kkma = Kkma()
text = "꼬꼬마 형태소 분석기를 사용해 봅시다."

 

  • morphs: 문장을 형태소 단위로 추출
morphs_result = kkma.morphs(text)

Output: ['꼬꼬마', '형태소', '분석', '기', '를', '사용', '하', '어', '보', 'ㅂ시다', '.']

 

  • nouns: 문장을 명사 단위로 추출
nouns_result = kkma.nouns(text)

Output: ['꼬꼬마', '형태소', '분석', '분석기']

 

  • pos: 문장을 형태소 단위로 추출, 각 형태소의 품사와 함께 반환
pos_result = kkma.pos(text)

Output: [('꼬꼬마', 'NNG'), ('형태소', 'NNG'), ('분석', 'NNG'), ('기', 'NNG'), ('를', 'JKO'), ('사용', 'NNG'), ('하', 'XSV'), ('어', 'ECS'), ('보', 'VXV'), ('ㅂ시다', 'EFN'), ('.', 'SF')]

 

  • sentences : 여러 문장으로 이루어진 텍스트를 문장 단위로 추출
text = "꼬꼬마 형태소 분석기를 사용해 봅시다. 이것은 간단한 예시입니다."
sentences_result = kkma.sentences(text)

Output: ['꼬꼬마 형태소 분석기를 사용해 봅시다.', '이것은 간단한 예시입니다.']

 

 

  • Komoran

Shineware에서 개발한 형태소 분석기 입니다.

대용량 말뭉치를 학습하여 품사 태깅에 높은 정확도를 보이며, 빠른 분석 속도높은 성능을 보유하고 있습니다.

Komoran은 3가지의 함수를 제공합니다.

아래는 3가지 함수와 코드 예시입니다.

from konlpy.tag import Komoran

komoran = Komoran()
text = "코모란 형태소 분석기를 사용해 봅시다."

 

  • morphs: 문장을 형태소 단위로 추출
morphs_result = komoran.morphs(text)

Output: ['코모란', '형태소', '분석', '기', '를', '사용', '하', '아', '보', 'ㅂ시다', '.']

 

  • nouns: 문장을 명사 단위로 추출
nouns_result = komoran.nouns(text)

Output: ['코모란', '형태소', '분석', '기']

 

  • pos: 문장을 형태소 단위로 추출, 각 형태소의 품사와 함께 반환
pos_result = komoran.pos(text)

Output: [('코모란', 'NNP'), ('형태소', 'NNG'), ('분석', 'NNG'), ('기', 'NNG'), ('를', 'JKO'), ('사용', 'NNG'), ('하', 'XSV'), ('아', 'EC'), ('보', 'VX'), ('ㅂ시다', 'EF'), ('.', 'SF')]

 

  • Hannaum

국립 국어원에서 개발한 형태소 분석기 입니다.

복합 명사를 적절하게 처리하고, 복잡한 구조의 문장에서도 안정적으로 형태소 분석을 수행합니다.

Hannaum은 3가지의 함수를 제공합니다.

아래는 3가지 함수와 코드 예시입니다.

from konlpy.tag import Hannanum

hannanum = Hannanum()
text = "한나눔 형태소 분석기를 사용해 봅시다."

 

  • morphs: 문장을 형태소 단위로 추출
morphs_result = hannanum.morphs(text)

Output: ['한나눔', '형태소', '분석', '기', '를', '사용', '하', '어', '보', 'ㅂ시다', '.']

 

  • nouns: 문장을 명사 단위로 추출
nouns_result = hannanum.nouns(text)

Output: ['한나눔', '형태소', '분석', '기']

 

  • pos: 문장을 형태소 단위로 추출, 각 형태소의 품사와 함께 반환
pos_result = hannanum.pos(text)

Output: [('한나눔', 'N'), ('형태소', 'N'), ('분석', 'N'), ('기', 'N'), ('를', 'J'), ('사용', 'N'), ('하', 'X'), ('어', 'E'), ('보', 'P'), ('ㅂ시다', 'E'), ('.', 'S')]

 

 

  • Okt

Twitter에서 개발한 형태소 분석기 입니다.

복합 명사 분석에 우수하며, 속도가 빠르고 경량화된 형태로 제공되어 다양한 환경에서 사용할 수 있습니다.

Okt는 4가지의 함수를 제공합니다.

아래는 4가지 함수와 코드 예시입니다.

from konlpy.tag import Okt

okt = Okt()
text = "Okt 형태소 분석기를 사용해 봅시다."

 

  • morphs: 문장을 형태소 단위로 추출
morphs_result = okt.morphs(text)

Output: ['Okt', '형태소', '분석기', '를', '사용', '해', '봅시다', '.']

 

  • nouns: 문장을 명사 단위로 추출
nouns_result = okt.nouns(text)

Output: ['Okt', '형태소', '분석기']

 

  • pos: 문장을 형태소 단위로 추출, 각 형태소의 품사와 함께 반환
pos_result = okt.pos(text)

Output: [('Okt', 'Alpha'), ('형태소', 'Noun'), ('분석기', 'Noun'), ('를', 'Josa'), ('사용', 'Noun'), ('해', 'Verb'), ('봅시다', 'Verb'), ('.', 'Punctuation')]

 

  • phrases: 문장을 어구 단위로 추출
phrases_result = okt.phrases(text)

Output: ['Okt', 'Okt 형태소', '형태소', '분석기', '사용', 'Okt 형태소 분석기', '분석']

 

Konlpy를 활용하여 한국어 데이터 기반 워드 클라우드, 토픽 모델링 데이터 분석을 진행한 예시는 아래 페이지에서 확인하실 수 있습니다!

https://yhj9855.com/entry/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D-%ED%95%9C%EA%B8%80%EB%A1%9C-%EC%9B%8C%EB%93%9C%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EB%A7%8C%EB%93%A4%EA%B8%B0-feat%EB%84%A4%EC%9D%B4%EB%B2%84-%EB%89%B4%EC%8A%A4-%ED%81%AC%EB%A1%A4%EB%A7%81

 

[데이터 분석] 한글로 워드클라우드 만들기 (feat.네이버 뉴스 크롤링)

안녕하세요. 오늘은 크롤링 데이터로 워드클라우드(wordcloud)를 만드는 방법에 대해 포스팅 하겠습니다. 크롤링 데이터는 네이버 뉴스 크롤링을 사용할 예정입니다! 네이버 뉴스 크롤링 과정이

yhj9855.com

 

https://yhj9855.com/entry/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D-%ED%95%9C%EA%B8%80-%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%86%A0%ED%94%BD-%EB%AA%A8%EB%8D%B8%EB%A7%81-%EC%A7%84%ED%96%89%ED%95%98%EA%B8%B0

 

[데이터 분석] 한글 데이터 토픽 모델링 진행하기

안녕하세요! 오늘은 한글 데이터로 토픽 모델링(topic modeling)을 하는 방법에 대해 포스팅 하겠습니다. 한글 데이터는 네이버 뉴스 크롤링 데이터를 사용할 예정입니다. 네이버 뉴스 크롤링 과정

yhj9855.com

 

궁금한 부분이 있으신 분들은 댓글로 남겨주시면, 답변 드리도록 하겠습니다!

★읽어주셔서 감사합니★

728x90
반응형
728x90
반응형

안녕하세요!

오늘은 원신 4.4 업데이트 모든 캐릭터 성유물 세팅 포스팅을 진행하겠습니다.

4.4로 업데이트 된지 조금...많이? 날짜가 지났는데 계속 바빠서 정리를 못했네요ㅠㅠㅠ

 

캐릭터의 성유물 세팅은 엑셀 내 저장되어 있으며, 조회를 통해서 쉽게 보실 수 있습니다!

엑셀 파일을 조회하는 방법은 아래 포스팅을 참고 해주세요:)

https://yhj9855.tistory.com/entry/%EC%9B%90%EC%8B%A0-%EC%84%B1%EC%9C%A0%EB%AC%BC-%EC%84%B8%ED%8C%85-%EC%97%91%EC%85%80-%ED%8C%8C%EC%9D%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95

 

[원신] 성유물 세팅 엑셀 파일 사용하는 방법

안녕하세요. 오늘은 제가 만든 원신 성유물 세팅이 담긴 엑셀 파일을 사용하는 방법에 대해서 포스팅 하겠습니다. 원신은 캐릭터마다 어울리는 성유물 세팅을 해주는 것이 거의 엔드 콘텐츠로

yhj9855.com

4.4업데이트 기준으로 가명, 한운까지 캐릭터가 존재합니다.

성유물 세팅의 정보는 나무위키를 기반으로 하고 있습니다!

 

제가 필드 파티는 덱 압축을 잘하지 않는 편이라서 그런지 그렇게 크게 다가오지는 않았네요ㅠㅠ

오히려 복각한 캐릭터에 더 집중했던 것 같습니다...

그래도 낙하 공격이 정말 좋기 때문에 바람 원소에 적절한 캐릭터가 없으면 뽑으시는 것도 좋을 것 같네요:)

 

궁금한 부분이 있으신 분들은 댓글로 남겨주시면, 답변 드리도록 하겠습니다.

엑셀 파일은 아래 파일 다운 받아주시면 됩니다!!

원신(4.4업데이트 기준).xlsx
0.13MB

 

★읽어주셔서 감사합니다★

728x90
반응형
728x90
반응형

안녕하세요!

오늘은 붕괴 스타레일 2.0 업데이트 모든 캐릭터 유물 및 차원 장신구 세팅 포스팅을 진행하겠습니다.

 

캐릭터의 유물, 차원 장신구 세팅은 엑셀 내 저장되어 있으며, 조회를 통해서 쉽게 보실 수 있습니다!

엑셀 파일을 조회하는 방법은 아래 포스팅을 참고해주세요:)

https://yhj9855.com/entry/%EB%B6%95%EA%B4%B4-%EC%8A%A4%ED%83%80%EB%A0%88%EC%9D%BC-%EC%9C%A0%EB%AC%BC-%EC%B0%A8%EC%9B%90-%EC%9E%A5%EC%8B%A0%EA%B5%AC-%EC%84%B8%ED%8C%85-%EC%97%91%EC%85%80-%ED%8C%8C%EC%9D%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95

 

[붕괴 스타레일] 유물, 차원 장신구 세팅 엑셀 파일 사용하는 방법

안녕하세요. 오늘은 제가 만든 스타레일 유물, 차원 장신구 세팅이 담긴 엑셀 파일을 사용하는 방법에 대해서 포스팅 하겠습니다. 스타레일도 원신과 비슷하게 유물과 차원 장신구를 세팅해주

yhj9855.com

728x90

2.0 업데이트 기준으로 스파클까지 캐릭터가 존재합니다.

유물 및 차원 장신구 세팅의 정보는 나무위키를 기반으로 하고 있습니다!

 

이번 스파클이 스킬 포인트 최대량 증가 및 스킬 포인트 회복이라는 엄청난 스킬을 가지고 있어서 필수 캐릭터로 자리 잡았는데요.

그만큼 몸이 너무 약해서 금방 죽는 단점이 있습니다ㅠㅠ

저도 아직 키우고 있는 중인데 효율이 너무 좋아서 당분간 스파클+a 로 조합을 꾸릴 것 같네여:D

 

궁금한 부분이 있으신 분들은 댓글로 남겨주시면, 답변 드리도록 하겠습니다.

엑셀 파일은 아래 파일 다운 받아주시면 됩니다!!

스타레일(2.0업데이트 기준).xlsx
0.08MB

★읽어주셔서 감사합니다★

728x90
반응형

+ Recent posts