전 직장에서 받은 단기 프로젝트이다.
당시 회사에서는 유해물질 측정 센서의 결과 값을 이용하는 프로젝트가 진행 중이였다.
문제는 간혹 센서가 꺼져버리는 경우가 있어서 센서가 잘 살아있는지 외부센서 API를 확인한 후에 전 날 센서가 이상이 없는지 확인해서 구두로 알리라는 지시가 내려왔다.
그런데 같이 일하는 동기가 매일 같은 업무를 하기 싫었는지 이걸 자동화 시켜보자고 했다.ㅋㅋ
API 서버는 5분 단위의 정보만 제공하지만 해당 정보를 날마다 보여주는 웹 페이지가 있었다.
처음엔 API 서버를 이용하려다가 그러면 하루가 1440분이니까 288번 API 서버를 다녀와야 했기 때문에 그냥 웹 페이지에서 웹 스크래핑을 통해 데이터를 긁어온 뒤 이상여부를 확인 후 메일로 자동으로 보내기로 했다.
그래서 나는 파이썬으로 한번 구현해본적이 있는 웹 스크래핑을, 같이 일하는 동기가 자동 메일을 만들기로 했다.
전체 코드다. 일단 해당 날짜와 센서 번호를 인자로 받아온다. 그래서 이렇게 Get 방식으로 웹페이지에 접속하는 것을 이용해 원하는 날짜의 정보와 센서의 값을 가져올 수 있도록 했다.
JSoup 라이브러리를 사용해서 웹 스크래핑을 진행했다.

이렇게 JSoup를 이용해서 해당 페이지의 소스 파일을 죄다 긁어서 가져온다.

그리고 우리가 원하는 정보는 테이블 안에 p 태그 안에 strong 태그 안에 있었기 때문에 해당 요소를 가져와서 select해준다.

그리고 이걸 <strong> 태그만 자르고 안에 데이터들만 배열 안에 넣어준다.
데이터의 항목은 총 16개이기 때문에

이렇게 반복문을 통해서 List<Map<String,String> list 에 담어서 넘겨주면 된다.
(반복문 안에 Map에 데이터를 넣고 반복문 마지막에서 list에 add)
이렇게 리스트를 return 해주면 내 임무는 끝이다.
메일 부분이 궁금하다면 아래 URL로..
http://dequista.tistory.com/25
AutoMailing WebServer
엔씨엘에서 두번째로 받은 단기프로젝트. 유해물질 측정 센서의 결과 값 다루는 프로젝트가 사내에서 진행중이다. 하지만 센서가 문제가 있는지 1분에 한 번씩 검출해야하는데 간혹 센서가 꺼
dequista.tistory.com
Github
https://github.com/chobkyu/NCL-Auto_Mailing
GitHub - chobkyu/NCL-Auto_Mailing: Scrap and mail
Scrap and mail. Contribute to chobkyu/NCL-Auto_Mailing development by creating an account on GitHub.
github.com
'MyProject' 카테고리의 다른 글
[Project] 영어 단어 테스트 앱 (0) | 2024.01.19 |
---|---|
[Project] NextJS13으로 만든 다이어리 SNS 서비스 PUDA (1) | 2023.11.03 |
[Project]공공데이터 수집 DB 모니터링 (0) | 2023.03.23 |