검수요청.png검수요청.png

"웹크롤러"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
38번째 줄: 38번째 줄:
  
 
==크롤링==
 
==크롤링==
[[크롤링]](crawling) 또는 [[스크레이핑]](scraping) 은 웹 페이지를 가져와서 데이터를 추출해 내는 방법 또는, 인터넷에서 존재하는 데이터를 컴퓨터 프로그램을 통하여 자동화된 방법으로 웹에서 데이터를 수집하는 모든 작업을 말한다. 크롤링은 많은 사람들이 스크랩핑과 혼용하여 사용하고 있지만, 사실은 그 의미가 상이한 용어다. 크롤링은 데이터를 수집하고 분류하는 것을 의미하며, 주로 인터넷 상의 [[html]], 문서 등의 웹페이지를 수집해서 분류하고 저장하는 것을 뜻한다. 엄밀히 말해, 크롤링은 데이터의 수집 보다는 여러 웹페이지를 돌아다닌다는 뜻이 강하며, 데이터가 어디에 저장되어 있는지 위치에 대한 분류 작업이 크롤링의 주요 목적이라 할 수 있다.<ref name="삼성디스플레이 뉴스룸"> 삼성디스플레이 뉴스룸 공식 홈페이지 -〈[https://news.samsungdisplay.com/22907/ 원하는 정보만 수집한다! 크롤링과 빅데이터 분석 활용]〉, 2020-04-22 </ref> 이렇게 크롤링하는 소프트웨어를 크롤러라고 한다.세상에는 많은 양, 다양항 데이터가 존재한다. 그렇기 때문에 크롤링도 다양한 분야에서 활용할 수 있다. 어떠한 기업에서는 크롤링 담당 분서가 따로 존재한다고 한다. 예를들면 마케팅과 관련하여 개선점을 파악하고 싶을때 웹상에 존재하는 상품들의 후기, 평점등을 크롤링하여 문제점을 파악하고 개선점을 찾을 수 있다.<ref name="Jaaaa_mj "> Jaaaa_mj, 〈[https://jaaamj.tistory.com/101 크롤링 종류(정적 VS 동적)]〉, 《티스토리》, 2021-01-17 </ref>
+
[[크롤링]](crawling) 또는 [[스크레이핑]](scraping) 은 웹 페이지를 가져와서 데이터를 추출해 내는 방법 또는, 인터넷에서 존재하는 데이터를 컴퓨터 프로그램을 통하여 자동화된 방법으로 웹에서 데이터를 수집하는 모든 작업을 말한다. 크롤링은 많은 사람들이 스크랩핑과 혼용하여 사용하고 있지만, 사실은 그 의미가 상이한 용어다. 크롤링은 데이터를 수집하고 분류하는 것을 의미하며, 주로 인터넷 상의 [[html]], 문서 등의 웹페이지를 수집해서 분류하고 저장하는 것을 뜻한다. 엄밀히 말해, 크롤링은 데이터의 수집 보다는 여러 웹페이지를 돌아다닌다는 뜻이 강하며, 데이터가 어디에 저장되어 있는지 위치에 대한 분류 작업이 크롤링의 주요 목적이라 할 수 있다.<ref name="삼성디스플레이 뉴스룸"> 삼성디스플레이 뉴스룸 공식 홈페이지 -〈[https://news.samsungdisplay.com/22907/ 원하는 정보만 수집한다! 크롤링과 빅데이터 분석 활용]〉, 2020-04-22 </ref> 이렇게 크롤링하는 소프트웨어를 크롤러라고 한다.세상에는 많은 양, 다양항 데이터가 존재한다. 그렇기 때문에 크롤링도 다양한 분야에서 활용할 수 있다. 어떠한 기업에서는 크롤링 담당 분서가 따로 존재한다고 한다. 예를들면 마케팅과 관련하여 개선점을 파악하고 싶을때 웹상에 존재하는 상품들의 후기, 평점등을 크롤링하여 문제점을 파악하고 개선점을 찾을 수 있다.<ref name="Jaaaa_mj "> Jaaaa_mj, 〈[https://jaaamj.tistory.com/101 크롤링 종류(정적 VS 동적)]〉, 《티스토리》, 2021-01-17 </ref> 파싱은 프로그램 언어를 문법에 맞게 분석해 내는 것인데, 어떤 웹페이지의 데이터를 사용자가 원하는 형식, 즉 일정한 패턴으로 추출해 어떠한 정보를 만들어 내는 것을 의미한다. 어느 위치에 저장된 데이터에 접근을 했다면, 이 데이터를 원하는 형태로 가공하는 작업이 주요 목적이라고 생각하면 된다. 종합하여, 언급한 각각의 작업을 수행하는 프로그램을 크롤러, [[파서]](parser), [[스크래퍼]](scraper) 등으로 부른다. 여러 자료를 보면 크롤링, 스크랩핑 그리고 파싱은 인터넷에서 프로그램을 이용해 자료를 추출하는 작업을 의미하며, 종종 혼용해서 쓰는 경우가 많다. 전문 개발자가 아니라면 정확하게 구분 할 필요는 없지만, 기본적으로 다소 상이한 개념에 대한 이해 정도는 필요하다.<ref name="삼성디스플레이 뉴스룸"></ref>
  
 
==크롤링 종류==
 
==크롤링 종류==
53번째 줄: 53번째 줄:
 
;속도: 정적 크롤링의 속도는 빠르며, 동적 크롤링은 속도가 느리다.
 
;속도: 정적 크롤링의 속도는 빠르며, 동적 크롤링은 속도가 느리다.
 
;라이브러리: 정적 크롤링은 [[requests]], [[BeautifulSoup]]을 사용하며, 동적 크롤링은 [[selenium]], [[chromedriver]]를 사용한다.<ref name="Jaaaa_mj "></ref>
 
;라이브러리: 정적 크롤링은 [[requests]], [[BeautifulSoup]]을 사용하며, 동적 크롤링은 [[selenium]], [[chromedriver]]를 사용한다.<ref name="Jaaaa_mj "></ref>
 +
 +
==크롤링 대상==
 +
크롤링의 주요 대상은 다양한 형태로 존재하는 데이터이다. 데이터는 앞서 언급한 바와 같이, 데이터 생성 스타일에 따라, 정형, 반정형 그리고 비정형 데이터로 구분되기도 하지만, 데이터를 생산하는 주체에 따라 기업 혹은 기관/조직과 사용자가 생성하는 데이터로 분류할 수 있다. 조직이 생성하는 데이터는 언론이 제공하는 뉴스와 방송영상, 민간기업이 제공하는 제품관련 정보, 영화·음악·게임 등의 미디어 산업체가 생산하는 콘텐츠 형 데이터 등이 있다. 사용자에 의해 생성되는 데이터는 서비스와 제품 소비에 의해 자동적으로 만들어진 데이터(뉴스 기사를 읽은 횟수, 온라인 쇼핑 웹사이트 방문자 수 등)와 뉴스 댓글, 상품평, 메신저·[[블로그]]·[[온라인 카페]]·[[유튜브]]·SNS 내 활동에 의해 생산된 데이터를 포함한다. 이러한 데이터는 사용자 단말을 통하여 읽을 수 있는 데이터이므로, 크롤링이나 스크랩핑 방법을 사용하여 수집할 필요가 있다.
 +
 +
==크롤링 방법==
 +
크롤링을 하는 방법에는 크게 연구자가 직접 코드를 작성하는 경우와 데이터를 수집하고자 하는 사이트 혹은 회사에서 제공하는 [[API]](application programming interface)를 사용하는 방법이 있다. API라 함은 다양한 의미를 갖고 있지만, 크롤링의 경우에는 사용자에게 데이터를 쉽게 제공하기 위한 툴이라 할 수 있다. API를 사용하다 보면, 빠른 시간에 정제된 형태의 데이터를 수집할 수 있고, 데이터를 소유하고 있는 기업에서 제공하는 툴이기 때문에 데이터 사용에 따른 법적·윤리적 문제가 거의 없지만 최소한의 프로그래밍은 필요하다.직접 크롤링 명령어를 작성해서 데이터를 수집하는 경우는 크게, 데이터를 수집하려는 사이트에서 API를 제공하지 않는 경우, API를 제공하더라도 API를 통하여 원하는 데이터를 수집 할 수 없는 경우도 발생한다. 또한, 크롤링을 하고자 하는 정보가 웹페이지의 소스 코드에 담겨 있지 않는 경우에는 [[요소검사]](network inspection)이나 [[셀레니움]](selenium)과 같은 [[헤드리스 브라우저]](headless browser)를 사용할 수도 있다.<ref name="삼성디스플레이 뉴스룸"></ref>
  
 
{{각주}}
 
{{각주}}
59번째 줄: 65번째 줄:
 
* 〈[https://ko.wikipedia.org/wiki/%EC%9B%B9_%ED%81%AC%EB%A1%A4%EB%9F%AC 웹 크롤러]〉, 《위키백과》  
 
* 〈[https://ko.wikipedia.org/wiki/%EC%9B%B9_%ED%81%AC%EB%A1%A4%EB%9F%AC 웹 크롤러]〉, 《위키백과》  
 
* Jaaaa_mj, 〈[https://jaaamj.tistory.com/101 크롤링 종류(정적 VS 동적)]〉, 《티스토리》, 2021-01-17  
 
* Jaaaa_mj, 〈[https://jaaamj.tistory.com/101 크롤링 종류(정적 VS 동적)]〉, 《티스토리》, 2021-01-17  
 +
* 삼성디스플레이 뉴스룸 공식 홈페이지 -〈[https://news.samsungdisplay.com/22907/ 원하는 정보만 수집한다! 크롤링과 빅데이터 분석 활용]〉, 2020-04-22
  
 
== 같이 보기 ==
 
== 같이 보기 ==
  
 
{{솔루션|검토 필요}}
 
{{솔루션|검토 필요}}

2021년 7월 20일 (화) 17:35 판

웹크롤러(web crawler)는 조직적, 자동화된 방법으로 월드 와이드 웹을 탐색하는 컴퓨터 프로그램이다.[1]

개요

웹크롤러는 조직적, 자동화된 방법으로 월드 와이드 웹을 탐색하는 컴퓨터 프로그램으로, 구글(Google) 검색과 야후!(Yahoo) 검색의 최상위 검색 결과를 섞어넣는 메타검색 엔진이다. 웹크롤러는 또한 사용자에게 그림, 소리, 동영상, 뉴스, 옐로 페이지, 화이트 페이지의 검색 옵션을 제공한다. 웹크롤러는 인포스페이스의 등록 상표이다. 1994년 4월 20일에 가동에 들어갔으며 워싱턴(Washington) 대학교의 브라이언 핑커튼(Brian Pinkerton)에 의해 개발되었다. 웹 크롤러가 하는 작업을 웹 크롤링 혹은 스파이더링이라 부른다. 검색 엔진과 같은 여러 사이트에서는 데이터의 최신 상태 유지를 위해 웹 크롤링한다. 웹 크롤러는 대체로 방문한 사이트의 모든 페이지의 복사본을 생성하는 데 사용되며, 검색 엔진은 이렇게 생성된 페이지를 보다 빠른 검색을 위해 인덱싱한다. 또한 크롤러는 링크 체크나 HTML 코드 검증과 같은 웹 사이트의 자동 유지 관리 작업을 위해 사용되기도 하며, 자동 이메일 수집과 같은 웹 페이지의 특정 형태의 정보를 수집하는 데도 사용된다. 웹크롤러는 봇이나 소프트웨어 에이전트의 한 형태이다. 웹크롤러는 대개 시드(seeds)라고 불리는 URL 리스트에서부터 시작하는데, 페이지의 모든 하이퍼 링크를 인식하여 URL 리스트를 갱신한다. 갱신된 URL 리스트는 재귀적으로 다시 방문한다. 웹크롤러는 웹 스파이더, 앤트, 오토매틱 인덱서, 웹 스커터로도 부를 수 있다. 그 외에 (bots), (worms), 웹 로봇(web robot) 등으로도 부른다.[1]

예시

  • 빙봇
  • FAST Crawler
  • 구글봇
  • GM Crawl
  • PolyBot
  • RBSE
  • Swiftbot
  • WebFountain
  • WebRACE
  • 월드 와이드 웹 웜
  • Yahoo! Slurp[1]

오픈 소스 크롤러

  • Frontera
  • GNU Wget
  • GRUB
  • Heritrix
  • HTTrack
  • mnoGoSearch
  • news-please
  • 아파치 너치
  • 오픈 서치 서버
  • PHP-Crawler
  • Scrapy
  • Seeks
  • 스핑크스
  • 스톰크롤러
  • tkWWW Robot
  • Xapian
  • YaCy
  • Octoparse[1]

크롤링

크롤링(crawling) 또는 스크레이핑(scraping) 은 웹 페이지를 가져와서 데이터를 추출해 내는 방법 또는, 인터넷에서 존재하는 데이터를 컴퓨터 프로그램을 통하여 자동화된 방법으로 웹에서 데이터를 수집하는 모든 작업을 말한다. 크롤링은 많은 사람들이 스크랩핑과 혼용하여 사용하고 있지만, 사실은 그 의미가 상이한 용어다. 크롤링은 데이터를 수집하고 분류하는 것을 의미하며, 주로 인터넷 상의 html, 문서 등의 웹페이지를 수집해서 분류하고 저장하는 것을 뜻한다. 엄밀히 말해, 크롤링은 데이터의 수집 보다는 여러 웹페이지를 돌아다닌다는 뜻이 강하며, 데이터가 어디에 저장되어 있는지 위치에 대한 분류 작업이 크롤링의 주요 목적이라 할 수 있다.[2] 이렇게 크롤링하는 소프트웨어를 크롤러라고 한다.세상에는 많은 양, 다양항 데이터가 존재한다. 그렇기 때문에 크롤링도 다양한 분야에서 활용할 수 있다. 어떠한 기업에서는 크롤링 담당 분서가 따로 존재한다고 한다. 예를들면 마케팅과 관련하여 개선점을 파악하고 싶을때 웹상에 존재하는 상품들의 후기, 평점등을 크롤링하여 문제점을 파악하고 개선점을 찾을 수 있다.[3] 파싱은 프로그램 언어를 문법에 맞게 분석해 내는 것인데, 어떤 웹페이지의 데이터를 사용자가 원하는 형식, 즉 일정한 패턴으로 추출해 어떠한 정보를 만들어 내는 것을 의미한다. 어느 위치에 저장된 데이터에 접근을 했다면, 이 데이터를 원하는 형태로 가공하는 작업이 주요 목적이라고 생각하면 된다. 종합하여, 언급한 각각의 작업을 수행하는 프로그램을 크롤러, 파서(parser), 스크래퍼(scraper) 등으로 부른다. 여러 자료를 보면 크롤링, 스크랩핑 그리고 파싱은 인터넷에서 프로그램을 이용해 자료를 추출하는 작업을 의미하며, 종종 혼용해서 쓰는 경우가 많다. 전문 개발자가 아니라면 정확하게 구분 할 필요는 없지만, 기본적으로 다소 상이한 개념에 대한 이해 정도는 필요하다.[2]

크롤링 종류

정적 크롤링

정적 크롤링은 정적인 데이터를 수집하는 방법을 말한다. 정적인 데이터란 변하지 않는 데이터를 의미합니다. 즉 한 페이지 안에서 원하는 정보가 모두 드러날때 정적 데이터라고 할 수 있다. 예를 들면, 로또 로또 번호 7개를 크롤링 하고 싶다고 한다면 보이는 화면에서 그 값이 모두 나타나 있다. 그렇기 때문에 한 페이지 안에 원하는 정보가 모두 드러난 경우 인 정적 크롤링에 해당된다. 정적 크롤링은 한 페이지 내에서 모든 작업이 이루어지기 때문에 속도가 매우 빠르다는 장점을 가진다.[3]

동적 크롤링

동적 크롤링은 동적인 데이터를 수집하는 방법을 말한다. 동적인 데이터란 입력, 클릭, 로그인 등과 같이 페이지 이동이 있어야 보이는 데이터를 말한다. 정적크롤링 수집하는 속도가 느리다는 단점이 있지만 더 많은 정보를 수집할 수 있다는 장점이 있다. 예를 들어, 메일함에 있는 메일 제목데이터를 수집하고 싶다고 생각을 해봤을때, 그렇기 위해서는 로그인과정을 거친 후 메일함에 들어가야 하는 동적인 과정이 필요하다. 이러한 경우가 바로 동적 크롤링이다.[3]

동적 크롤링과 정적 크롤링 차이점

연속성
정적 크롤링은 주소를 통해 단발적으로 접근하지만, 동적 크롤링은 브라우저를 사용하여 연속적으로 접근한다.
수집 능력
정적 크롤링은 수집 데이터의 한계가 존재하지만, 동적 크롤링은 수집 데이터의 한계가 없다.
속도
정적 크롤링의 속도는 빠르며, 동적 크롤링은 속도가 느리다.
라이브러리
정적 크롤링은 requests, BeautifulSoup을 사용하며, 동적 크롤링은 selenium, chromedriver를 사용한다.[3]

크롤링 대상

크롤링의 주요 대상은 다양한 형태로 존재하는 데이터이다. 데이터는 앞서 언급한 바와 같이, 데이터 생성 스타일에 따라, 정형, 반정형 그리고 비정형 데이터로 구분되기도 하지만, 데이터를 생산하는 주체에 따라 기업 혹은 기관/조직과 사용자가 생성하는 데이터로 분류할 수 있다. 조직이 생성하는 데이터는 언론이 제공하는 뉴스와 방송영상, 민간기업이 제공하는 제품관련 정보, 영화·음악·게임 등의 미디어 산업체가 생산하는 콘텐츠 형 데이터 등이 있다. 사용자에 의해 생성되는 데이터는 서비스와 제품 소비에 의해 자동적으로 만들어진 데이터(뉴스 기사를 읽은 횟수, 온라인 쇼핑 웹사이트 방문자 수 등)와 뉴스 댓글, 상품평, 메신저·블로그·온라인 카페·유튜브·SNS 내 활동에 의해 생산된 데이터를 포함한다. 이러한 데이터는 사용자 단말을 통하여 읽을 수 있는 데이터이므로, 크롤링이나 스크랩핑 방법을 사용하여 수집할 필요가 있다.

크롤링 방법

크롤링을 하는 방법에는 크게 연구자가 직접 코드를 작성하는 경우와 데이터를 수집하고자 하는 사이트 혹은 회사에서 제공하는 API(application programming interface)를 사용하는 방법이 있다. API라 함은 다양한 의미를 갖고 있지만, 크롤링의 경우에는 사용자에게 데이터를 쉽게 제공하기 위한 툴이라 할 수 있다. API를 사용하다 보면, 빠른 시간에 정제된 형태의 데이터를 수집할 수 있고, 데이터를 소유하고 있는 기업에서 제공하는 툴이기 때문에 데이터 사용에 따른 법적·윤리적 문제가 거의 없지만 최소한의 프로그래밍은 필요하다.직접 크롤링 명령어를 작성해서 데이터를 수집하는 경우는 크게, 데이터를 수집하려는 사이트에서 API를 제공하지 않는 경우, API를 제공하더라도 API를 통하여 원하는 데이터를 수집 할 수 없는 경우도 발생한다. 또한, 크롤링을 하고자 하는 정보가 웹페이지의 소스 코드에 담겨 있지 않는 경우에는 요소검사(network inspection)이나 셀레니움(selenium)과 같은 헤드리스 브라우저(headless browser)를 사용할 수도 있다.[2]

각주

  1. 1.0 1.1 1.2 1.3 웹 크롤러〉, 《위키백과》
  2. 2.0 2.1 2.2 삼성디스플레이 뉴스룸 공식 홈페이지 -〈원하는 정보만 수집한다! 크롤링과 빅데이터 분석 활용〉, 2020-04-22
  3. 3.0 3.1 3.2 3.3 Jaaaa_mj, 〈크롤링 종류(정적 VS 동적)〉, 《티스토리》, 2021-01-17

참고자료

같이 보기

  검수요청.png검수요청.png 이 웹크롤러 문서는 솔루션에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.