Tag

구글 시트

Browsing

우리 회사가 언급된 모든 뉴스를 보고 싶으신가요? 아니면 팀장님이 퇴근 30분 전에 갑자기 “우리 회사가 언급된 모든 뉴스를 찾아와!”라고 하셨나요? 어느 세월에 검색해서 일일이 수집하고 있나 라는 생각이 드셨나요? 네, 저와 같은 상황이네요. 청천벽력 같은 말에 약속을 취소하려다 예전에 얼핏 들었던 ‘구글 스프레드시트 웹크롤링’이라는 단어가 생각났습니다. 저는 문과생이라서 개발 용어 같은 ‘크롤링(Crawling)’이라는 단어에 거부감이 있었습니다. 그러나 지금은 퇴근 30분 전, 거부감을 이겨내고 크롤링을 배워 칼퇴를 지키느냐, 끝까지 거부하며 약속을 취소하냐의 기로에서 과연 저는 어떻게 되었을까요? 

이번 시간에는 웹 크롤링을 통해 구글, 네이버에 있는 기사를 긁어오는 방법을 알아보겠습니다. 비개발자인 제가 아주 쉽게 할 수 있었던 방법이니 여러분도 쉽게 할 수 있습니다. 걱정마시고 따라오세요. 제가 사용하는 시트는 맨 아래에 링크를 남겨둘테니 복사해 가셔서 링크만 바꿔 사용해보셔도 좋습니다.

 

구글 스프레드 시트에 가져올 내용

  1. 네이버 뉴스
  2. 구글 뉴스
  3. 블로그
  4. 부록 : 날짜별 데이터 정리하기

 


네이버 뉴스

 

1. 구글 스프레드 시트를 열기 전 네이버에 접속해 뉴스를 긁어올 회사를 검색합니다.

  1. 네이버에서 자신의 회사명을 검색
  2. 뉴스 탭 클릭
  3. 오른쪽 아래 ‘뉴스검색 RSS보기’ 클릭

구글, 스프레드 시트, 네이버, 네이버뉴스, 뉴스, 크롤링, 웹크롤링, 긁어오기, 크롤

 

2. 뉴스검색 RSS보기를 클릭하면 아래 같은 사진이 나오고, RSS 주소를 읽어오는 창에서 주소창에 있는 주소를 복사합니다.

구글, 스프레드 시트, 네이버, 네이버뉴스, 뉴스, 크롤링, 웹크롤링, 긁어오기, 크롤

 

3. 구글 스프레드 시트를 열어 importfeed 함수를 입력하고 복사한 링크를 붙이고, 검색어, 헤더, 개수를 입력해줍니다. 

검색어 : URL 에서 가져올 데이터를 지정합니다. ex) feed, feed title, feed description, feed url, items, items title, items author, items url, items created, items summary가 있습니다.

> 저는 가져올 수 있는 모든 데이터를 가져올 것이기 때문에 “”(빈 칸)만 입력했습니다. 

헤더 : 가져온 값의 상단에 열 정보를 넣을지 묻는 것입니다. title, url, Date created 등을 자동으로 생성해줍니다. true : 헤더를 가져옴, false : 헤더를 가져오지 않음

> 저는 헤더를 가져오기 위해 true를 입력했습니다.

항목_개수 : 몇 개를 가져올지 지정합니다.

> 100개를 입력했습니다.

 

