언유상씨의 건전한 취미생활

파이썬 웹크롤링을 사용한 날씨 정보 프로그램 - 1 (GUI, 메일전송까지) 본문

건전한 학습생활 - python

파이썬 웹크롤링을 사용한 날씨 정보 프로그램 - 1 (GUI, 메일전송까지)

언유상 2019. 11. 22. 13:56

여름방학 프로젝트로 진행했던, 웹 크롤링후 날씨 정보를 메일로 보내주는 프로그램을 제작해 보았다.

지금까지 콘솔로만 했던 프로젝트들에서 한단계 더 끌어올리기 위해 GUI방식에 도전해 보았고, class사용과 크롤링에도 도전해보았다.

(본 내용은 최종 보고서를 기반으로 만들었고, 개인정보 부분은 공백으로 두었습니다.)

 

1) 활동 목표

아침에 학교를 가기 전 옷을 입으려고 할 때 날씨에 맞게 옷을 입고 싶은데, 찾아보기에는 시간이 오래 걸릴 것 같고,

귀찮아서 포기한 경험을 해본 적이 있을 것이다.
이 문제를 메일에 접속하기만 하면 바로 날씨를 볼 수 있는 프로그램을 제작하는 것으로 해결하려고 한다.

 

문제를 설정하고, 여러 차례 회의를 거쳐 중점적으로 해결하고자 한 부분들은 다음과 같다.
1. 날씨를 검색하는 경우, 대부분의 프로그램은 현재 내가 위치한 지역의 기상정보를 우선적으로 알려준다.

본 프로그램은 학교가 위치한 지역의 날씨를 전송한다. (만일 본인이 다른 지역의 날씨를 받고 싶다면, 소스코드에서 링크부분만 본인의 지역에 맞게 수정하면 된다.)
2. 날씨 사이트에 접속해도 현재 기온과 기상상태를 알려줄 뿐이라 체감이 잘 되지 않는다. 따라서 본 프로그램은 어제와의 기온 비교를 통해 사용자가 기온 변화를 더 잘 체감할 수 있도록 한다.
3. 매일 밤 일정한 시간에 이메일을 입력해 놓은 사용자들에게 이메일을 전송한다.
밤에 메일을 보내는 이유는 다음과 같다.
날씨 정보를 미리 보고 내일 입을 옷을 생각해 둘 수 있다.
2번 항목에서 하고자 하는 기온 비교를 하기에 용이하다.
4. 메일을 보내지 않아도, 프로그램을 실행시키기만 하면 화면 상에 현재의 날씨가 뜨게 한다.
따라서, 포털사이트의 날씨 항목에 들어가 세부 설정을 하지 않아도 프로그램을 실행시키기만 하면 학교가 위치한 지역의 날씨가 뜨게 하여 컴퓨터를 사용중임에도 빠르게 학교 날씨를 알 수 있도록 한다.

 

2) 작동 방식

이메일 주소를 입력 받음 --> 받은 이메일을 txt파일에 저장 --> 웹 크롤링을 통해 날씨 정보를 취합 --> 입력받은 이메일 주소로 메일 전송 --> 일정한 시간마다 txt파일에 저장된 메일 주소로 날씨 정보 발송

 

3) 프로그램 제작 결과 (작동 사진)

 

실행시 화면(좌)   이메일 전송 후 화면(우)
같은 내용의 이메일이 온 것을 알 수 있다.

 

메일로 온 내용은 네이버 날씨를 크롤링해서 만들었다.

받아온 이메일은 txt파일에 저장되며, 간단한 코드를 짠 뒤, 윈도우 스케줄러로 작동시키면 됩니다.

 

소스코드와 간단한 설명은 다음에 이어집니다. https://onutoa111.tistory.com/8

Comments