본문 바로가기

분류 전체보기

디스코드 자작봇 개발일지#12 사진이 안보이신다면 https://blog.naver.com/turnbf/221378308554 에서 봐주세요. !검색 기능 추가오늘은 !검색 기능을 추가하였다. !검색 실행 화면!검색 검색할키워드를 치면 유튜브에서 검색한 영상별 제목, 링크를 보내준다. 아래는 실행 영상이다. !검색 실행 영상파이썬 셀리니움을 활용하여 기능을 구현하였다. 셀레니움(selenium)-(1)셀레니움 설치하고 스타벅스 매장 정보 가져오기 | requests와 bs4로만 웹 스크래핑을 하시다 보면 처음에는 거침없이 다 가져오는 모습에 만족하시겠지만 이내 문제에 직면하게 됩니다. 분명 브라우저 상 보이는 화면 & 코드인데 파이썬에서는 없다고 에러가 발생합니다. 예를 들어 다음과 같이 스타벅스 매장 찾기 사이트에서 서울 지역의 모..
디스코드 자작봇 개발일지#11 사진이 안보이신다면 https://blog.naver.com/turnbf/221377489070 에서 봐주세요. !복권 기능 추가오늘은 !복권 기능을 추가하였다. !복권 명령어 실행모습!복권 명령어를 치게되면 중복없는 7자리의 숫자를 출력하게된다. if message.content.startswith("!복권"): Text = "" number = [1, 2, 3, 4, 5, 6, 7] # 배열크기 선언해줌 count = 0 for i in range(0, 7): num = random.randrange(1, 46) number[i] = num if count >= 1: for i2 in range(0, i): if number[i] == number[i2]: # 만약 현재랜덤값이 이전숫자들과 값이 같다..
디스코드 자작봇 개발일지#10 사진이 안보이신다면 https://blog.naver.com/turnbf/221376509168 에서 봐주세요. !실시간검색어, !번역 기능 개선 오늘은 !실검, !번역 기능을 개선하였다. !실검 개선하기전 모습 !실검 명령어의 개선하기전 모습이다. 링크가 그대로 보이기에 약간 산만해보인다. !실검 개선후 모습개선후 텍스트 겸 하이퍼링크를 겸해서 짧고 보기좋게 만들었다. if message.content.startswith('!실시간검색어') or message.content.startswith('!실검'): url = "https://www.naver.com/" html = urllib.request.urlopen(url) bsObj = bs4.BeautifulSoup(html, "html.parser..
디스코드 자작봇 개발일지#9 사진이 안보이신다면 https://blog.naver.com/turnbf/221376509168 에서 봐주세요.오늘은 네이버 실시간검색어 기능을 개선, 학교 급식정보를 제공해주는 기능을 만들었다. !실검 or !실시간검색어 !급식 개선하기전 !실검 실행모습개선하기전에는 불필요한공백이 많았고 바로가기 링크가 없어서 불편했다. 개선후 실행화면개선후에는 불필요한 공백제거, 구분선추가, 링크추가를 하였다. 가능하다면 저 링크를 짧은 텍스트 하이퍼링크로 만들어봐야겠다. 아래는 !실검 기능을 개선한 소스이다. if message.content.startswith('!실시간검색어') or message.content.startswith('!실검'): url = "https://www.naver.com/" html =..
디스코드 자작봇 개발일지#8 사진이 안보이신다면 https://blog.naver.com/turnbf/221375636799 에서 봐주세요.!영화순위 기능을 추가하였다. 크롤링을 활용하여 기능을 구현하였다. http://ticket2.movie.daum.net/movie/movieranklist.aspx 이 사이트에서 크롤링을 하였다. 구글링 해본결과 이름이 같은 li,div,span등 동일한 이름인 것들을 크롤링할때 li[0] # 1번째li li[1] # 2번째li li[2] # 3번째li 이러한 형식으로 동일이름인 것들을 구분해준 다는것을 알았다. 이 점을 활용하여 for문으로 총 20개의 li의 데이터를 받아오는 코드를 작성하였다. !영화순위 를 실행한 모습if message.content.startswith('!영화순위'):..
디스코드 자작봇 개발일지#7 사진이 안보이신다면 https://blog.naver.com/turnbf/221374834781 에서 봐주세요.오늘은 !날씨 명령어의 기능을 개선하였다. 개선하기전 실행모습개선후 실행모습개선하기전 내일 오전/오후 날씨 기능이 오류가있었다. 내일이 아닌 오늘의 오전,오후 날씨를 불러왔던 것이었다. 그래서 오후의 날씨로 다시 불러오고 조금더 구체적으로 날씨정보를 제공하는 기능으로 개선하였다. if message.content.startswith("!날씨"): learn = message.content.split(" ") location = learn[1] enc_location = urllib.parse.quote(location+'날씨') hdr = {'User-Agent': 'Mozilla/5.0'} u..
디스코드 자작봇 개발일지#6 사진이 안보이신다면 https://blog.naver.com/turnbf/221374216117 에서 봐주세요.유튜브 검색기능을 구현할려고하였지만 API 이용을 해야하는데 난이도가 좀 있는거같고 감이 안잡혀서 날씨기능을 개선하였다. 기존 날씨기능은 군포시산본1동의 날씨만을 불러오는데 이번에는 모든지역을 가능케 하여서 어느 지역이든 상관없이 날씨 정보를 제공한다. !날씨 기능을 개선하였다.!날씨 원하는지역 을 입력할경우 그 지역에대한 날씨를 알려준다. 저번 랜덤 애니메이션 사진 기능을 구현하였을때 알게된 점인데 크롤링할때 가끔가다 안되는 사이트들이 있는데 안되는 이유가 접속하는 사람을 봇으로 인식해서 라는 것이였다. 크롤링이 막힌다면 내가 봇이 아니라는 코드를 짜면 될것같다. 이번 개선한 날씨기능도 그것을..
디스코드 자작봇 개발일지#5 사진이 안보이신다면 https://blog.naver.com/turnbf/221373724471 에서 봐주세요.오늘은 명령어를 추가하는 게 아닌 오류를 고쳤다. 고치기 전에는 !들어와 또는! 나가를 반복적으로 계속 입력하면 봇이 안 나가거나 아예 고장이나 버리는데 이 부분을 if 문으로 조건을 부여해서 오류 처리가 안 나게끔 코드를 적었다. 오류를 고친 실행 화면 모습 if message.content.startswith("!들어와"): channel = message.author.voice.voice_channel server = message.server voice_client = client.voice_client_in(server) print("들어와") print(voice_client) pri..
디스코드 자작봇 개발일지#4 사진이 안보이신다면 https://blog.naver.com/turnbf/221372822748 에서 봐주세요.오늘은 !번역 번역할문장 !실시간검색어, 실검 !움짤 명령어를 추가해봤다. !번역 을 입력한 모습이다!번역 번역할문장 을 입력하게되면 문장을 번역한 구글번역사이트의 링크을 주게된다. 번역된 사이트 모습유일한 단점은 띄어쓰기를 인식하지 못한다는점이다. 그것을 대체로 _ 이나 - 등 띄어쓰기대신 구분해주는 문장을쓰면 된다. !실시간검색어 명령어 사용모습!실시간검색어 또는 !실검을 치게되면 나오는 실행화면이다 네이버 사이트를 크롤링을하여 실시간검색어를 가져와서 출력해준다. !움짤 을 입력하면 나오는 실행화면 !움짤 을 입력할경우 랜덤GIF가 나온다. 이 또한 크롤링을 활용하여 구현하였다 이용한 랜덤G..
디스코드 자작봇 개발일지#3 사진,동영상이 안보이신다면 https://blog.naver.com/turnbf/221371721897 에서 봐주세요.오늘은 명령어 !고양이 !강아지 !네코 명령어들을 추가해봤다 !고양이를 입력하면 랜덤한 고양이사진이 나오고 !강아지를 입력하면 랜덤한 강아지사진이 나오고 !네코를 입력하면 랜덤한 애니메이션 사진이 나온다 !고양이를 입력하면 나오는 실행화면이다!강아지 를 입력하면 나오는 실행화면이다LoremFlickr.com149 million served Examples https://loremflickr.com/320/240 A random picture of 320 x 240 pixels . If not supplying any keyword, you'll get a picture matching t..