=importfeed(“http://newssearch.naver.com/search.naver?where=rss&query=%ED%86%A0%EC%8A%A4%EB%9E%A9&field=0&nx_search_query=&nx_and_query=&nx_sub_query=&nx_search_hlquery=&is_dts=0”,“”,true,100)

구글, 스프레드 시트, 네이버, 네이버뉴스, 뉴스, 크롤링, 웹크롤링, 긁어오기, 크롤

 

4. Enter(엔터)를 누르면 Title, Author, URL 등 헤더가 생성되면서 ‘토스랩’ 뉴스 100개를 가져올 수 있습니다.

구글, 스프레드 시트, 네이버, 네이버뉴스, 뉴스, 크롤링, 웹크롤링, 긁어오기, 크롤

 

5. 아래 순서대로 필터링을 하면 2020년 3월 뉴스를 볼 수 있습니다.

  1. D열을 클릭
  2. 필터 아이콘 클릭
  3. 조건별 필터링 > 텍스트에 포함 > “Mar” 입력

구글, 스프레드 시트, 네이버, 네이버뉴스, 뉴스, 크롤링, 웹크롤링, 긁어오기, 크롤


 

구글 뉴스

 

구글 뉴스는 구글 알리미를 만들어 RSS를 주소를 생성하는 방법이 있지만 알리미를 만드는 것도 귀찮기 때문에 아래 링크를 importfeed 함수 내 URL에 넣고 “키워드” 부분에 회사명만 입력하면 원하는 뉴스를 바로 얻을 수 있습니다.

http://news.google.com/news?hl=ko&gl=kr&ie=UTF-8&output=rss&q=키워드

 

“키워드” 라는 부분에 회사명인 “토스랩”을 입력하면 아래와 같은 화면을 얻을 수 있습니다.

구글, 스프레드 시트, 네이버, 네이버뉴스, 뉴스, 크롤링, 웹크롤링, 긁어오기, 크롤

 

구글 뉴스 탭에 가서 비교해면 같은 뉴스 리스트인 것을 확인할 수 있습니다.

구글, 스프레드 시트, 네이버, 네이버뉴스, 뉴스, 크롤링, 웹크롤링, 긁어오기, 크롤

 

조건 검색도 사용할 수 있습니다. 잔디만 검색하면 인조잔디나 인공잔디도 함께 나오기 때문에 인조잔디와 인공잔디는 제외하고 잔디와 토스랩을 포함한 기사를 검색합니다.

“잔디 -인조잔디 -인공잔디 토스랩” 

※ 네이버 뉴스도 조건 검색 후 ‘뉴스검색 RSS보기’를 클릭하면 조건이 적용된 링크를 얻을 수 있습니다.

구글, 스프레드 시트, 네이버, 네이버뉴스, 뉴스, 크롤링, 웹크롤링, 긁어오기, 크롤


 

블로그

 

이제 어느정도 감을 익히셨나요? RSS 주소만 있으면 원하는 내용을 모두 스프레드 시트에 긁어올 수 있습니다. 가장 만만한 제 블로그를 긁어오도록 하죠. importfeed 함수 내 URL 입력칸에 “https://sijinii.com////feed/”를 입력하고 Enter를 누르면 아래와 같은 결과를 얻을 수 있습니다.

 
구글, 스프레드 시트, 네이버, 네이버뉴스, 뉴스, 크롤링, 웹크롤링, 긁어오기, 크롤
크롤링을 실행하면 내용이 한눈에 보이지 않아 E열을 숨긴 상태로 촬영했습니다.

 


부록

날짜별 데이터 정리

 

2020년 3월의 뉴스를 뽑기만 하면 필터링에서 끝나지만, 일자별로 어떤 뉴스가 나왔고, 몇 일에 가장 많은 뉴스가 나왔는지를 보려면 날짜 서식을 변경해 날짜별로 정렬해줘야 합니다. 날짜 서식을 조금 더 예쁘게 보고 싶다면 아래를 따라해주세요.

 

1. 원본 데이터 손실 방지를 위해 시트 복사해줍니다.

구글, 스프레드 시트, 네이버, 네이버뉴스, 뉴스, 크롤링, 웹크롤링, 긁어오기, 크롤

 

2. Date Created 열에서 ‘날짜’만 뽑아오기 위해 mid 함수를 사용해줍니다. mid 함수는 ‘문자열, 시작, 추출 길이’를 입력해야 합니다.

문자열 : 추출할 문자

> 날짜 데이터를 뽑아올 것이므로 Date Created 셀을 선택했습니다.

시작 : 문자를 추출할 때 몇 번째 글자부터 추출할 것인지를 지정합니다.

> 날짜인 ’31 Mar 2020’을 추출하기 위해서 시작할 문자는 ‘3’입니다. “T/u/e/,/ /” 다음 6번째 글자이기 때문에 숫자 6을 입력해줍니다.(빈칸도 하나의 글자로 인식합니다.)

추출 길이 : 시작 숫자부터 몇 개의 글자를 추출할 것인지 지정합니다.

> 3/1/ /M/a/r/ /2/0/2/0 총 11개의 문자이므로 숫자 11을 입력합니다.

구글, 스프레드 시트, 네이버, 네이버뉴스, 뉴스, 크롤링, 웹크롤링, 긁어오기, 크롤

 

3. Mid 함수가 사용했면 G14 셀을 복사하고 ctrl+shift+V(Mac: shift+option+cmd+V)를 눌러 오른쪽 열에 ‘값만 붙여넣기’를 해줍니다.

구글, 스프레드 시트, 네이버, 네이버뉴스, 뉴스, 크롤링, 웹크롤링, 긁어오기, 크롤

 

4. 일반 텍스트를 날짜 서식으로 바꿔줄 차례입니다. ‘수정 > 찾기 및 바꾸기(ctrl+H)’를 클릭해줍니다.

구글, 스프레드 시트, 네이버, 네이버뉴스, 뉴스, 크롤링, 웹크롤링, 긁어오기, 크롤

 

5. 구글 스프레드 시트의 날짜 서식은 일/월/연도가 가능하기 때문에 ‘ Mar 2020’을 ‘/03/2020’으로 변경해줍니다. 

1) 주의하실 점은’Mar’ 앞에 ” “띄어쓰기가 있다는 것입니다. 띄어쓰기를 포함하여 찾기 및 바꾸기에 입력해주어야 합니다. 그렇지 않으면 ’31 /03/2020’으로 변경되어 날짜 서식이 지정되지 않습니다.

