Skip to content

[2019.03] 인턴기간 중 진행했던 프로젝트. 다양한 사이트에 올라오는 국가지원 공고문을 매일 자동으로 스크랩하여 한눈에 볼 수 있도록 웹 서비스를 기획, 사내 그룹웨어를 통해 키워드 알림을 받을 수 있도록 제작.

Notifications You must be signed in to change notification settings

BangJihoon/RSS_WEB_FEED

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

공고문 Crowlling 프로그램

학점연계형 인턴중 대표님께서 원하시는 업무를 자동화하기 위한 프로젝트.

다양한 사이트에서 올라오는 국가지원사업 공고문을 한눈에 보기위해 만든 웹서비스

일시

  • 2019.03 ~2019.04

개발환경 및 언어


릴리즈

deploy.mp4

개발 기능

  • 평일 오전 10시기준 국가 공고문 게시 사이트들을 순회하는 프로그램 자동 동작
  • 신규 공고문에 대해서 키워드 알림된 공고문의 갯수를 확인후 알림
  • 사내 그룹웨어인 Slack과 Telegram을 통해 웹서비스 URL과 몇건의 신규공고문이 올라왔는지 자동메세지
  • 웹서비스로 제공하는 내용은 제목, 내용, 링크, 등록일자 등의 내용만을 받아와 싱글페이지로 제공

구현 설명

  • BOOTSTRAP과 JS, AJAX를 이용해 비동기적이고 빠른 검색기능을 제공하는 웹 구성
  • Python Flask 이용해 서버 구축
  • Python WebDriver를 이용한 크롤링
  • 20 여개 국가사업 공고 사이트에서 신규 공고문에 대한 내용을 DBaaS인 MongoDB Atlas에 수집
  • ajax와 selvet을 활용한 js를 통해 비동기적인 조회와 접근이 가능하도록 웹 기능을 넣었다.
  • 크롤링을 selenium모듈을 이용해서 Dom이 그려지고 나서 접근하도록 구성하니 전체 사이트 순회시간이 길고 느려
  • Selenium Library의 단점을 보완하고 성능을 향상시키고자 웹 소스를 읽어와서 파싱하는 Requests와 bs4를 추가적으로 이용하였다.
  • 동적으로 요청에 의해 웹이 랜더링되는 웹사이트를 제외하고, 서버사이드 언어가 아닌 정적인 웹의 경우는 후자를 이용했다.


P.S

코드 수행방법

pip-requirements.txt

  • freeze 모듈을 이용하여 pip-requirements를 뽑아두었다.
  • [pip freeze > pip-requirements.txt]
  • pip-requirements.txt 를통해 한번에 필요한 모듈을 설치할수있다.
  • [pip install pip-requirements.txt]

chromedrive 다운

  • 크롤링프로젝트 수정을 위해 C:안에 chromedrive가 필요하다.

pyinstaller 를 이용한 실행파일 만들기

  • main 을 실행파일로 만드는 방법
  • [pyinstaller -F main.py]

기타 txt 파일생성

  • output은 크롤링하여 받아온 자료로 저장전 상태이며, 디비에 저장후, 가독성이 좋은 result.txt 를 만든다

  • 저장후 정리된자료는 result는 메일로 보내준다.

About

[2019.03] 인턴기간 중 진행했던 프로젝트. 다양한 사이트에 올라오는 국가지원 공고문을 매일 자동으로 스크랩하여 한눈에 볼 수 있도록 웹 서비스를 기획, 사내 그룹웨어를 통해 키워드 알림을 받을 수 있도록 제작.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •