본문 바로가기

21 - 2학기/슬기로운 코딩생활

[TIL]2주차 크롤링과 봇 개발

TAB 2021 겨울방학 학회활동 [슬기로운 코딩생활]

2주차 TIL입니다.

작성자 : 39기_김현서


최근 자주 사용하는 디스코드에서 유용하게 쓰일만한 bot을 만들어 보고자한다. 


1. 사용언어

Discord의 봇 개발은 Discord API를 이용하여 제작하는 방법과 비공식 API를 사용해 제작할 수 있다.

discord에서는 봇 개발을 위한 공식 API를 지원하고 있지만, 사용 가능한 언어인 파이썬(discord.py)를 사용하기로 했다.

discord.py는 지난 8월에 공식적으로 개발을 중단했지만, 쓰레드와 같은 최신기능을 빼고 대부분의 기능은 잘 쓸수 있기에 파이썬을 사용하기로 했다. 이 외에도 Node.js, JAVA, C#등 많은 언어를 이용한 API들이 존재한다.

더불어 이번 봇 제작에서는 크롤링을 이용한 게임사 전투정보실의 정보를 가져올것이기 때문에 이에 용이한 파이썬을 사용했다.

2. 봇 만들기

봇 제작에 대한 많은 내용은 공식문서나 기타 블로그에도 많이 설명되어있다. 아래에는 어떤식으로 코드가 작성되었는지 말하고자한다.

discord.py에서는 event방식으로 명령을 수행하게된다. 

@bot.event
async def on_ready():
    print("Logged in as ")
    print(bot.user.name)
    print(bot.user.id)

파일을 실행했을때 bot이 실행되었다는 것을 알려주는 event를 보면 알수있다.

https://hitomis.tistory.com/74

 

파이썬으로 디스코드 봇 만들기 (로스트 아크 홈페이지를 웹크롤링하여 레벨 보여주기)

환경 Python 3.7.x 순서 1. Python 설치 [개발관련/ETC] - 윈도우 Python 설치 2. 디스코드에서 본인의 앱 생성 및 봇 추가 아래 URL로 디스코드에 접속 https://discordapp.com/developers/applications/ Discord..

hitomis.tistory.com

지금하는 봇과 거의 유사한 봇 제작 설명이 있어 참고했다.

위 블로그에서 나온 코드를 바탕으로 봇을 제작하였다.

위 블로그 코드를 바탕으로 수정한 봇의 형태

로스트아크 전투정보실의 정보를 바탕으로 크롤링을 통해 캐릭터의 레벨과 원정대, 길드를 나타내고자 코드를 수정했다.

 

-앞으로 해야할 것들

임베드로 캐릭터 정보표시

로스트아크 인벤에 닉네임 검색한 결과를 표시