상세 컨텐츠

본문 제목

RSS를 이용한 보안뉴스 클리핑 자동화 with 파이썬

Python

by mp.jamong 2020. 12. 7. 09:31

본문

 

매일 발생하는 사건, 사고를 정리하기 위해 여러 언론사를 드나들며, 카테고리별로 분류하는 것이 어렵지는 않지만 여간 귀찮은 일이 아닐 수 없습니다. 필요한 카테고리의 항목의 내용에 대해 수집하고 자동으로 가공이 되어 결과만 확인할 수 있다면, 시간절약도 가능하고 다른 일에 집중할 수 있을 것입니다.

 

이번 포스팅은 보안뉴스(www.boannews.com)에서 제공하는 RSS를 이용하여 원하는 기간의 뉴스를 자동으로 수집하고 가공하는 내용에 대해 소개하고자 합니다. 파이썬 모듈인 Feedparser 를 이용하여 자동 수집과 가공하는 방법에 대해 궁금하신 분은 아래 포스팅을 참고하여 활용하였으면 합니다.

 

 

Contents | RSS를 이용한 보안뉴스 클리핑 자동화 with 파이썬

Ⅰ. RSS 소개

Ⅱ. 파이썬 모듈 Feedparser 소개

Ⅲ. RSS를 이용한 보안뉴스 클리핑 자동화 with 파이썬

 

 

 

 

1. RSS 소개

 

▷ RSS(Rich Site Summary)는 뉴스나 블로그 사이트에서 주로 사용하는 콘텐츠 표현 방식입니다. 웹 사이트 관리자는 RSS 형식으로 웹 사이트 내용을 보여 주고, 이 정보를 받는 사람은 다른 형식으로 이용할 수 있습니다.

 

 RSS를 사용하면 어떤 사이트에 새로운 콘텐츠가 올라왔을 때 해당 사이트에 방문하지 않고, RSS서비스를 통해 RSS 리더 프로그램으로 한 곳에서 그 콘텐츠를 이용할 수 있습니다. 예를 들면, 여러 언론사 사이트를 모두 방문할 필요 없이 다양한 기사를 네이버뉴스 한 곳에서 볼 수 있는 것과 같다고 보면 됩니다.

 

 현재 국내외 거의 모든 블로그에서 RSS를 지원하고 있으며, 그 외에 일부 언론사나 커뮤니티 사이트에서도 지원을 합니다.

 

 

2. 파이썬 모듈 Feedparser 소개

 

▷ 파이썬을 이용하여 RSS 피드를 쉽게 수집할 수 있도록 도와주는 모듈이 있습니다. Feedparser 라는 모듈 입니다.

 

▷ 아래 링크에서 Feedparser 모듈 소개와 설치 방법이 있습니다.

 

feedparser

Universal feed parser, handles RSS 0.9x, RSS 1.0, RSS 2.0, CDF, Atom 0.3, and Atom 1.0 feeds

pypi.org

 

▷ feedparser 모듈을 사용하면 RSS 피드를 분석하고 쉽게 사용할 수 있습니다. 상세 사용법은 아래 공식 문서를 참고하기 바랍니다.

 

Documentation — feedparser 6.0.2 documentation

© Copyright 2010-2020 Kurt McKee, 2004-2008 Mark Pilgrim Revision e13bb55c.

feedparser.readthedocs.io

 

 

3. RSS를 이용한 보안뉴스 클리핑 자동화 with 파이썬

 

▷ 보안뉴스(www.boannews.com)는 정보보안 관련 다양한 소식을 제공하는 언론사 중 하나 입니다. 해당 언론사 역시 RSS를 제공하고 있습니다.

 

 

▷ 위의 그림의 카테고리 중 "사건,사고", "보안컬럼", "긴급경보", "보안정책"의 뉴스 기사만 수집하여 가공해보도록 하겠습니다.

 

▷ 해당 자동화를 위한 파이썬 모듈은 총 3개가 필요합니다. feedparser, datetime, dateutil 이며, 설치 방법은 아래와 같습니다.

 → feedparser : pip install feedparser

 → datetime : pip install datetime

 → dateutil : pip install python-dateutil

 

▷ 동작 방식은 다음과 같습니다.

 → 수집 기간을 설정하고, 해당 카테고리 별 RSS URL 리스트를 정의합니다.

 → 정의된 RSS URL에 있는 뉴스 기사를 순차적으로 조회하면서 "뉴스 제목", "뉴스 일자", "뉴스 URL", "뉴스 요약"의 내용으로 데이터를 파싱하여 출력 합니다.

 

▷ 동작 방식을 적용하여 파이썬으로 구현한 내용은 아래와 같습니다.

 


import feedparser
import datetime
from dateutil.parser import parse

today = datetime.datetime.now()
today_diff = today + datetime.timedelta(days=-1)

feeds = {'1': '사건사고', '2': '보안컬럼', '5': '긴급경보', '6': '보안정책'}

for key, value in feeds.items():

    url = 'http://www.boannews.com/media/news_rss.xml?kind=' + key

    f = feedparser.parse(url)
    articles = f['entries']

    cnt_article = 0

    print("========================= RSS |", value, "=====================================", '\n')

    for article in articles:
        article_title = article['title']
        article_published = article['updated']
        article_link = article['link']
        article_summary = article['summary']

        article_date = parse(article_published)
        if article_date.date() >= today_diff.date():
            print(cnt_article + 1, '|', article_title)
            print(article_published)
            print(article_link)
            print(article_summary, '\n')
            cnt_article = cnt_article + 1

    if cnt_article == 0:
        print("해당 카테고리의 피드가 없습니다.", '\n')

    print("=============================================================================", '\n')

 

결과화면은 아래 그림과 같이 출력 됩니다.

 

 

 

 

▽ 같이 보면 더 좋은 블로그 글 

 

[PYTHON ] 파이썬 3.8 설치 방법

파이썬은 다양한 분야에서 사용되는 프로그래밍 언어로 간단하게는 스크립트를 이용한 배치 실행부터 웹 프로그래밍, 데이터 크롤링, 데이터 분석, 업무 자동화 등 다양한 환경에서 사용이 가

mpjamong.tistory.com

 

[PYTHON] 파이참(PyCharm) 설치

파이썬 프로그래밍을 쉽게 도와주는 IDE(통합개발환경) 어플리케이션인 파이참(PyCharm)을 소개하고자 합니다. 파이참(PyCharm)은 Intellij를 만든 Jetbrain에서 만든 파이썬 통합개발 환경으로 다양한 기

mpjamong.tistory.com

관련글 더보기

댓글 영역