@mildsalmon
·
2020. 03. 11.
4분 분량
0
Intro내가 클래스화를 너무 단순하게 생각했다. 디테일한 구조화 없이 그냥 클래스를 만들고 거기에 기존 코드를 다 때려박았다. 가독성은 개판이 되고, 쓸모없는 부분이 너무 많아졌다. 그래서 그냥 이번에는 A4에 전체적인 흐름을 그림으로 그려서 다시 클래스화를 진행하고자 한다. 최대한 비슷한 기능끼리 모듈을 만들었다. 코드는 초반에 Doc을 추가해서 모듈에 대한 간략한 설명을 추가할 예정이다. …
2020. 03. 05.
24분 분량
Intro 조건. 크롤링 조건 단국대 공지사항 천안 공통 분석 분석 할 html 코드 2개 <li> <div class="top_area"> <div class="write_num"> NO. 3584 </div> <div class="num_area"> <span class="table_date"> <strong>최종수정</strong> 2020.03.04 </span> <span class="table_hit"><strong>조회수</strong> 242 </span> </div> </div> <div class="subject"> <a href="http://www.dankook.ac.kr/web/kor/-390?p_p_id=Bbs_WAR_bbsportlet&p_p_lifecycle=0&p_p_state=normal&p_p_mode=view&p_p_col_id=column-2&p_p_col_pos=1&p_p_col_count=2&_Bbs_WAR_bbsportlet_curPage=1&_Bbs_WAR_bbsportlet_action=view_message&_Bbs_WAR_bbsportlet_messageId=714800"> <div class="subject_txt"> [퇴계기념중앙도서관] 도서관 임시 휴관 기간 연장 안내(~3.22)</div> <div class="ico_area"> …
2020. 03. 02.
13분 분량
2
Intro 다시는 이 시리즈에 글 쓸 일이 없길 바랐지만. 짜잔. 그럴리가 없죠. 시작하겠습니다. 유지보수 2탄 사건 설명 사건 개요 알람이 폭팔적으로 와서, '또 제목을 바꾼건가?', '난 잘 고쳤는데?'라는 생각을 했다. 그런데 그게 아니였다. 게시글을 지운것이다. 게시글은 3가지 방식으로 작동된다. 작성,수정,삭제 작성과 수정에 대한 대책은 바로 앞 게시글에서 해결했다. 하지만 삭제를 …
9분 분량
Intro 내가 다시 이 시리즈를 작성할 일은 없을 줄 알았는데... 사건 설명 사건 개요 학교에서 일반공지 게시글의 제목을 바꿨다. 수정 과정 ... new_file.write(posts[0].text) ... elif before != post.text: ... 지금까지 사용한 코드는 post.text (게시글의 제목)으로 최신 게시글인지 판단했다. 게시한 공지의 제목을 바꾼다는 생각을 하지 못해서이다. 충분히 가능했으나, 에측하지 못해서 에러가 …
2020. 02. 24.
10분 분량
Intro 블로그 첫 프로젝트가 끝났습니다. 다음에 다른 프로젝트로 찾아뵙겠습니다. 한라대학교 공지 알림 봇 제작기를 읽어주신 모든분들께 감사드립니다. 최종 코드 일반 공지_ver # -*- coding: utf-8 -*- ########## 서비스 코드 import requests from bs4 import BeautifulSoup import os import telegram import sys import time BASE_DIR = os.path.dirname(os.path.abspath(__file__)) my_token = '봇 토큰' …
7분 분량
Intro서버는 AWS의 Amazon Lunux 2를 사용했다. PuTTY나는 서버에 접속할때 PuTTY를 주로 사용한다. PuTTY는 SSH, Telet 등의 접속방식을 제공한다. PuTTY는 서버에 원격으로 접속하게 도와주는 프로그램이다. 다운로드 위 링크를 통해 다운받을 수 있다. PuTTY 접속 방법 빨간 부분만 잘 설정해주면 잘 접속이 된다. AWS .pem을 .ppk로 변환하는 방법 위에서 puttygen.exe를 클릭한다. Load를 …
16분 분량
Intro 이번 챕터에서는 telegram bot을 활용해서 공지가 생기면 알람이 오도록 구현해보겠다. 지금까지 만든 코드를 실행하면 위 같은 결과가 나온다. 공지를 제외한 1page에 있는 게시글을 전부 크롤링한 모습이다. telegram bot 텔레그램 봇 정리본 위 정리본에 링크 되어 있는 문서를 참고하자. 봇 만들기 BotFather 텔레그램 봇은 BotFather을 통해 만들 수 있다. 만드는 …
2020. 02. 19.
19분 분량
Intro 이 글에서는 Requests와 BeautifulSoup를 내 코드에 어떻게 적용시켰는지 알려준다. 웹페이지를 크롤링하기 위핵서는 크롤링할 웹의 주소 웹에서 F12(개발자 도구)를 누르면 나오는 소스 분석 이 두가지가 필요하다. Requests 우선 웹의 주소를 가지고 크롤링할 웹의 데이터를 가져와보자. # -*- coding: utf-8 -*- import requests req = requests.get('http://www.halla.ac.kr/mbs/kr/jsp/board/list.jsp?boardId=23401&mcategoryId=&id=kr_060101000000') html = req.text print(html) # …
2020. 02. 12.
11분 분량
1
A. 개괄적 도식화 개괄적으로 도식화를 하면 저런 모습이다. 나(client)는 학교 공지사항이 최신화 되면 알람받기를 원한다 위 목적을 해결하기 위해서는 학교 공지사항이 최신화 되면 알람오기를 원한다 (나에게) 위 두가지 사항을 만족시켜야 한다. 그러므로 나는 학교 공지사항이 최신화 되는지 지속적으로 확인하는 부분과 알람을 보내주는 부분을 만들것이다. 때문에 알람을 보내주는 부분은 텔레그램과 카카오톡을 …
1분 분량
A. 개요 17년 말쯤에 학교 근로장학생과 기타 공지를 확인하기 위해서 매일 학교 홈페이지에 들어갔던 기억이 난다. 매일같이 홈페이지에서 공지를 확인하는 일은 상당히 귀찮았다. 그래서 공지가 올라오면 알림을 받아보자 하고 검색을 했다. 다양한 방법이 나왔고, 난 웹 크롤링과 텔레그램으로 새 공지를 실시간으로 받았다. 1. 구글 알리미 2. rss 3. 웹에서 홈페이지가 …