KR20190131778A - 은닉 url에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템 - Google Patents

은닉 url에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템 Download PDF

Info

Publication number
KR20190131778A
KR20190131778A KR1020180056602A KR20180056602A KR20190131778A KR 20190131778 A KR20190131778 A KR 20190131778A KR 1020180056602 A KR1020180056602 A KR 1020180056602A KR 20180056602 A KR20180056602 A KR 20180056602A KR 20190131778 A KR20190131778 A KR 20190131778A
Authority
KR
South Korea
Prior art keywords
module
crawler
data
collection
web
Prior art date
Application number
KR1020180056602A
Other languages
English (en)
Other versions
KR102222287B1 (ko
Inventor
배성원
이현동
조대수
Original Assignee
동서대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 동서대학교 산학협력단 filed Critical 동서대학교 산학협력단
Priority to KR1020180056602A priority Critical patent/KR102222287B1/ko
Publication of KR20190131778A publication Critical patent/KR20190131778A/ko
Application granted granted Critical
Publication of KR102222287B1 publication Critical patent/KR102222287B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템을 제공한다. 이와 같은 본 발명에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템은 은닉된 URL주소 링크를 찾을 수 있고, 은닉된 URL주소에 포함된 웹 콘텐츠의 정형 및 비정형 데이터를 처리하는데 높은 속도를 보임으로써, 하이퍼링크로 연결된 많은 분야별 관련 웹사이트로부터 보다 정확한 데이터를 기반으로 빅데이터를 생성할 수 있고, 생성된 빅데이터를 기반으로 해당 분야에 대하여 사용자들이 요청하는 데이터에 대하여 보다 정확한 통계 및 데이터를 훨씬 신속하게 제공할 수 있는 효과가 있으며, 이를 기반으로 축적된 빅데이터를 활용하여 소비자들이 요구하는 최저가 쇼핑, 맞춤형 광고, 상품 추천 등에 이용되는 인공지능 시스템을 구축하는데 근간으로 활용될 수 있도록 별도의 캐스퍼(Casper) 서비스 모듈을 통해 은닉된 URL주소에 접근할 수 있도록 하여 해당 URL주소를 통해 접근한 웹 문서의 콘텐츠에 대하여 사용자가 크롤링하고자 하는 특정영역과 수집하고자 하는 데이터 타입에 대한 설정을 수행할 수 있는 확장프로그램을 통해 특정영역에서 정형 및 비정형 데이터에 대한 수집하고, 크롤링된 결과를 볼 수 있는 모니터링을 수행 할 수 있는 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템에 관한 것이다.

Description

은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템{Web Crawler System for Collecting a Structured and Unstructured Data in Hidden URL}
본 발명은 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템에 관한 것으로서, 더욱 상세하게는 웹 문서에 있는 은닉된 URL주소에 접근할 수 있도록 크롬과 같은 헤드리스 브라우즈(Headless Browser)환경에서 데이터 추출과 관련하여 Casper.js와 같은 유틸리티를 활용하여 은닉된 URL주소에 접근하여 웹 콘텐츠를 추출하며, 텍스트와 같은 정형 데이터뿐만아니라 오디오 또는 동영상과 같은 비정형 데이터를 수집할 수 있도록 확장 프로그램을 통해 사용자가 원하는 데이터형과 수집하고 싶은 영역을 설정하는 설정값을 통해 정형 및 비정형 데이터를 수집할 수 있는 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템에 관한 것이다.
최근 빅데이터를 활용한 최저가 쇼핑, 맞춤형 광고, 상품 추천 등 다양한 분야의 서비스와 접목되면서 빅데이터에 대한 중요성은 더욱 커지고 있다. 이로 인해 웹 사이트에 분포된 데이터를 자동으로 수집하는 웹 크롤러(Web Crawler)에 대한 중요성도 또한 높아지고 있다.
여기서, 웹 문서에 포함된 하이퍼링크를 통해 다른 웹 사이트에 접근하는 방식에 있어 웹 문서를 작성하는 HTML 언어에서 하이퍼링크는 A태그에 해당한다. A태그는 href 속성을 가지고 있는데 이 속성은 다른 웹사이트의 URL 주소를 가지고 있다. 이 URL 주소를 통해서 웹 크롤러는 웹 사이트에 접근을 하게 되는데 이에 몇 가지 문제점이 있다.
첫 번째 문제는 자바스크립트 함수를 사용하면 URL 주소를 은닉할 수 있기 때문에 은닉된 URL 주소에 대해서는 기존의 웹 크롤러는 해당 사이트에 접근하여 수집할 수 없게 된다. 그리고 두 번째 문제점은 기존의 웹 크롤러가 태그 및 텍스트와 같은 정형 데이터와 비디오, 오디오와 같은 비정형 데이터를 구분해서 수집하는데 있어 명확한 구분에 어려움이 존재한다.
웹 크롤러는 하이퍼링크로 웹 사이트들이 거미줄처럼 연결되어 있는 인터넷 환경에서 텍스트, 이미지, 동영상 등 웹 문서에 내포하고 있는 자료를 수집하고, 하이퍼링크를 통해 다른 웹 사이트에 접근하여 다시 자료를 수집하는 자동화 프로그램이다.
웹 크롤러는 조직적이고, 자동화된 방법으로 월드 와이드 웹을 탐색하는데, 웹 크롤러가 하는 작업을 웹 크롤링(web crawling) 혹은 스파이더링(spidering)이라 하며 봇이나 소프트웨어 에이전트의 한 형태로 이루어진다.
이러한 웹 크롤러는 크게 일반 웹 크롤러와 분산 웹 크롤러가 있다.
도 1은 종래 실시예에 따른 일반 웹 크롤러의 전체적 흐름을 나타내는 도면이다.
도 1에 도시된 바와 같이, 일반 웹 크롤러의 기본 동작은 URL Frontier 모듈에서 웹 문서에 포함된 URL주소를 가져와 http 프로토콜을 이용하여 해당 URL주소의 웹 페이지를 가져온다. 그리고 Fetch 모듈에서 임시 저장소에 웹 페이지를 저장하게 된다. 그럼 Parse 모듈에서 임시 저장소의 웹 페이지에서 텍스트와 링크를 추출하고, 텍스트는 Indexer에 보내고, 링크는 URL Frontier에 추가되어야 하는지에 대해 Content Seen모듈, URL Filter 모듈 및 Duplication URL Element 모듈을 거치면서 판단한다.
그러나 문제는 링크에서 은닉된 URL 주소의 경우에는 URL Frontier에 추가대상인 URL주소임에도 불구하고 은닉되어 있어 추가되지 못하는 문제점이 있다.
따라서 전 세계의 웹 문서를 전부를 일반 웹 크롤러로 크롤링 한다는 것은 사실상 불가능하기 때문에 분산 웹 크롤러를 사용해야만 한다. 분산 웹 크롤러는 크게 2가지로 나누어지는데, 하나는 구글에서 사용한 중앙 집중식(Centralized) 방식이고, 다른 하나는 Mercator나 다른 곳에서 사용한 P2P(peer to peer or Fully-Distributed) 방식이다
도 2는 종래 실시예에 따른 중앙 집중식 분산웹 크롤러 구조를 나타내는 도면이다.
도 2에 도시된 바와 같이, 중앙 집중식 분산 웹 크롤러는 URL Manager가 서버와 같은 역할을 하며, 크롤러가 클라이언트 역할을 하는 구조이다. 크롤러에서 문서를 다운로드 받고 OutLink URL주소를 추출하여 URL Manager에게 넘겨주면 URL Manager는 다운로드 받은 문서의 URL주소인지 검사하여 URL 주소의 중복을 제거한다. 즉 일반 웹 크롤러에서 URL 중복과 URL 관리를 하는 부분을 URL Manager가 대신해 주는 것이다.
도 3은 종래 실시예에 따른 P2P 방식 분산 웹 크롤러 구조를 나타내는 도면이다.
도 3에 도시된 바와 같이, P2P방식은 각 크롤러가 완전이 독립적인 구조를 가지고, 각각의 크롤러가 일반 웹 크롤러처럼 동작을 한다. 각각의 크롤러는 문서를 다운로드 받고 OutLink URL을 추출하고 URL 중복제거까지 모두 각각의 크롤러에서 독립적으로 동작한다.
이와 같이 동작하기 위해서 각각의 크롤러에서 관리하는 다운로드 받은 URL주소 목록은 서로 배타적이어야 한다. 만약 그렇지 않으면 서로 다른 크롤러에서 같은 문서를 다운로드 받는 현상이 발생하기 때문이다. 이러한 문제를 해결하는 방법으로 각각의 크롤러는 다운로드 받을 URL주소 목록을 서로 배타적으로 나눠서 관리한다. 즉, 자신이 다운로드 목록에 속하는 것만 관리하고, 나머지 URL주소는 다른 크롤러에게 넘겨 각각의 크롤러가 독립적으로 동작할 수 있게 된다.
종래 등록특허번호 제10-1153138호 클라이언트 기반 웹 크롤링 시스템 및 방법은 서버의 클라이언트의 분산 특성이 빠르고 정확한 웹 크롤링 데이터를 제공하는 데 이용되도록 서버의 웹 크롤러에 의해 수집된 정보는 크롤러의 데이터를 갱신하기 위해 서버의 클라이언트에 의해 검색된 데이터와 비교되고, 데이터 비교는 검색 엔진 결과 페이지를 통해 분산되어 있는 정보를 이용하여 달성되며, 데이터 검증은 웹 크롤러 데이터를 요약해 놓은, 서버로부터 나온 클라이언트 사전에 의해 달성되어 데이터 정확성을 향상시키기 위해 웹 크롤러의 스푸핑에 대항하는 수단을 제공함으로써 데이터 분석을 용이하게 해주는 분산 웹 크롤러를 사용하여 네트워킹된 시스템으로부터 정보를 획득하는 시스템 및 방법에 관한 것이다.
다만 종래의 특허는 분산 웹 크롤링을 위해 서버의 웹 크롤러에서 수집되는 정보를 웹 크롤러에 분산하기 위하여 데이터를 검증하여 정확성을 향상시키기 위해 웹 크룰러의 스푸핑에 대항하는 수단을 제공하여 데이터 분석을 용이하게 하는 것으로 은닉된 URL주소를 찾을 수 있는 데에는 한계가 있다.
도 4는 종래 실시예에 따른 웹 콘텐츠 추출시스템의 구성도이다.
도 4에 도시된 바와 같이, 웹 문서에 포함된 웹 콘텐츠를 추출하는 기술은 웹 문서로부터 정보 분석에 활용될 콘텐츠인 제목, 작성자, 게시일, 본문을 자동으로 추출하는 기능을 제공한다. 웹 콘텐츠 추출시스템은 콘텐츠를 추출하는 규칙을 자동 생산해 콘텐츠만을 추출하는 장치로 콘텐츠 추출 규칙을 자동 생성하는 규칙 생성기(Rule Generator), 주어진 웹문서에서 내비게이션 콘텐츠를 제거하는 내비게이션 콘텐츠 제거기(Navigation Content Eliminator),콘텐츠 추출 규칙 키워드 유사도 비교를 통해 콘텐츠를 추출하는 콘텐츠 추출기(Core Context Extractor)로 구성되어 있다.
종래 공개특허번호 제10-2018-0024360호 데이터 에이전트 컨테이너를 이용한 데이터 수집 방법 및 이의 시스템은 데이터 에이전트 컨테이너를 이용한 데이터 수집 방법 및 이의 시스템은 데이터 수집기; 상기 데이터 수집기를 제어하는 데이터 수집 제어기; 및 상기 데이터 수집기와 상기 데이터 수집 제어기를 서로 연결하는 제어 모니터링 채널;을 포함하고, 상기 데이터 수집 제어기는, 데이터 수집기 설치 및 제거 제어 모듈; 데이터 수집기 시작 및 종료 제어 모듈; 및 데이터 수집기 상태 모니터링 모듈;을 포함하는 데이터 에이전트 컨테이너를 이용한 데이터 수집 시스템을 제공한다.
그래나 종래의 기술은 데이터 수집기에서 웹크룰러를 이용하여 웹사이트를 통해 데이터를 수집을 수행하는 것으로 은닉된 URL주소를 찾아 검색할 수 없으며, 텍스트뿐만 아니라 웹 문서에 포함된 오디오, 비디오와 같은 비정형 데이터에 대하여 수집하는 기술이 없는 문제점이 있다.
대한민국 등록특허공보 등록번호 제10-1153138호 “클라이언트 기반 웹 크롤링 시스템 및 방법” 대한민국 공개특허공보 공개번호 제10-2018-0024360호 “데이터 에이전트 컨테이너를 이용한 데이터 수집 방법 및 이의 시스템“
따라서 본 발명은 이와 같은 종래 기술의 문제점을 개선하여, 무수히 많은 컴퓨터에 분산 저장되어 있는 문서를 수집하여 검색 대상의 색인으로 포함시키는 기술로서, 어느 부류의 기술을 얼마나 빨리 검색 대상에 포함시키냐하는 것이 우위를 결정하는 요소로서 최근 웹 검색의 중요 요소인 크롤링을 통해 웹 문서에 대하여 별도의 캐스퍼(Casper) 서비스 모듈을 통해 은닉된 URL주소에 접근할 수 있도록 하여 해당 URL주소를 통해 접근한 웹 문서의 콘텐츠에 대하여 사용자가 크롤링하고자 하는 특정영역과 수집하고자 하는 데이터 타입에 대한 설정을 수행할 수 있는 확장프로그램을 통해 특정영역에서 정형 및 비정형 데이터에 대한 수집하고, 크롤링된 결과를 볼 수 있는 모니터링을 수행 할 수 있는 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템을 제공하는 것을 목적으로 한다.
상술한 목적을 달성하기 위한 본 발명의 특징에 의하면, 본 발명은 사용자로부터 크롤링을 하고 싶은 특정영역 및 수집하는 데이터 타입을 입력받으며, 크롤링 결과를 사용자에게 출력하는 클라이언트(100);와 상기 클라이언트(100)로부터 수신된 특정영역과 데이터타입에 따라 크롤링을 수행하여 크롤링 결과를 저장모듈(300)에 저장하고, 사용자의 요청에 따라 크롤링 결과를 클라이언트(100)에 전송하는 웹서버(200); 및 상기 웹서버(200)을 통해 전송된 URL주소, 정형데이터와 비정형데이터를 저장하고, 웹서버(200)로부터 수신된 사용자의 요청에 따른 크롤링 결과 파일을 웹서버(200)에 전송하는 저장모듈(300);을 포함하는 구성으로 이루어지는 것을 특징으로 하는 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템을 제공한다.
이와 같은 본 발명에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 클라이언트(100)는 사용자로부터 크롤링 규칙과 추출할 수집영역을 설정받고, 사용자의 요청에 따른 출력할 크롤러 데이터의 종류를 입력받는 설정입력모듈(110);과 상기 설정입력모듈(110)을 통해 수신된 크롤링 규칙, 수집영역 및 메인URL주소와 출력에 필요한 사용자의 요청을 상기 웹서버(200)에 전송하고, 상기 웹서버(200)로부터 전송받은 정형 및 비정형의 크롤러 수집 데이터를 전송받는 클라이언트통신모듈(120);과 상기 설정입력모듈(110)로부터 수신받은 사용자의 요청에 따른 상기 클라이언트통신모듈(120)로부터 전송받은 정형 및 비정형의 크롤러 수집 데이터를 사용자에게 출력하는 출력모듈(130); 및 상기 설정입력모듈(110), 클라이언트통신모듈(120) 및 출력모듈(130)에서 발생하는 사용자로부터의 이벤트 및 상기 클라이언트(100)의 내부 이벤트를 처리하는 클라이언트제어모듈(140);를 포함하는 구성으로 이루어지는 것을 특징으로 한다.
이와 같은 본 발명에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 웹서버(200)는 상기 클라이언트통신모듈(120)을 통해 수신된 크롤링 규칙, 수집영역 및 메인URL주소를 수집엔진모듈(220)에 전송하고, 수신된 사용자의 요청에 따라 저장접속모듈(250)을 통해 전송받은 크롤링 데이터를 상기 클라이언트통신모듈(120)에 전송하는 서버통신모듈(210);과 상기 서버통신모듈(210)을 통해 수신된 크롤링 규칙 및 메인URL주소에 포함된 수집영역을 해석하여 크롤러모듈(230) 또는 캐스퍼모듈(240)을 구동하여 크롤링을 수행하고, 크롤링을 통해 수집된 데이터를 저장접속모듈(250)에 전송하는 수집엔진모듈(220);과 상기 수집엔진모듈(220)의 스케줄러모듈(222)에 의해 구동되어 메인URL주소, 크롤러 규칙 및 URL이 포함된 시드를 수신하여 크롤러 규칙에 정의된 데이터 타입에 따라 크롤링하는 크롤러모듈(230);과 상기 수집엔진모듈(220)의 스케줄러모듈(222)에 의해 구동되어 메인URL주소, 크롤러 규칙 및 XPath가 포함된 시드를 수신하여 크롤러 규칙에 정의된 데이터 타입에 따라 시드에 포함된 은닉된 URL주소를 해석하여 크롤링하는 캐스퍼모듈(240);과 상기 수집엔진모듈(220)로부터 전송된 URL주소와 정형데이터 및 비정형데이터를 상기 저장모듈(300)에 전송하고, 상기 클라이언트(100)의 요청에 따라 크롤링 결과 파일을 수신하여 상기 서버통신모듈(210)에 전송하는 저장접속모듈(250); 및 상기 웹서버(200)에서 발생할 수 있는 예외적인 이벤트를 처리하는 예외처리모듈(260);를 포함하는 구성으로 이루어지는 것을 특징으로 한다.
이와 같은 본 발명에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 수집엔진모듈(220)은 상기 서버통신모듈(210)로부터 전송받은 크롤링 규칙과 메인URL주소에 포함된 수집영역을 해석하여 수집영역에 포함된 시드를 작성하여 스케줄러모듈(222)에 전송하는 수집규칙모듈(221);과 상기 수집규칙모듈(221)에서 정의된 시드를 기준으로 크롤러모듈(230) 또는 캐스퍼모듈(240)을 구동시키고, 메인URL주소, 크롤러규칙 및 시드를 각각 전송하는 스케줄러모듈(222); 및 상기 스케줄러모듈(222)로부터 전송받은 파일을 캐스퍼모듈(240)에 전송하거나 상기 스케줄러모듈(222)로부터 전송받은 URL주소와 정형데이터 및 상기 크롤러모듈(230) 또는 캐스퍼모듈(240)로부터 크롤링한 결과 중 비정형데이터를 수신하여 저장접속모듈(250)에 전송하는 엔진파일모듈(223);를 포함하는 구성으로 이루어지는 것을 특징으로 한다.
이와 같은 본 발명에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 크롤러모듈(230)은 상기 스케줄러모듈(222)로부터 전달 받은 크롤러 규칙을 해석하여 크롤러수집모듈(232)에 크롤링해야 할 데이터의 종류를 결정하여 전송하는 크롤러규칙번역모듈(231);과 시드에 포함된 메인 URL에 포함된 URL주소들에 대하여 상기 크롤러규칙번역모듈(231)로부터 전송받은 데이터의 타입들을 크롤링하여 크롤링한 데이터를 URL 주소와 함께 스케줄러모듈(222) 또는 크롤러파일모듈(233)에 전송 후, 완료메시지를 스케줄러모듈(222)에 통지하는 크롤러수집모듈(232); 및 상기 크롤러수집모듈(232)로부터 수신받은 비정형데이터를 URL주소가 표시된 형태로 상기 엔진파일모듈(223)에 전송하는 크롤러파일모듈(233);를 포함하는 구성으로 이루어지는 것을 특징으로 한다.
이와 같은 본 발명에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 캐스퍼모듈(240)은 상기 스케줄러모듈(222)로부터 전달 받은 크롤러 규칙을 해석하여 캐스퍼수집모듈(242)에 크롤링해야 할 데이터의 타입을 결정하고, 시드의 XPath를 해석하여 은닉된 URL 주소를 해석하여 캐스퍼수집모듈(242)에 전송하는 캐스퍼규칙번역모듈(241);과 상기 캐스퍼규칙번역모듈(241)에 의해 해석된 은닉된 URL주소들에 대하여 데이터 타입별로 크롤링한 데이터를 URL 주소와 함께 스케줄러모듈(222) 또는 캐스퍼파일모듈(243)에 전송 후, 완료메시지를 스케줄러모듈(222)에 통지하는 캐스퍼수집모듈(242); 및 상기 캐스퍼수집모듈(242)로부터 수신받은 정형데이터 및 비정형데이터를 URL주소가 표시된 형태로 상기 엔진파일모듈(223)에 전송하는 캐스퍼파일모듈(243);를 포함하는 구성으로 이루어지는 것을 특징으로 한다.
본 발명에 의한 은닉 URL주소에 포함된 정형 및 비정형 데이터에 대한 수집을 위한 크롤러 시스템 및 이를 이용한 데이터 수집 방법에 의하면, 종래의 기존의 크롤러인 Node.js 기반의 웹 크롤러 모듈보다 은닉된 URL주소 링크를 찾을 수 있고, 은닉된 URL주소에 포함된 웹 콘텐츠의 정형 및 비정형 데이터를 처리하는데 높은 속도를 보임으로써, 하이퍼링크로 연결된 많은 분야별 관련 웹사이트로부터 보다 정확한 데이터를 기반으로 빅데이터를 생성할 수 있고, 생성된 빅데이터를 기반으로 해당 분야에 대하여 사용자들이 요청하는 데이터에 대하여 보다 정확한 통계 및 데이터를 훨씬 신속하게 제공할 수 있는 효과가 있으며, 이를 기반으로 축적된 빅데이터를 활용하여 소비자들이 요구하는 최저가 쇼핑, 맞춤형 광고, 상품 추천 등에 이용되는 인공지능 시스템을 구축하는데 근간으로 활용될 수 있는 장점이 있다.
도 1은 종래 실시예에 따른 일반 웹 크롤러의 전체적 흐름을 나타내는 도면;
도 2는 종래 실시예에 따른 중앙 집중식 분산웹 크롤러 구조를 나타내는 도면;
도 3은 종래 실시예에 따른 P2P 방식 분산 웹 크롤러 구조를 나타내는 도면;
도 4는 종래 실시예에 따른 웹 콘텐츠 추출시스템의 구성도;
도 5는 본 발명의 실시예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 구성도;
도 6은 본 발명의 실시예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 클라이언트에 대한 구성도;
도 7은 본 발명의 실시예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 설정입력모듈에 대한 예시도;
도 8은 본 발명의 실시예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 설정입력모듈에 대한 예시도;
도 9는 본 발명의 실시예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 웹서버에 대한 구성도;
도 10은 본 발명의 실시예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 수집엔진모듈에 대한 구성도;
도 11은 본 발명의 실시예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 크롤러모듈에 대한 구성도;
도 12는 본 발명의 실시예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 캐스퍼모듈에 대한 구성도;이다.
본 발명을 충분히 이해하기 위해서 본 발명의 바람직한 실시예를 첨부된 도면 도 1 내지 도 12에 의거하여 상세히 설명한다. 본 발명의 실시예는 여러 가지 형태로 변형될 수 있으며, 본 발명의 범위가 아래에서 상세히 설명하는 실시예로 한정되는 것으로 해석되어서는 안 된다. 본 실시예는 당업계에서 통상적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공 되는 것이다. 따라서 도면에서의 요소의 형상 등은 보다 명확한 설명을 강조하기 위해서 과장되어 표현될 수 있다. 각 도면에서 동일한 부재는 동일한 참조부호로 도시한 경우가 있음을 유의하여야 한다. 한편, 도면과 상세한 설명에서 클라이언트, 웹서버, 웹 크롤러 시스템 및 예외처리모듈 등 이 분야의 종사자들이 용이하게 알 수 있는 구성 및 작용에 대한 도시 및 언급은 간략히 하거나 생략하였다. 특히, 도면의 도시 및 상세한 설명에 있어서 본 발명의 기술적 특징과 직접적으로 연관되지 않는 요소의 구체적인 기술적 구성 및 작용에 대한 상세한 설명 및 도시는 생략하고, 본 발명과 관련되는 기술적 구성만을 간략하게 도시하거나 설명하였다.
이하, 도면을 참조하여 본 발명의 바람직한 실시 예를 상세히 설명한다.
도 5는 본 발명의 실시예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 구성도이다.
도 5에 도시된 바와 같이, 웹 크롤러 시스템은 클라이언트(100), 웹서버(200) 및 저장모듈(300)를 포함하는 구성으로 이루어진다.
도 6은 본 발명의 실시예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 클라이언트에 대한 구성도이다.
도 6에 도시된 바와 같이, 클라이언트(100)는 설정입력모듈(110), 클라이언트통신모듈(120), 출력모듈(130) 및 클라이언트제어모듈(140)을 포함하는 구성으로 이루어진다. 클라이언트(100)는 사용자로부터 크롤링을 하고 싶은 특정영역과 수집하는 데이터 타입을 입력받으며, 크롤링 결과를 사용자에게 출력한다.
도 7은 본 발명의 실시예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 설정입력모듈에 대한 예시도이다.
도 7에 도시된 바와 같이, 설정입력모듈(110)은 사용자로부터 크롤링 규칙과 추출할 수집영역을 설정받고, 사용자의 요청에 따른 출력할 크롤러 데이터의 종류를 입력받는다. 설정입력모듈(110)에서 크롤링 규칙을 정의하고, 수집 영역을 추출하는 것은 웹브라우저에서 제공하는 확장기능을 통해 구현한다.
확장기능은 웹브라우저의 기존 기능의 동작을 변경하거나 완전히 새로운 기능을 추가할 수 있도록 별도로 제공하는 웹 브라우저용 프로그램이다. 확장기능은 크롬(Chrome), 파이어폭스(Firefox), 마이크로소프트 에지(Edge), 및 오페라(Opera) 웹브라우저등에서 제공한다.
설정입력모듈(110)은 먼저 ①에 표시된 바와 같이, 크롤링 규칙을 정하기 위한 입력메뉴에서 사용자가 이미지, 텍스트, 동영상 등 크롤링 하고 싶은 데이터 타입을 체크박스에 체크하여 선택할 수 있다. 만약 선택하지 않으면 해당영역에 포함된 모든 데이터 타입을 가져올 수 있다.
설정입력모듈(110)에서 특정영역을 선택하지 않으면 표시된 웹 페이지 전체를 크롤링하게 되고, 특정영역을 선택하면 특정영역을 체크하면 ②에서와 같이 사용자인터페이스(User Interface, 이하 UI)가 나타나며, UI의 상단에 표시된 버튼을 누름으로서 특정 영역 추출 기능을 온/오프할 수 있다. 온으로 기능을 활성화하면 문서객체의 Mouse Up이벤트에 마우스 포인터가 가리키는 문서객체모델(Document Object Model, 이하 DOM)의 요소를 가져온다.
설정입력모듈(110)에서 ③과 같이, 마우스 포인터가 가리키는 DOM의 백그라운 칼라 속성을 수정하여 사용자가 어떤 DOM을 가리키는지 인식하여 마우스를 클릭하면 가져온 DOM요소를 저장한다. 그리고 ②의 UI에 DOM요소를 XPath로 변환하여 리스트로 나타낸다. 마지막으로 ①번의 하단 크롤링 버튼을 클릭하면 선택된 데이터 타입과 특정영역의 XPath 호스트 URL 데이터로 크롤링 규칙을 만들고 웹 서버로 전달한다.
③번은 마우스 포인터가 가리키는 DOM의 Back-ground-color 속성을 수정하여 사용자가 어떤 DOM을 가리키는지 인식할 수 있게 구현하였다. 마우스를 클릭하면 가져온 DOM 요소를 저장하며 ②번 UI에 DOM 요소를 XPath로 변환하여 리스트로 나타낸다.
도 8은 본 발명의 실시예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 설정입력모듈에 대한 예시도이다.
마지막으로 ①의 하단에 위치한 “크롤링” 버튼을 클릭하면 도 8에 도시된 바와 같이, 선택된 데이터 타입과 특정영역에 대한 XPath 호스트 URL 데이터로 크롤링 규칙 및 특정영역에 대한 파일이 생성되어 클라이언트통신모듈(120)로 전달한다. 크롤링 규칙 및 특정영역에 대한 파일은 Json구문으로 서술되며 data_type, specific_area, host_url 속성이 존재하며, data_type 속성은 타입 별 Boolean 값을 가지고, Default 값은 false로 설정되며, specific_area 속성은 사용자가 추출한 DOM의 XPath 구문으로 변환되어 추가가 된다.
설정입력모듈(110)은 웹서버(200)를 통해 크롤링하여 수집한 정형 및 비정형데이터에 대하여 전체 또는 원하는 데이터 타입을 형태를 요청하게 된다.
클라이언트통신모듈(120)은 상기 설정입력모듈(110)을 통해 수신된 크롤링 규칙, 수집영역 및 메인URL주소와 출력에 필요한 사용자의 요청을 웹서버(200)에 전송하고, 웹서버(200)로부터 전송받은 정형 및 비정형의 크롤러 수집 데이터를 전송받는다. 클라이언트통신모듈(120)은 웹서버(200)와 통신을 담당한다.
출력모듈(130)은 상기 설정입력모듈(110)로부터 수신받은 사용자의 요청에 따른 상기 클라이언트통신모듈(120)로부터 전송받은 정형 및 비정형의 크롤러 수집 데이터를 사용자에게 출력한다. 출력모듈(130)은 상기 클라이언트통신모듈(120)을 통해 웹서버(200)를 통해 크롤링한 결과를 사용자에게 출력한다.
클라이언트제어모듈(140)은 상기 설정입력모듈(110), 클라이언트통신모듈(120) 및 출력모듈(130)에서 발생하는 사용자로부터의 이벤트 및 클라이언트(100)의 내부 이벤트를 처리한다. 클라이언트제어모듈(140)은 상기 설정입력모듈(110)을 통해 사용자가 마우스를 이용하여 체크박스나 특정 버튼에 클릭하거나, 마우스의 이동 또는 드래그 등 다양한 사용자의 액션에 의한 이벤트를 처리하고, 클라이언트(100)의 모듈간에 발생하는 이벤트 등에 대한 구동을 제어한다.
도 9는 본 발명의 실시예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 웹서버에 대한 구성도이다.
도 9에 도시된 바와 같이, 웹서버(200)는 서버통신모듈(210), 수집엔진모듈(220), 크롤러모듈(230), 캐스퍼모듈(240), 저장접속모듈(250) 및 예외처리모듈(260)을 포함하는 구성으로 이루어진다. 웹서버(200)는 상기 클라이언트(100)로부터 수신된 특정영역과 데이터타입에 따라 크롤링을 수행하여 크롤링 결과를 저장모듈(300)에 저장하고, 사용자의 요청에 따라 크롤링 결과를 클라이언트(100)에 전송한다.
웹서버(200)는 싱글스레드(Single Thread) 기반으로 넌블로킹(Non-blocking) I/O를 지원하는 고성능 서버이지만 싱글스레드이기 때문에 다수의 웹 페이지를 크롤링하기에는 한계가 존재한다.
따라서 상기의 문제를 해결하기 위해서 클러스터(Cluster)를 활용한다. 클러스터는 Node.js의 모듈로서 웹서버(200)의 포트를 공유하는 다수의 프로세스를 생성하여 크롤러모듈(230) 또는 캐스퍼모듈(240)을 쓰레드로 생성하고 수집함으로써 속도의 한계를 해결할 수 있다.
서버통신모듈(210)은 상기 클라이언트통신모듈(120)을 통해 수신된 크롤링 규칙, 수집영역 및 메인URL주소를 수집엔진모듈(220)에 전송하고, 수신된 사용자의 요청에 따라 상기 저장접속모듈(250)을 통해 전송받은 크롤링 데이터를 상기 클라이언트통신모듈(120)에 전송한다. 서버통신모듈(210)은 클라이언트(100)와 통신을 담당한다.
도 10은 본 발명의 실시예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 수집엔진모듈에 대한 구성도이다.
도 10에 도시된 바와 같이, 수집엔진모듈(220)은 수집규칙모듈(221), 스케줄러모듈(222) 및 엔진파일모듈(223)을 포함하는 구성으로 이루어진다. 수집엔진모듈(220)은 상기 서버통신모듈(210)을 통해 수신된 크롤링 규칙 및 메인URL주소에 포함된 수집영역을 해석하여 크롤러모듈(230) 또는 캐스퍼모듈(240)을 구동하여 크롤링을 수행하고, 크롤링을 통해 수집된 데이터를 저장접속모듈(250)에 전송한다.
수집규칙모듈(221)은 상기 서버통신모듈(210)로부터 전송받은 크롤링 규칙과 메인URL주소에 포함된 수집영역을 해석하여 수집영역에 포함된 시드를 작성하여 스케줄러모듈(222)에 전송한다. 수집규칙모듈(221)은 전송받은 크롤링 규칙에서 수집할 데이터 타입을 정의한다.
수집규칙모듈(221)은 서버통신모듈(210)로부터 받은 메인URL주소에 포함된 수집영역에 기재된 URL주소 또는 XPath로 이루어진 목록인 시드를 생성한다. XPath(XML Path Language)는 W3C의 표준으로 확장 생성 언어의 문서의 구조를 통해 경로 위에 지정한 구문을 사용하여 항목을 배치하고 처리하는 방법을 기술하는 언어로서 은닉된 URL 주소를 포함하고 있다.
스케줄러모듈(222)은 상기 수집규칙모듈(221)에서 정의된 시드를 기준으로 크롤러모듈(230) 또는 캐스퍼모듈(240)을 구동시키고, 메인URL주소, 크롤러규칙 및 시드를 각각 전송한다. 스케줄러모듈(222)은 상기 수집규칙모듈(221)로부터 크롤링 규칙과 시드를 받아서 시드의 값이 URL인 경우 크롤러모듈(230)로 크롤링 규칙을 전달하여 크롤링을 수행한다. 스케줄러모듈(222)은 시드의 값이 XPath일 경우에는 캐스퍼모듈(240)로 크롤링 규칙을 전달하여 크롤링을 수행한다.
스케줄러모듈(222)은 시드의 값이 XPath인 경우 캐스퍼모듈(240)을 구동시킨다. 스케줄러모듈(222)은 엔진파일모듈(223)을 이용하여 메인URL주소, XPath가 포함된 시드 및 크롤링 규칙을 파일로 저장하여 캐스퍼모듈(240)에 전송할 수 있다. 이는 캐스퍼모듈(240)의 경우 메인 URL주소의 웹 페이지에서 링크태그의 URL을 가져오지 못하기 때문에 DOM 구조상에서 링크 태그의 위치경로를 XPath 구문으로 서술을 해서 캐스퍼 모듈로 보내야 하고 캐스퍼 모듈은 XPath 구문을 해석하여 링크 태그를 찾은 뒤 클릭 이벤트를 강제로 발생시켜서 크롤링 하고자 하는 URL로 접근을 할 수 있다.
따라서 스케줄러모듈(222)은 XPath로 이루어진 시드를 별도로 해석할 필요가 있기 때문에 이를 처리하기 위하여 파일의 형태로 전송하는 것이 타당하다.
엔진파일모듈(223)은 상기 스케줄러모듈(222)로부터 전송받은 파일을 캐스퍼모듈(240)에 전송하거나 상기 스케줄러모듈(222)로부터 전송받은 URL주소와 정형데이터 및 상기 크롤러모듈(230) 또는 캐스퍼모듈(240)로부터 크롤링한 결과 중 비정형데이터를 수신하여 저장접속모듈(250)에 전송한다.
엔진파일모듈(223)은 상기 스케줄러모듈(222)로부터 전송받은 URL주소와 정형데이터와 URL주소가 표시된 이미지, 음성 및 동영상과 같은 비정형 데이터에 해당하는 파일을 수신하거나 파일이 저장된 위치, 예를 들어 폴더와 파일의 명칭을 수신한다. 그리고 이를 저장접속모듈(250)에 전송한다.
도 11은 본 발명의 실시예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 크롤러모듈에 대한 구성도이다.
도 11에 도시된 바와 같이, 크롤러모듈(230)은 크롤러규칙번역모듈(231), 크롤러수집모듈(232) 및 크롤러파일모듈(233)을 포함하는 구성으로 이루어진다. 크롤러모듈(230)은 상기 수집엔진모듈(220)의 스케줄러모듈(222)에 의해 구동되어 메인URL주소, 크롤러 규칙 및 URL이 포함된 시드를 수신하여 크롤러 규칙에 정의된 데이터 타입에 따라 크롤링한다.
크롤러모듈(230)은 크롤러 규칙에 따라 수집한 DOM의 태그를 판별한다. DOM의 태그는 멀티미디어 데이터의 타입에 따라 다르다. 예를 들어 영상의 경우는 video 태그를 사용하고, 이미지의 경우는 img 태그를 사용하며, 음악의 경우는 audio 태그로 구분되어 태그에 기술된 멀티미디어 URL을 통해 다운을 받아서 정형 데이터인 텍스트를 제외한 비정형 데이터인 영상, 이미지, 음악은 별도의 파일로 저장되고 저장된 위치를 스케줄러모듈(222)에 전송한다.
크롤러규칙번역모듈(231)은 상기 스케줄러모듈(222)로부터 전달 받은 크롤러 규칙을 해석하여 크롤러수집모듈(232)에 크롤링해야 할 데이터의 종류를 결정하여 전송하는 모듈이다.
크롤러수집모듈(232)은 시드에 포함된 메인 URL에 포함된 URL주소들에 대하여 상기 크롤러규칙번역모듈(231)로부터 전송받은 데이터의 타입들을 크롤링하여 크롤링한 데이터를 URL 주소와 함께 스케줄러모듈(222) 또는 크롤러파일모듈(233)에 전송 후, 완료메시지를 스케줄러모듈(222)에 통지한다.
크롤러수집모듈(232)은 크롤링한 데이터 중에서 영상, 이미지, 음악 등의 비정형데이터를 크롤러파일모듈(233)에 전송한다. 그리고 크롤러수집모듈(232)은 크롤링이 완료되면 완료메시지와 함께 크롤링한 URL 주소와 텍스트와 같은 정형데이터를 상기 스케줄러모듈(222)에 전송한다.
크롤러파일모듈(233)은 상기 크롤러수집모듈(232)로부터 수신받은 비정형데이터를 URL주소가 표시된 형태로 상기 엔진파일모듈(223)에 전송한다. 크롤러파일모듈(233)은 비정형데이터를 파일로 전송하거나 파일이 저장된 위치에 대한 정보를 전송할 수 있다.
도 12는 본 발명의 실시예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 캐스퍼모듈에 대한 구성도이다.
도 12에 도시된 바와 같이, 캐스퍼모듈(240)은 캐스퍼규칙번역모듈(241), 캐스퍼수집모듈(242) 및 캐스퍼파일모듈(243)을 포함하는 구성으로 이루어진다. 캐스퍼모듈(240)은 상기 수집엔진모듈(220)의 스케줄러모듈(222)에 의해 구동되어 메인URL주소, 크롤러 규칙 및 XPath가 포함된 시드를 수신하여 크롤러 규칙에 정의된 데이터 타입에 따라 시드에 포함된 은닉된 URL주소를 해석하여 크롤링한다.
캐스퍼모듈(240)은 구동 후 상기 캐스퍼파일모듈(243)을 통해 엔진파일모듈(223)로부터 수신된 파일을 읽어 들여, 시드에 포함된 XPath 기반의 은닉된 URL주소를 해석하고, 해석된 URL 주소에서 크롤러 규칙에 따른 데이터 타입을 해석하여 정형 데이터 및 비정형 테이터를 크롤링할 수 있다.
캐스퍼규칙번역모듈(241)은 상기 스케줄러모듈(222)로부터 전달 받은 크롤러 규칙을 해석하여 캐스퍼수집모듈(242)에 크롤링해야 할 데이터의 타입을 결정하고, 시드의 XPath를 해석하여 은닉된 URL 주소를 해석하여 캐스퍼수집모듈(242)에 전송하는 모듈이다.
캐스퍼수집모듈(242)은 상기 캐스퍼규칙번역모듈(241)에 의해 해석된 은닉된 URL주소들에 대하여 데이터 타입별로 크롤링한 데이터를 URL 주소와 함께 스케줄러모듈(222) 또는 캐스퍼파일모듈(243)에 전송 후, 완료메시지를 스케줄러모듈(222)에 통지한다.
캐스퍼수집모듈(242)은 크롤링한 데이터인 정형데이터와 비정형 데이터를 크롤링한 URL 주소와 함께 캐스퍼파일모듈(243)에 전송하고, 크롤링이 완료되면 완료메시지를 상기 스케줄러모듈(222)에 전송한다. 캐스퍼수집모듈(242)은 프로그램 구현상 파일로 밖에 데이터를 전송할 수 없기 때문에 정형데이터도 파일로 전송을 합니다. 효율적인 것으로 따진다면 크롤러수집모듈처럼 파일로 전송 하는 것이 아닌 메모리를 통해서 전달하는 것이 효율적이다.
캐스퍼파일모듈(243)은 상기 캐스퍼수집모듈(242)로부터 수신받은 정형데이터 및 비정형데이터를 URL주소가 표시된 형태로 상기 엔진파일모듈(223)에 전송한다. 캐스퍼파일모듈(243)은 크롤링 한 데이터를 파일로 전송하거나 파일이 저장된 위치에 대한 정보를 전송할 수 있다.
저장접속모듈(250)은 상기 수집엔진모듈(220)의 엔진파일모듈(223)로부터 전송된 URL주소와 정형데이터 및 비정형데이터를 상기 저장모듈(300)에 전송하고, 상기 클라이언트(100)의 요청에 따라 크롤링 결과 파일을 수신하여 상기 서버통신모듈(210)에 전송한다. 저장접속모듈(250)은 메인 URL에 포함된 은닉되었거나 은닉되지 않았던 URL주소별로 크롤링한 정형데이터 및 비정형데이터를 저장모듈(300)에 저장할 수 있도록 전송한다.
예외처리모듈(260)은 웹서버(200)에서 발생할 수 있는 예외적인 이벤트를 처리한다. 예외처리모듈(260)은 크롤러모듈(230)이나 캐스퍼모듈(240)이 구동하지 않거나 저장접속모듈(250)에서 저장모듈(300)과 접속이 안되는 등 다양한 예외적인 이벤트가 발생하면 이에 대하여 사용자가 확인할 수 있도록 메시지를 생성하여 서버통신모듈(210)을 통해 사용자에게 통지한다.
저장모듈(300)은 상기 웹서버(200)을 통해 전송된 URL주소, 정형데이터와 비정형데이터를 저장하고, 웹서버(200)로부터 수신된 사용자의 요청에 따른 크롤링 결과 파일을 웹서버(200)에 전송한다. 저장모듈(300)은 데이터베이스의 형태로 이루어지는 것이 일반적이나 URL 주소와 URL 주소별 크롤링한 정형 데이터 및 비정형 데이터를 파일의 형태로 저장할 수 있다.
상술한 바와 같은, 본 발명의 실시 예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 바람직한 실시예에 대하여 상기한 설명 및 도면에 따라 도시하였지만, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 예를 들어 설명한 것에 불과하며, 본 발명의 범위를 한정하고자 하는 것은 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 다른 변형 예들과 같이 다양한 변화 및 변경이 가능하다는 것을 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명할 것이다.
100 : 클라이언트 110 : 설정입력모듈
120 : 클라이언트통신모듈 130 : 출력모듈
140 : 클라이언트제어모듈 200 : 웹서버
210 : 서버통신모듈 220 : 수집엔진모듈
221 : 수집규칙모듈 222 : 스케줄러모듈
223 : 엔진파일모듈 230 : 크롤러모듈
231 : 크롤러규칙번역모듈 232 : 크롤러수집모듈
233 : 크롤러파일모듈 240 : 캐스퍼모듈
241 : 캐스퍼규칙번역모듈 242 : 캐스퍼수집모듈
243 : 캐스퍼파일모듈 250 : 저장접속모듈
260 : 예외처리모듈 300 : 저장모듈

Claims (7)

  1. 사용자로부터 크롤링을 하고 싶은 특정영역 및 수집하는 데이터 타입을 입력받으며, 크롤링 결과를 사용자에게 출력하는 클라이언트(100);
    상기 클라이언트(100)로부터 수신된 특정영역과 데이터타입에 따라 크롤링을 수행하여 크롤링 결과를 저장모듈(300)에 저장하고, 사용자의 요청에 따라 크롤링 결과를 클라이언트(100)에 전송하는 웹서버(200); 및
    상기 웹서버(200)을 통해 전송된 URL주소, 정형데이터와 비정형데이터를 저장하고, 웹서버(200)로부터 수신된 사용자의 요청에 따른 크롤링 결과 파일을 웹서버(200)에 전송하는 저장모듈(300);을 포함하는 구성으로 이루어지는 것을 특징으로 하는 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템.
  2. 제 1 항에 있어서,
    상기 클라이언트(100)는,
    사용자로부터 크롤링 규칙과 추출할 수집영역을 설정받고, 사용자의 요청에 따른 출력할 크롤러 데이터의 종류를 입력받는 설정입력모듈(110);
    상기 설정입력모듈(110)을 통해 수신된 크롤링 규칙, 수집영역 및 메인URL주소와 출력에 필요한 사용자의 요청을 상기 웹서버(200)에 전송하고, 상기 웹서버(200)로부터 전송받은 정형 및 비정형의 크롤러 수집 데이터를 전송받는 클라이언트통신모듈(120);
    상기 설정입력모듈(110)로부터 수신받은 사용자의 요청에 따른 상기 클라이언트통신모듈(120)로부터 전송받은 정형 및 비정형의 크롤러 수집 데이터를 사용자에게 출력하는 출력모듈(130); 및
    상기 설정입력모듈(110), 클라이언트통신모듈(120) 및 출력모듈(130)에서 발생하는 사용자로부터의 이벤트 및 상기 클라이언트(100)의 내부 이벤트를 처리하는 클라이언트제어모듈(140);를 포함하는 구성으로 이루어지는 것을 특징으로 하는 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 웹서버(200)는,
    상기 클라이언트통신모듈(120)을 통해 수신된 크롤링 규칙, 수집영역 및 메인URL주소를 수집엔진모듈(220)에 전송하고, 수신된 사용자의 요청에 따라 저장접속모듈(250)을 통해 전송받은 크롤링 데이터를 상기 클라이언트통신모듈(120)에 전송하는 서버통신모듈(210);
    상기 서버통신모듈(210)을 통해 수신된 크롤링 규칙 및 메인URL주소에 포함된 수집영역을 해석하여 크롤러모듈(230) 또는 캐스퍼모듈(240)을 구동하여 크롤링을 수행하고, 크롤링을 통해 수집된 데이터를 저장접속모듈(250)에 전송하는 수집엔진모듈(220);
    상기 수집엔진모듈(220)의 스케줄러모듈(222)에 의해 구동되어 메인URL주소, 크롤러 규칙 및 URL이 포함된 시드를 수신하여 크롤러 규칙에 정의된 데이터 타입에 따라 크롤링하는 크롤러모듈(230);
    상기 수집엔진모듈(220)의 스케줄러모듈(222)에 의해 구동되어 메인URL주소, 크롤러 규칙 및 XPath가 포함된 시드를 수신하여 크롤러 규칙에 정의된 데이터 타입에 따라 시드에 포함된 은닉된 URL주소를 해석하여 크롤링하는 캐스퍼모듈(240);
    상기 수집엔진모듈(220)로부터 전송된 URL주소와 정형데이터 및 비정형데이터를 상기 저장모듈(300)에 전송하고, 상기 클라이언트(100)의 요청에 따라 크롤링 결과 파일을 수신하여 상기 서버통신모듈(210)에 전송하는 저장접속모듈(250); 및
    상기 웹서버(200)에서 발생할 수 있는 예외적인 이벤트를 처리하는 예외처리모듈(260);를 포함하는 구성으로 이루어지는 것을 특징으로 하는 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템.
  4. 제 3 항에 있어서,
    상기 수집엔진모듈(220)은,
    상기 서버통신모듈(210)로부터 전송받은 크롤링 규칙과 메인URL주소에 포함된 수집영역을 해석하여 수집영역에 포함된 시드를 작성하여 스케줄러모듈(222)에 전송하는 수집규칙모듈(221);
    상기 수집규칙모듈(221)에서 정의된 시드를 기준으로 크롤러모듈(230) 또는 캐스퍼모듈(240)을 구동시키고, 메인URL주소, 크롤러규칙 및 시드를 각각 전송하는 스케줄러모듈(222); 및
    상기 스케줄러모듈(222)로부터 전송받은 파일을 캐스퍼모듈(240)에 전송하거나 상기 스케줄러모듈(222)로부터 전송받은 URL주소와 정형데이터 및 상기 크롤러모듈(230) 또는 캐스퍼모듈(240)로부터 크롤링한 결과 중 비정형데이터를 수신하여 저장접속모듈(250)에 전송하는 엔진파일모듈(223);를 포함하는 구성으로 이루어지는 것을 특징으로 하는 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템.
  5. 제 3 항 또는 제 4 항에 있어서,
    상기 크롤러모듈(230)은,
    상기 스케줄러모듈(222)로부터 전달 받은 크롤러 규칙을 해석하여 크롤러수집모듈(232)에 크롤링해야 할 데이터의 종류를 결정하여 전송하는 크롤러규칙번역모듈(231);
    시드에 포함된 메인 URL에 포함된 URL주소들에 대하여 상기 크롤러규칙번역모듈(231)로부터 전송받은 데이터의 타입들을 크롤링하여 크롤링한 데이터를 URL 주소와 함께 스케줄러모듈(222) 또는 크롤러파일모듈(233)에 전송 후, 완료메시지를 스케줄러모듈(222)에 통지하는 크롤러수집모듈(232); 및
    상기 크롤러수집모듈(232)로부터 수신받은 비정형데이터를 URL주소가 표시된 형태로 상기 엔진파일모듈(223)에 전송하는 크롤러파일모듈(233);을 포함하는 구성으로 이루어지는 것을 특징으로 하는 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템.
  6. 제 3 항 또는 제 4 항에 있어서,
    상기 캐스퍼모듈(240)은,
    상기 스케줄러모듈(222)로부터 전달 받은 크롤러 규칙을 해석하여 캐스퍼수집모듈(242)에 크롤링해야 할 데이터의 타입을 결정하고, 시드의 XPath를 해석하여 은닉된 URL 주소를 해석하여 캐스퍼수집모듈(242)에 전송하는 캐스퍼규칙번역모듈(241);
    상기 캐스퍼규칙번역모듈(241)에 의해 해석된 은닉된 URL주소들에 대하여 데이터 타입별로 크롤링한 데이터를 URL 주소와 함께 스케줄러모듈(222) 또는 캐스퍼파일모듈(243)에 전송 후, 완료메시지를 스케줄러모듈(222)에 통지하는 캐스퍼수집모듈(242); 및
    상기 캐스퍼수집모듈(242)로부터 수신받은 정형데이터 및 비정형데이터를 URL주소가 표시된 형태로 상기 엔진파일모듈(223)에 전송하는 캐스퍼파일모듈(243);를 포함하는 구성으로 이루어지는 것을 특징으로 하는 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템.
  7. 제 4 항에 있어서,
    상기 스케줄러모듈(222)은 엔진파일모듈(223)을 이용하여 메인URL주소, XPath가 포함된 시드 및 크롤링 규칙을 파일로 저장하여 캐스퍼모듈(240)에 전송하는 것을 특징으로 하는 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템.
KR1020180056602A 2018-05-17 2018-05-17 은닉 url에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템 KR102222287B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180056602A KR102222287B1 (ko) 2018-05-17 2018-05-17 은닉 url에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180056602A KR102222287B1 (ko) 2018-05-17 2018-05-17 은닉 url에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템

Publications (2)

Publication Number Publication Date
KR20190131778A true KR20190131778A (ko) 2019-11-27
KR102222287B1 KR102222287B1 (ko) 2021-03-02

Family

ID=68729994

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180056602A KR102222287B1 (ko) 2018-05-17 2018-05-17 은닉 url에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템

Country Status (1)

Country Link
KR (1) KR102222287B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111767482A (zh) * 2020-05-21 2020-10-13 中国地质大学(武汉) 一种聚焦网络爬虫自适应爬取方法
CN112363953A (zh) * 2020-12-09 2021-02-12 中材邦业(杭州)智能技术有限公司 基于爬虫技术和规则引擎的接口测试用例生成方法及系统
CN113392297A (zh) * 2020-03-12 2021-09-14 上海云盾信息技术有限公司 一种爬取数据的方法、系统及设备
KR102486874B1 (ko) * 2022-10-04 2023-01-10 주식회사 두들린 컴퓨팅 장치에 의하여 구직 또는 채용을 위한 데이터의 수집을 보조하는 방법 및 그 장치

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102231762B1 (ko) * 2020-12-29 2021-03-24 (주)케이엔랩 분산 웹 크롤링 방법, 분산 웹 크롤링 시스템, 이를 위한 컴퓨터 프로그램
KR20220163595A (ko) 2021-06-03 2022-12-12 (주)해나소프트 버추얼 봇을 활용한 시나리오 기반의 빅데이터 콜렉팅 시스템

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101153138B1 (ko) 2003-09-25 2012-06-04 마이크로소프트 코포레이션 클라이언트 기반 웹 크롤링 시스템 및 방법
KR101665649B1 (ko) * 2015-05-12 2016-10-12 주식회사 엘지씨엔에스 소셜 미디어 데이터 분석 시스템 및 이를 이용한 소셜 미디어 데이터 분석 방법
KR20180024360A (ko) 2016-08-30 2018-03-08 디포커스 (주) 데이터 에이전트 컨테이너를 이용한 데이터 수집 방법 및 이의 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101153138B1 (ko) 2003-09-25 2012-06-04 마이크로소프트 코포레이션 클라이언트 기반 웹 크롤링 시스템 및 방법
KR101665649B1 (ko) * 2015-05-12 2016-10-12 주식회사 엘지씨엔에스 소셜 미디어 데이터 분석 시스템 및 이를 이용한 소셜 미디어 데이터 분석 방법
KR20180024360A (ko) 2016-08-30 2018-03-08 디포커스 (주) 데이터 에이전트 컨테이너를 이용한 데이터 수집 방법 및 이의 시스템

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113392297A (zh) * 2020-03-12 2021-09-14 上海云盾信息技术有限公司 一种爬取数据的方法、系统及设备
CN111767482A (zh) * 2020-05-21 2020-10-13 中国地质大学(武汉) 一种聚焦网络爬虫自适应爬取方法
CN111767482B (zh) * 2020-05-21 2023-06-06 中国地质大学(武汉) 一种聚焦网络爬虫自适应爬取方法
CN112363953A (zh) * 2020-12-09 2021-02-12 中材邦业(杭州)智能技术有限公司 基于爬虫技术和规则引擎的接口测试用例生成方法及系统
CN112363953B (zh) * 2020-12-09 2023-12-05 中材邦业(杭州)智能技术有限公司 基于爬虫技术和规则引擎的接口测试用例生成方法及系统
KR102486874B1 (ko) * 2022-10-04 2023-01-10 주식회사 두들린 컴퓨팅 장치에 의하여 구직 또는 채용을 위한 데이터의 수집을 보조하는 방법 및 그 장치

Also Published As

Publication number Publication date
KR102222287B1 (ko) 2021-03-02

Similar Documents

Publication Publication Date Title
KR102222287B1 (ko) 은닉 url에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템
Elgazzar et al. Clustering wsdl documents to bootstrap the discovery of web services
Hogue et al. Thresher: automating the unwrapping of semantic content from the world wide web
EP2057557B1 (en) Joint optimization of wrapper generation and template detection
JP5458182B2 (ja) 高度な検索結果ページコンテンツを提供するためのシステム及び方法
US20140052778A1 (en) Method and apparatus for mapping a site on a wide area network
US7730395B2 (en) Virtual tags and the process of virtual tagging
US20020013792A1 (en) Virtual tags and the process of virtual tagging
US20060212446A1 (en) Method and system for assessing relevant properties of work contexts for use by information services
US10216716B2 (en) Method and system for electronic resource annotation including proposing tags
EP2107475A1 (en) Electronic resource anotation
WO2008157322A1 (en) Displaying content on a mobile device
US9454535B2 (en) Topical mapping
CN101655862A (zh) 信息对象搜索的方法和装置
CN1404590A (zh) 元数据分类和信息入口的创建方法
Vording Harvesting unstructured data in heterogenous business environments; exploring modern web scraping technologies
Bae et al. Design and implementation of a web crawler system for collection of structured and unstructured data
Glover et al. Integrating device independence and user profiles on the web
KR100667917B1 (ko) 웹사이트 검색 서비스 제공 방법 및 그 시스템
Emamdadi et al. A focused linked data crawler based on HTML link analysis
Fan et al. Novel of Web search strategy based on Web page block granularity analysis algorithm and correlation calculation model
KR100871470B1 (ko) 색인 데이터를 구축하기 위한 검색 시스템 및 이를 위한 방법
Yan et al. Design and Development of an Intelligent Network Crawler System
KR20040100857A (ko) 검색 시스템에서의 데이터베이스 작성 방법 및 작성된데이터베이스를 포함하는 검색 시스템
Pardakhe et al. Enhancement of web search engine results using keyword frequency based ranking

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL NUMBER: 2020101000196; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20200120

Effective date: 20210122

GRNO Decision to grant (after opposition)
GRNT Written decision to grant