2) 다른 열에도 ‘ Mar 2020’이 있기 때문에 바꾸려는 특정 범위를 지정해줍니다.

구글, 스프레드 시트, 네이버, 네이버뉴스, 뉴스, 크롤링, 웹크롤링, 긁어오기, 크롤

 

6. 서식이 텍스트에서 숫자로 변경되고 ’31 Mar 2020’은 ’31/03/2020’으로 변하게 됩니다. ‘메뉴 > 서식 > 숫자 > 날짜’를 선택해 줍니다.

구글, 스프레드 시트, 네이버, 네이버뉴스, 뉴스, 크롤링, 웹크롤링, 긁어오기, 크롤, 함수, mid, importfeed

 

7. 날짜가 ‘2020. 03. 31’로 변하게 되고 원활한 정렬과 함수 사용을 위해 전체 선택(ctrl+A), 복사(ctrl+C)한 후 D열의 필터를 제거하고 ‘값만 붙여넣기’를 해줍니다.

구글, 스프레드 시트, 네이버, 네이버뉴스, 뉴스, 크롤링, 웹크롤링, 긁어오기, 크롤, 함수, mid, importfeed

 

8. counta, countunique, countif 함수로 정리합니다.

구글, 스프레드 시트, 네이버, 네이버뉴스, 뉴스, 크롤링, 웹크롤링, 긁어오기, 크롤, 함수, mid, importfeed, count, counta, countunique, countif


마무리

예상하신대로 저는 30분 만에 ‘2020년 3월 노출 건수 88건’이라는 결과를 얻고 퇴근할 수 있었습니다. 정말 이런 일이 있었던 것은 아니지만 이번 기회를 계기로 다양한 크롤링 방법에 대해 배울 수 있어 좋았습니다. 여러분들도 이런 크롤링을 얼마나 자주 사용하실 진 모르겠지만 마케팅을 하고 계신다면 아마 크롤링 할 일이 한 번은 생기실걸요!?

 

사용 시트 : https://bit.ly/sijin_smt_news_crawling

한가지 더 팁을 드리자면 구글이나 네이버에 “주요 RSS” 라고 검색하면 각종 언론사의 카테고리별 RSS 주소나 파워블로그의 RSS 주소를 모아둔 사이트들이 많이 나오니 관심 있으신 분들은 검색해보시면 됩니다.

 

또다른 스마트워크

구글 스프레드시트 구글 스프레드시트 구글 스프레드시트