[업무 지식]/Crawling
[RSS 스크레이핑] feedparser 이해하기
by 에디터 윤슬
2024. 12. 31.
pip install feedparser
>>> import feedparser
# parse() 함수에 파일 경로, 파일 객체, XML 문자열 등을 지정합니다.
>>> d = feedparser.parse('it.rss')
# parse() 함수에 URL을 지정하면 피드를 파싱할 수 있습니다.
>>> d = feedparser.parse('www.aladin.co.kr/rss/new_all/351')
>>> d.version # 피드의 버전을 추출합니다
'rss20'
》 type(d) # parse() 함수의 반환값은 FeedParserDict 객체입니다.
<class 'feedparser FeedParserDict">
>>> d.feed.title # 피드의 타이틀을 추출합니다.
'분야별 신간 특선 - 컴퓨터/모바일'
》 d['feed']['title'] # 딕셔너리처럼 사용할 수도 있습니다.
'분야별 신간 특선 - 컴퓨터/모바일'
》 d.feed.1ink # 피드 링크를 추출합니다.
http://www.aladin.co.kr/rsscenter/g0.aspx/www.aladin.co.kr/shop/book/wspecialnew.aspx?cid=351&rss
Type=1&type=title'
》 d.feed.description # 피드 설명을 추출합니다.
'분야별 신간 특선'
》 len(d.entries) # d.entries로 피드를 list 자료형으로 추출합니다.
25
》 d.entries[0].title # 요소의 타이틀을 추출합니다.
'데이터 과학자가 되는 핵심 기술/시난 오즈데미르 지음, 유동하 옮김/에이콘출판'
》 d.entries[0].link # 요소의 링크를 추출합니다.
'http://www.aladin.co.kr/rsscenter/go.aspx?rssType=1&type=item&itemId=124626128'
》 d.entries[0].description # 요소의 설명을 추출합니다.
'<br><table border=\ '0\' cellpadding=\'O\' cellspacing=\ '0\'XtrXtd align=\'left\' valign=l'top|'Xtable cellspacing=\'1\' cellpadding=\ '5\' border=\'0\' bgcolor=\ '#dddddd\'
style=l'margin-right: 10px;|'XtbodyXtrXtd bcolor=\'#ffffff|'Xa href=\'http://www.aladin.co.kr/
rsscenter/go.asp?rsType=1&type=item&itemId=124626128\'Ximg src=\ 'http://ima
7 d.entrieslo.updated # 요소의 변경일(업데이트 날짜)를 문자열로 추출합니다.
'Tue, 28 Nov 2017 00:00:00 +0900'
>>> d.entries[0].updated_parsed # 요소의 변경 시간을 파싱해서 time.struct_time 자료형으로 추출합니다.
time.struct_time(tm_year=2017, tm_mom = 11, tm_mday = 27, tm_hour = 15, tm_min = 0, tm_sec = 0, tm_wday = 0, tm_yday = 331, tm_isdst = 0)