뉴스 사이트에서 RSS를 이용하여 카테고리의 기사 내용을 읽은 후 feedparser로 기사 제목, 링크, 게시 날짜를 구분하여 엑셀 파일에 저장하는 python 코드를 작성한다. RSS란? Rich Site Summary의 약자로 콘텐츠의 표현 방식 중 하나이다. 콘텐츠를 표현하는 방식이기 때문에 뉴스 사이트나 블로그와 같이 가공된 콘텐츠를 제공하는 사이트에서 RSS 방식으로 데이터를 제공한다. RSS는 표현방식으로서 하나의 약속이기 때문에 정해진 규격이 있다.
RSS의 예시
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>사이트 제목</title>
<link> 사이트 주소</link>
<description>사이트 설명</description>
<item>
<title>콘텐츠 1 제목</title>
<link> 콘텐츠 1 주소</link>
<description>콘텐츠 내용 전체 또는 일부</description>
<pubDate>시간</pubDate>
<guid>콘텐츠 1 고유 ID</guid>
</item>
</channel>
</rss>
xml을 데이터를 표현할때 <키>값</키> 형태로 표현을 한다. 그래서 RSS의 정형화된 데이터 구조를 사용해서 원하는 정보를 크롤링해서 자료를 만들 수 있다.
feedparser 라이브러리 소개
feedparser은 RSS 주소를 입력하면 파이썬 자료형인 딕셔너리 자료형처럼 사용할 수 있도록 RSS를 분석해준다. quote 함수: URL에 있는 한글을 표현하기 위해 필요한 라이브러리이다. 인터넷 주소에 한글이 포함되어 있으면 보통은 인식할 수 없기 때문에 한글을 인식할 수 있는 다른 코드로 변환해야 한다. quote 라이브러리를 사용하면 한글을 URL Encoding을 통해 아스키 코드로 변환을 해준다.
feedparser 예시
feedparser.parse({RSS 주소}): RSS 주소의 내용을 분석해서 딕셔너리 자료형으로 반환한다.
Google 뉴스 사이트에스 월드, 비즈니스 카테고리의 뉴스 게시물 중 제목, 링크, 출간 일자를 엑셀 파일에 다운로드하는 예제
원래 Google 뉴스 사이트에서 RSS url에서 한글로 작성된 내용을 quote 함수를 사용해서 아스키 코드로 인코딩하려고 했지만, Google URL 자체에 한국어가 없고 자동으로 인코딩 된 url로 표기해주고 있어서 별도로 사용하지 않았다.
'개발 언어 > python' 카테고리의 다른 글
selenium으로 네이버 뉴스 가장 많이 본 기사 제목 크롤링하기 (0) | 2025.06.03 |
---|---|
웹 사이트 태그 구조 selenium, google webdriver, 예외 처리 (1) | 2025.06.01 |
python 파이썬 이메일 다루기 - smtp, email 라이브러리 클래스 (0) | 2025.05.18 |