카테고리 없음

인공지능 2일차 빅데이터에서 크롤링이란?

엘라스틱서치 2017. 12. 24. 16:21

안녕하세요,

 

인공지능 전문가 주노플로입니다.

 

크롤링이란? 무엇일까요?

 

크롤링의 사전적 정의는 무수히 많은 컴퓨터에 분산 저장되어 있는 문서를 수집하여 검색 대상의 색인으로 포함시키는 기술로 되었있습니다.

 

이 기술을 실현할 떄, 어느 부류의 기술을 얼마나 빨리 검색 대상에 포함시키냐 하는 것이 우위를 결정하는 요소로서 최근 웹 검색의 중요성에 따라 발전되고 있다고 하는데

 

우리 한번 크롤링에 대해서 알아볼까요?

 

정보기술의 발달로 쉽게 사람들이 정보를 웹에 올릴 수 있게 되면서 방대한 정보의 양에 쉽게 접근할 수 있게 되었습니다.

 

 

아래 사진의 예처럼 크롤링 기술을 통한 XML 파싱으로 정보를 각 사이트 별로 긁어오게 되는것인데요

즉 다시 말하자면

웹 크롤링은

컴퓨터 소프트웨어 기술로 다수의 웹 사이트들에서 원하는 정보를 추출하는 것을 의미합니다.

("Web scraping is a computer software technique of extracting information from websites.")

 

이때 한사이트의 한 페이지만 방문하는 것이 아닙니다!

 

 그 페이지에 링크되어 있는 또 다른 페이지를 계속 링크를 타서 쭈욱쭈욱 차례대로 방문하고 이처럼 링크를 따라 웹을 돌아다니는 모습이 마치 거미와 비슷하다고

해서 스파이더라고 부르기도 합니다.

 

엄청난 분량의 웹문서를 사람이 일일 구별해서 모으는 일은 불가능하기에 

웹 문서 검색에서는 크롤링 기술을 통해 자동으로 수행해 줍니다.

 

 

 

크롤링 또는 스크래이핑 방법은?

 

  • 크롤링 하고 싶은 웹 페이지에 request를 보내 결과 html을 응답 받는다.
  • 응답 받은 html을 파싱한다.
  • 파싱된 정보 중, 필요한 정보만 추출해서 정형화된 DB에 넣는다

 

 

자그럼 이제 크롤링의 예를 하나 들어보죠.

 

 

(www.Gmarket.co.kr)에서 2017년 12월 24일 12:23분의 판매 순위 차트가 필요하다고 가정해봅시다.

 

대부분의 사람들은 해당 사이트에 들어가서 일일이 확인을 하고 엑셀에 값을 수동 입력하고 정리해서 상사에게 보고합니다.


하지만 스마트한 우리는?? 수동으로 하지 않고

 

크롤링이라는 기술을 활용해야합니다.

 

이렇게 크롤링된 데이타(등록일/판매 제목/카테고리/판매 순위 )들을 !! 상사에게 보고할 뿐만 아니라 다른 곳에 활용하려면, 이를 DB 형태로 정형화된 상태로 저장해놓을 필요가 있습니다.

자그럼 그 방안을 하나씩 알아 볼까요? 

 

 

자 다음 처럼 웹은 기본적으로 다음 처럼 HTML 소스로 보여집니다.

 

 

 

저희가 위처럼 HTML 결과물을 눈으로 볼 수 있다면 해당 정보가 HTML 형태로 어떻게 구성되어 있는지도 확인할 수 있습니다.

 

 

 

위처럼 페이지소스 보기를 한다든지

 

아니면 F12를 통한 '개발자 검사'로 말이죠.

 

 

 

 

 

위에 나타난 소스들은 보통 개발자들이 어떤 정형화된 형태로 작성한 결과물입니다.

그렇기 때문에 HTML 소스가 보여지는 규칙이 있습니다.

 

이런 규칙을 분석해서 우리가 원하는 정보들만 뽑아서

 

정형화된 DB(오라클, Mysql DB) 에 넣는 기술이

 

지금부터 우리가 해보려는 웹 크롤링 작업입니다.

 

잎으로 한국에서도 이기술이 빅데이터나 인공지능을 관련하여, 쓸일?이 아주 많아 질것이므로

빨리 습득할수 있도록, 계속 쭉쭉 포스팅 해나가겠습니다.

 

그 중 가장 많이 나오는 것이 파이썬으로 크롤링 하는 방법은 다음 2탄으로 준비하겠습니다.

.