본문 바로가기
Google Sheets

Google Sheets : IMPORTXML로 뉴스 데이터 스크랩하기

by 강쌤 의 ViziBiziBusy 2020. 5. 26.

Google Sheets : IMPORTXML로 뉴스 데이터 스크랩하기

 

안녕하세요 강쌤입니다.

이번에는 뉴스데이터를 Google Sheets로

가져오는 것을 실습하겠습니다. 

 

1. 크롬 브라우저를 오픈합니다. 

 

2. 3. 먼저 크롬 웹스토어를 오픈한 다음에 'Scraper' Extension을 설치합니다.

https://chrome.google.com/webstore/detail/scraper/mbigbapnjcgaffohmbkdlecaccepngjd

 

Scraper

Scraper gets data out of web pages and into spreadsheets.

chrome.google.com

 

3. jtbc 뉴스룸의 일간 데이터를 가져오겠습니다. 

아래 페이지로 이동하면, 

맨 뒤에 'SearchDate=날짜' 부분이 계속 변경이 됩니다. 

20200526은 2020년 5월 26일 뉴스룸 기사라는 뜻

http://news.jtbc.joins.com/Replay/news_replay.aspx?fcode=PR10000403&strSearchDate=20200526

 

 

뉴스 꼭지마다 기사 제목, 뉴스 링크, 기자를 스크랩하겠습니다.

 

 

4. '오늘의 주요뉴스'라는 기사 제목에서 우클릭 후 위에서 설치한 Extension인

'Scrape similar'를 선택합니다.

 

그러면 XPath 기준으로 값은 '//dt/a'를 복사합니다.

 

5. Google Sheets에서 불러오겠습니다. 

A2셀에 아래와 같이 입력합니다.

=IMPORTXML("http://news.jtbc.joins.com/Replay/news_replay.aspx?fcode=PR10000403&strSearchDate=20200526","//dt/a")

 

IMPORTXML 함수는 URL에서 불러오고자 하는 특정 XPath를 입력하면 해당 값들을 불러올 수 있습니다. 

 

6. B2셀에는 해당 기사 링크를 가져오겠습니다.

이번에는 //dt/a 구조에 @href를 추가합니다.

=IMPORTXML("http://news.jtbc.joins.com/Replay/news_replay.aspx?fcode=PR10000403&strSearchDate=20200526","//dt/a/@href")

 

7. 이번에는 해당 기사 리포팅을한 기자를 불러오겠습니다.

기자 리스트에서 우클릭 후 다시 'scrape similar'를 실행하면 나타나는

XPath인 '//li/div/dl/dd'을 활용하겠습니다.

=IMPORTXML("http://news.jtbc.joins.com/Replay/news_replay.aspx?fcode=PR10000403&strSearchDate=20200526","//li/div/dl/dd")

 

그러면 아래와 같이 리스트를 불러올 수 있습니다.

 

뉴스 기사를 모아 아래와 같이 테이블 형태로

일간 단위로 관리할 수 있습니다. 

화면은 Tableau Desktop에서 구현했고

기사 제목 클릭 시 해당 뉴스 페이지로

이동하도록 설정하면 됩니다.

 

(기존에 만들어 놓은 화면의 에러로 인해 이전에 만든 화면으로 대체)

이상 강쌤이었습니다.

댓글