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 주소를 모아둔 사이트들이 많이 나오니 관심 있으신 분들은 검색해보시면 됩니다.

 

또다른 스마트워크

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

Today I Learn 2019년 11월 15일(금) 오늘 배운 내용을 공유합니다.

이 페이지는 구글 SEO에 신경쓰지 않습니다.

색인이 생성되었으나 사이트맵에 제출되지 않았습니다.

  1. 위 메시지가 구글 서치 콘솔에서 떠돌고 있고, 생각보다 구글에서 검색이 안됨을 발견
  2. 구글에서 site:”muggleboss.net“를 검색했을 때 실제로 URL이 나오는 수가 적음을 발견
  3. 구글 서치 콘솔에서 사이트맵 제출이 되지 않았음을 인지
  4. 문제 해결을 위해 구글에서 아래 키워드들을 검색
    • 색인이 생성되었으나 사이트맵에 제출되지 않았습니다.
    • 워드프레스 색인이 생성되었으나 사이트맵에 제출되지 않았습니다.
    • 구글 서치 콘솔 색인이 생성되었으나 사이트맵에 제출되지 않았습니다.
    • 구글 서치 콘솔 사이트맵
  5. 원하는 검색 결과가 나오지 않음
  6. 네이버에서 검색 : 워드프레스 색인이 생성되었으나 사이트맵에 제출되지 않았습니다.
  7. 네이버 지식인에서 비슷한 사례를 발견과 동시에 워드프레스 네이버 카페 발견
  8. 네이버 카페에 가입한 후 ‘사이트맵’이라는 키워드로 검색
  9. Yoast SEO만을 통해 사이트맵을 제출하고 있는 상황에서 Jetpack도 가능하다는 걸 알게 됨
  10. 위 글에서 Yoast SEO와 Jetpack을 함께 사이트맵 제출을 하면 안된다는 정보를 습득
  11. Yoast SEO를 OFF하고 Jetpack의 사이트맵 ON
  12. 구글 서치 콘솔에 제출
  13. Yoast SEO는 발견된 URL 수가 0이었지만 Jetpack을 통해 제출한 사이트맵에서는 144개, 5개 확인
  14. 해당 이슈 완료

 

메모장으로 PPT 슬라이드 목차 쉽게 만들기

  1. 베어유의 유원일 대표님을 통해 참고 링크 를 습득
  2. 메모장에 원하는 슬라이드 내용을 입력
    1. Enter : 슬라이드 나누기
    2. Tab : 내용 생성하기
  3. 메모장을 유니코드로 저장
  4. 파워포인트에서 메뉴탭에 메모장을 가져오기
  5. Enter한 부분마다 슬라이드가 생성

 

구글 SEO 용어

  1. 크롤링(Crawling) : 구글은 웹 크롤러 ‘스파이더’라는 소프트웨어를 이용해 몇 개의 웹페이지 속의 링크들을 따라가 그 웹페이지들의 데이터를 가져온다. (링크 속에 링크 속에 링크) 이렇게 링크를 가져오는 작업을 크롤링이라고 한다.
  2. 인덱싱(Indexing) : 가져온 웹페이지들을 웹페이지에 포함된 모든 단어들에 맞게 분류하는 작업
  3. 검색 엔진 결과 페이지(SERP : Search Engine Result Page) 사용자에게 유용한 페이지들을 뽑아내 순위를 매겨 보여준 결과
  4. 벡링크(Backlink) : 다른 페이지에서 내 페이지의 링크를 걸어주는 것. 내 페이지로 유입되는 링크를 백링크라고 한다. 백링크의 갯수가 많아질 수록 내 페이지의 신뢰도가 상승한다.
  5. http/https : 보안 프로토콜, https 는 보안 프로토콜이 적용된 도메인, 보안 프로토콜이 적용되면 높은 점수가 부여된다.
  6. Robots.txt(로봇 배제표준 파일) : 웹사이트에 대한 검색 엔진 로봇들의 접근을 조절, 제어해주는 역할. Robots.txt 파일의 코드에 따라 해당 검색 엔진의 접근을 차단할수도, 해제할 수도 있다.
  7. sitemap.xml(사이트맵) : 크롤링을 도와주는 웹페이지 지도와 같은 것. 크롤링 과정에서 쉽게 발견되지 않는 페이지도 크롤링 및 색인을 가능하게 해줌
  8. Title(타이틀) : 웹페이지의 이름 (200-569pixel)
  9. Meta Description(메타 디스크립션) : 웹페이지를 설명하는 글.
    • 추가 : 웹페이지를 잘 나타내는 내용이어야 하며, 검색 시 글의 내용이 잘려서 보이면 안된다. (70~160byte)
  10. 소셜 메타 태그 : 소셜 미디어에서 들어오는 트래픽은 얼마인지 구글에서 트래킹한다. 소셜 미디어를 통해 들어오는 트래픽도 중요하기 때문에 부지런히 SNS로 공유해야 함
  11. 이미지 태그 최적화 : 이미지가 중요한 글이라면 이미지에 Alt 태그를 설정해둬야 함 이미지 만으로 높은 검색 순위를 차지할 수 있음
  12. 모바일 최적화 : 모바일 퍼스트 전략을 추구, 모바일 최적화가 필수
  13. 대표 주소 설정 : 내 웹페이지로 들어오는 주소가 여러개가 있다면 대표 주소를 설정하고 리다이렉트 시키는 것이 좋다.
  14. 키워드 및 콘텐츠 최적화 : 정보가 풍부하게 담긴 콘텐츠를 좋아합니다. 나의 웹사이트의 특정 분야 키워드를 찾은 후 콘텐츠 작성

 

상위 랭크를 결정하는 주요 요소

  1. 링크 : 신뢰도 높은 사이트에서 백링크를 얻으면 신뢰도 점수가 올라간다.
  2. 콘텐츠 : 한가지 주제에 관해서 다양하고 풍부한 콘텐츠가 있는 사이트를 좋아함
    • 콘텐츠의 길이
    • 사용자가 머물다 간 시간
  3. 랭크브레인 : 구글의 머신러닝 인공지능 시스템, 단어나 구문이 가질 수 있는 유사한 의미를 추측하고 결과를 필터링해 처음 보는 검색 쿼리를 효과적으로 처리(이건 무슨 말인지 모르겠다.)