Python feed 파싱하는 feedparser 라이브러리 알아보기

오늘은 Python에서 feed를 파싱할 수 있는 feedparser 라이브러리를 알아보려 합니다.

feedparser 설치

우선 virtualenv로 파이썬 환경을 분리해줍니다.

pip3 install virtualenv
virtualenv -mvenv env

env라는 이름의 가상 환경을 생성합니다.

source env/bin/activate

가상환경을 폴더에서 활성화합니다.

pip3 install --upgrade pip

pip의 업그레이드가 존재하는지 확인하고 진행합니다.

pip install feedparser

pip로 feedparser를 설치합니다.

로컬

import feedparser
from pprint import pprint

feedparser와 정리하고 출력해주는 pprint를 가져옵니다.

data = """<rss version="2.0">
<channel>
<title>test feed</title>
</channel>
</rss>"""

rss feed를 로컬 파일로 파싱할 수 있습니다.

local_fees = feedparser.parse(data)

feedparser로 파싱합니다.

pprint(local_fees["feed"])
pprint(local_fees.feed)
pprint(local_fees.feed.title)

title만 존재하므로 title만 가져옵니다.

{'title': 'test feed',
 'title_detail': {'base': '',
                  'language': None,
                  'type': 'text/plain',
                  'value': 'test feed'}}
'test feed'

위 두 문자열이 출력됩니다.

url

import feedparser
from pprint import pprint

feedparser와 정리하고 출력해주는 pprint를 가져옵니다.

feed = feedparser.parse('feed:https://minwook-shin.github.io/feed')

rss feed를 url로 파싱할 수 있습니다.

pprint(feed["feed"])
pprint(feed.feed)

feed 전체를 가져옵니다.

pprint(feed["entries"])
pprint(feed.entries[0].title)
pprint(feed.entries[0].link)
pprint(feed.entries[0].description)
pprint(feed.entries[0].published)
pprint(feed.entries[0].published_parsed)
pprint(feed.entries[0].id)

entries 전체를 가져오거나, 제목, 주소, 설명과 같이 별도의 필드만 가져올 수 있습니다.

Written on July 25, 2019