KR102222287B1 - Web Crawler System for Collecting a Structured and Unstructured Data in Hidden URL - Google Patents

Web Crawler System for Collecting a Structured and Unstructured Data in Hidden URL Download PDF

Info

Publication number
KR102222287B1
KR102222287B1 KR1020180056602A KR20180056602A KR102222287B1 KR 102222287 B1 KR102222287 B1 KR 102222287B1 KR 1020180056602 A KR1020180056602 A KR 1020180056602A KR 20180056602 A KR20180056602 A KR 20180056602A KR 102222287 B1 KR102222287 B1 KR 102222287B1
Authority
KR
South Korea
Prior art keywords
module
data
crawler
collection
rule
Prior art date
Application number
KR1020180056602A
Other languages
Korean (ko)
Other versions
KR20190131778A (en
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/en
Publication of KR20190131778A publication Critical patent/KR20190131778A/en
Application granted granted Critical
Publication of KR102222287B1 publication Critical patent/KR102222287B1/en

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]

Abstract

본 발명은 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템을 제공한다. 이와 같은 본 발명에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템은 은닉된 URL주소 링크를 찾을 수 있고, 은닉된 URL주소에 포함된 웹 콘텐츠의 정형 및 비정형 데이터를 처리하는데 높은 속도를 보임으로써, 하이퍼링크로 연결된 많은 분야별 관련 웹사이트로부터 보다 정확한 데이터를 기반으로 빅데이터를 생성할 수 있고, 생성된 빅데이터를 기반으로 해당 분야에 대하여 사용자들이 요청하는 데이터에 대하여 보다 정확한 통계 및 데이터를 훨씬 신속하게 제공할 수 있는 효과가 있으며, 이를 기반으로 축적된 빅데이터를 활용하여 소비자들이 요구하는 최저가 쇼핑, 맞춤형 광고, 상품 추천 등에 이용되는 인공지능 시스템을 구축하는데 근간으로 활용될 수 있도록 별도의 캐스퍼(Casper) 서비스 모듈을 통해 은닉된 URL주소에 접근할 수 있도록 하여 해당 URL주소를 통해 접근한 웹 문서의 콘텐츠에 대하여 사용자가 크롤링하고자 하는 특정영역과 수집하고자 하는 데이터 타입에 대한 설정을 수행할 수 있는 확장프로그램을 통해 특정영역에서 정형 및 비정형 데이터를 수집하고, 크롤링된 결과를 볼 수 있는 모니터링을 수행 할 수 있는 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템에 관한 것이다.The present invention provides a web crawler system for collecting structured and unstructured data included in a hidden URL. The web crawler system for collecting structured and unstructured data included in the hidden URL according to the present invention can find the hidden URL address link and process the structured and unstructured data of the web content included in the hidden URL address. By showing a high speed, it is possible to generate big data based on more accurate data from related websites for many fields connected by hyperlinks, and based on the generated big data, it is possible to create more accurate data requested by users for the relevant field. It has the effect of providing statistics and data much more quickly, and it will be used as the basis for building an artificial intelligence system used for shopping at the lowest price demanded by consumers, customized advertisements, and product recommendations by utilizing the accumulated big data. In order to be able to access the hidden URL address through a separate Casper service module, the content of the web document accessed through the URL address can be accessed through a specific area that the user wants to crawl and the type of data to be collected. Web crawler system for collecting structured and unstructured data included in hidden URLs that can collect structured and unstructured data in a specific area through an extension program that can perform settings, and monitor crawled results. It is about.

Description

은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템{Web Crawler System for Collecting a Structured and Unstructured Data in Hidden URL}Web Crawler System for Collecting a Structured and Unstructured Data in Hidden URL

본 발명은 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템에 관한 것으로서, 더욱 상세하게는 웹 문서에 있는 은닉된 URL주소에 접근할 수 있도록 크롬과 같은 헤드리스 브라우즈(Headless Browser)환경에서 데이터 추출과 관련하여 Casper.js와 같은 유틸리티를 활용하여 은닉된 URL주소에 접근하여 웹 콘텐츠를 추출하며, 텍스트와 같은 정형 데이터뿐만아니라 오디오 또는 동영상과 같은 비정형 데이터를 수집할 수 있도록 확장 프로그램을 통해 사용자가 원하는 데이터형과 수집하고 싶은 영역을 설정하는 설정값을 통해 정형 및 비정형 데이터를 수집할 수 있는 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템에 관한 것이다.The present invention relates to a web crawler system for collecting structured and unstructured data included in a hidden URL, and more particularly, a headless browser such as Chrome to access a hidden URL address in a web document. Regarding data extraction from the environment, a utility such as Casper.js is used to access the hidden URL address to extract web content, and an extension program to collect not only structured data such as text but also unstructured data such as audio or video. It relates to a web crawler system for collecting structured and unstructured data included in a hidden URL that can collect structured and unstructured data through a set value that sets the data type desired by the user and the area to be collected.

최근 빅데이터를 활용한 최저가 쇼핑, 맞춤형 광고, 상품 추천 등 다양한 분야의 서비스와 접목되면서 빅데이터에 대한 중요성은 더욱 커지고 있다. 이로 인해 웹 사이트에 분포된 데이터를 자동으로 수집하는 웹 크롤러(Web Crawler)에 대한 중요성도 또한 높아지고 있다. Recently, the importance of big data is increasing as it is combined with services in various fields such as shopping at the lowest price using big data, customized advertisements, and product recommendations. As a result, the importance of a web crawler that automatically collects data distributed on a website is also increasing.

여기서, 웹 문서에 포함된 하이퍼링크를 통해 다른 웹 사이트에 접근하는 방식에 있어 웹 문서를 작성하는 HTML 언어에서 하이퍼링크는 A태그에 해당한다. A태그는 href 속성을 가지고 있는데 이 속성은 다른 웹사이트의 URL 주소를 가지고 있다. 이 URL 주소를 통해서 웹 크롤러는 웹 사이트에 접근을 하게 되는데 이에 몇 가지 문제점이 있다.Here, in the method of accessing other web sites through hyperlinks included in web documents, in the HTML language for creating web documents, the hyperlink corresponds to the A tag. Tag A has an href attribute, which has the URL address of another website. The web crawler accesses the web site through this URL address, but there are several problems with this.

첫 번째 문제는 자바스크립트 함수를 사용하면 URL 주소를 은닉할 수 있기 때문에 은닉된 URL 주소에 대해서는 기존의 웹 크롤러는 해당 사이트에 접근하여 수집할 수 없게 된다. 그리고 두 번째 문제점은 기존의 웹 크롤러가 태그 및 텍스트와 같은 정형 데이터와 비디오, 오디오와 같은 비정형 데이터를 구분해서 수집하는데 있어 명확한 구분에 어려움이 존재한다.The first problem is that the URL address can be concealed by using a JavaScript function, so existing web crawlers cannot access and collect the hidden URL address. The second problem is that the existing web crawlers have difficulty in distinguishing and collecting structured data such as tags and text and unstructured data such as video and audio.

웹 크롤러는 하이퍼링크로 웹 사이트들이 거미줄처럼 연결되어 있는 인터넷 환경에서 텍스트, 이미지, 동영상 등 웹 문서에 내포하고 있는 자료를 수집하고, 하이퍼링크를 통해 다른 웹 사이트에 접근하여 다시 자료를 수집하는 자동화 프로그램이다.Web crawler is an automation that collects data contained in web documents such as text, images, and videos in the Internet environment where web sites are connected like a spider web with hyperlinks, and collects data again by accessing other web sites through hyperlinks. It's a program.

웹 크롤러는 조직적이고, 자동화된 방법으로 월드 와이드 웹을 탐색하는데, 웹 크롤러가 하는 작업을 웹 크롤링(web crawling) 혹은 스파이더링(spidering)이라 하며 봇이나 소프트웨어 에이전트의 한 형태로 이루어진다.A web crawler navigates the world wide web in an organized and automated way. The job of a web crawler is called web crawling or spidering, and is done in the form of a bot or software agent.

이러한 웹 크롤러는 크게 일반 웹 크롤러와 분산 웹 크롤러가 있다.These web crawlers are largely divided into general web crawlers and distributed web crawlers.

도 1은 종래 실시예에 따른 일반 웹 크롤러의 전체적 흐름을 나타내는 도면이다.1 is a diagram showing the overall flow of a general web crawler according to a conventional embodiment.

도 1에 도시된 바와 같이, 일반 웹 크롤러의 기본 동작은 URL Frontier 모듈에서 웹 문서에 포함된 URL주소를 가져와 http 프로토콜을 이용하여 해당 URL주소의 웹 페이지를 가져온다. 그리고 Fetch 모듈에서 임시 저장소에 웹 페이지를 저장하게 된다. 그럼 Parse 모듈에서 임시 저장소의 웹 페이지에서 텍스트와 링크를 추출하고, 텍스트는 Indexer에 보내고, 링크는 URL Frontier에 추가되어야 하는지에 대해 Content Seen모듈, URL Filter 모듈 및 Duplication URL Element 모듈을 거치면서 판단한다.As shown in FIG. 1, the basic operation of a general web crawler is to retrieve a URL address included in a web document from the URL Frontier module and retrieve a web page of the URL address using the http protocol. And the Fetch module saves the web page to a temporary storage. Then, the Parse module extracts text and links from the web page of the temporary storage, sends the text to the Indexer, and determines whether the link should be added to the URL Frontier through the Content Seen module, the URL Filter module, and the Duplication URL Element module. .

그러나 문제는 링크에서 은닉된 URL 주소의 경우에는 URL Frontier에 추가대상인 URL주소임에도 불구하고 은닉되어 있어 추가되지 못하는 문제점이 있다.However, the problem is that the URL address hidden in the link cannot be added because it is hidden even though it is the URL address to be added to the URL Frontier.

따라서 전 세계의 웹 문서를 전부를 일반 웹 크롤러로 크롤링 한다는 것은 사실상 불가능하기 때문에 분산 웹 크롤러를 사용해야만 한다. 분산 웹 크롤러는 크게 2가지로 나누어지는데, 하나는 구글에서 사용한 중앙 집중식(Centralized) 방식이고, 다른 하나는 Mercator나 다른 곳에서 사용한 P2P(peer to peer or Fully-Distributed) 방식이다Therefore, it is virtually impossible to crawl all of the web documents around the world with a regular web crawler, so you have to use a distributed web crawler. Distributed web crawlers are largely divided into two types, one is the centralized method used by Google, and the other is the peer to peer or Fully-Distributed (P2P) method used by Mercator or elsewhere.

도 2는 종래 실시예에 따른 중앙 집중식 분산웹 크롤러 구조를 나타내는 도면이다.2 is a diagram showing a structure of a centralized distributed web crawler according to a conventional embodiment.

도 2에 도시된 바와 같이, 중앙 집중식 분산 웹 크롤러는 URL Manager가 서버와 같은 역할을 하며, 크롤러가 클라이언트 역할을 하는 구조이다. 크롤러에서 문서를 다운로드 받고 OutLink URL주소를 추출하여 URL Manager에게 넘겨주면 URL Manager는 다운로드 받은 문서의 URL주소인지 검사하여 URL 주소의 중복을 제거한다. 즉 일반 웹 크롤러에서 URL 중복과 URL 관리를 하는 부분을 URL Manager가 대신해 주는 것이다. As shown in FIG. 2, in the centralized distributed web crawler, the URL Manager acts as a server and the crawler acts as a client. After downloading the document from the crawler, extracting the OutLink URL address and passing it to the URL Manager, the URL Manager checks whether the downloaded document is the URL address and removes the duplicate URL address. In other words, URL Manager replaces URL duplication and URL management in general web crawlers.

도 3은 종래 실시예에 따른 P2P 방식 분산 웹 크롤러 구조를 나타내는 도면이다.3 is a diagram showing a structure of a P2P distributed web crawler according to a conventional embodiment.

도 3에 도시된 바와 같이, P2P방식은 각 크롤러가 완전이 독립적인 구조를 가지고, 각각의 크롤러가 일반 웹 크롤러처럼 동작을 한다. 각각의 크롤러는 문서를 다운로드 받고 OutLink URL을 추출하고 URL 중복제거까지 모두 각각의 크롤러에서 독립적으로 동작한다.As shown in FIG. 3, in the P2P method, each crawler has a completely independent structure, and each crawler operates like a general web crawler. Each crawler downloads documents, extracts OutLink URLs, and even de-duplication of URLs, all operate independently in each crawler.

이와 같이 동작하기 위해서 각각의 크롤러에서 관리하는 다운로드 받은 URL주소 목록은 서로 배타적이어야 한다. 만약 그렇지 않으면 서로 다른 크롤러에서 같은 문서를 다운로드 받는 현상이 발생하기 때문이다. 이러한 문제를 해결하는 방법으로 각각의 크롤러는 다운로드 받을 URL주소 목록을 서로 배타적으로 나눠서 관리한다. 즉, 자신이 다운로드 목록에 속하는 것만 관리하고, 나머지 URL주소는 다른 크롤러에게 넘겨 각각의 크롤러가 독립적으로 동작할 수 있게 된다.In order to operate in this way, the list of downloaded URL addresses managed by each crawler must be mutually exclusive. If not, the same document is downloaded from different crawlers. As a way to solve this problem, each crawler manages the list of URL addresses to be downloaded exclusively from each other. In other words, it manages only what belongs to the download list, and passes the remaining URL addresses to other crawlers so that each crawler can operate independently.

종래 등록특허번호 제10-1153138호 클라이언트 기반 웹 크롤링 시스템 및 방법은 서버의 클라이언트의 분산 특성이 빠르고 정확한 웹 크롤링 데이터를 제공하는 데 이용되도록 서버의 웹 크롤러에 의해 수집된 정보는 크롤러의 데이터를 갱신하기 위해 서버의 클라이언트에 의해 검색된 데이터와 비교되고, 데이터 비교는 검색 엔진 결과 페이지를 통해 분산되어 있는 정보를 이용하여 달성되며, 데이터 검증은 웹 크롤러 데이터를 요약해 놓은, 서버로부터 나온 클라이언트 사전에 의해 달성되어 데이터 정확성을 향상시키기 위해 웹 크롤러의 스푸핑에 대항하는 수단을 제공함으로써 데이터 분석을 용이하게 해주는 분산 웹 크롤러를 사용하여 네트워킹된 시스템으로부터 정보를 획득하는 시스템 및 방법에 관한 것이다.Conventional Patent No. 10-1153138 client-based web crawling system and method update the data of the crawler with the information collected by the web crawler of the server so that the distributed property of the server of the server is used to provide fast and accurate web crawling data. Data is compared with data retrieved by the client of the server to perform data comparison, and data comparison is accomplished using information scattered through search engine results pages, and data verification is performed by a client dictionary from the server that summarizes the web crawler data. A system and method for acquiring information from a networked system using a distributed web crawler that facilitates data analysis by providing a means to counter spoofing of web crawlers to achieve and improve data accuracy.

다만 종래의 특허는 분산 웹 크롤링을 위해 서버의 웹 크롤러에서 수집되는 정보를 웹 크롤러에 분산하기 위하여 데이터를 검증하여 정확성을 향상시키기 위해 웹 크룰러의 스푸핑에 대항하는 수단을 제공하여 데이터 분석을 용이하게 하는 것으로 은닉된 URL주소를 찾을 수 있는 데에는 한계가 있다.However, the conventional patent provides a means to counter spoofing of web crawlers in order to improve accuracy by verifying data in order to distribute the information collected by the web crawler of the server to the web crawler for distributed web crawling, thereby facilitating data analysis. There is a limit to the ability to find hidden URL addresses.

도 4는 종래 실시예에 따른 웹 콘텐츠 추출시스템의 구성도이다.4 is a block diagram of a web content extraction system according to a conventional embodiment.

도 4에 도시된 바와 같이, 웹 문서에 포함된 웹 콘텐츠를 추출하는 기술은 웹 문서로부터 정보 분석에 활용될 콘텐츠인 제목, 작성자, 게시일, 본문을 자동으로 추출하는 기능을 제공한다. 웹 콘텐츠 추출시스템은 콘텐츠를 추출하는 규칙을 자동 생산해 콘텐츠만을 추출하는 장치로 콘텐츠 추출 규칙을 자동 생성하는 규칙 생성기(Rule Generator), 주어진 웹문서에서 내비게이션 콘텐츠를 제거하는 내비게이션 콘텐츠 제거기(Navigation Content Eliminator),콘텐츠 추출 규칙 키워드 유사도 비교를 통해 콘텐츠를 추출하는 콘텐츠 추출기(Core Context Extractor)로 구성되어 있다.As shown in FIG. 4, the technology for extracting web content included in a web document provides a function of automatically extracting the title, author, publication date, and text, which are contents to be used for information analysis from the web document. The web content extraction system is a device that automatically generates rules for extracting content and extracts only content.A Rule Generator that automatically generates content extraction rules, and a Navigation Content Eliminator that removes navigation content from a given web document. ,Consists of a content extractor (Core Context Extractor) that extracts content through content extraction rule keyword similarity comparison.

종래 공개특허번호 제10-2018-0024360호 데이터 에이전트 컨테이너를 이용한 데이터 수집 방법 및 이의 시스템은 데이터 에이전트 컨테이너를 이용한 데이터 수집 방법 및 이의 시스템은 데이터 수집기; 상기 데이터 수집기를 제어하는 데이터 수집 제어기; 및 상기 데이터 수집기와 상기 데이터 수집 제어기를 서로 연결하는 제어 모니터링 채널;을 포함하고, 상기 데이터 수집 제어기는, 데이터 수집기 설치 및 제거 제어 모듈; 데이터 수집기 시작 및 종료 제어 모듈; 및 데이터 수집기 상태 모니터링 모듈;을 포함하는 데이터 에이전트 컨테이너를 이용한 데이터 수집 시스템을 제공한다.Conventional Patent Publication No. 10-2018-0024360 A data collection method using a data agent container and a system thereof includes a data collection method using a data agent container and a data collector; A data collection controller controlling the data collector; And a control monitoring channel connecting the data collector and the data collection controller to each other, wherein the data collection controller includes: a data collector installation and removal control module; Data collector start and end control module; And a data collector status monitoring module. It provides a data collection system using a data agent container.

그래나 종래의 기술은 데이터 수집기에서 웹크룰러를 이용하여 웹사이트를 통해 데이터를 수집을 수행하는 것으로 은닉된 URL주소를 찾아 검색할 수 없으며, 텍스트뿐만 아니라 웹 문서에 포함된 오디오, 비디오와 같은 비정형 데이터에 대하여 수집하는 기술이 없는 문제점이 있다.However, the conventional technology collects data through a website using a web crawler in a data collector, so it is impossible to find and search a hidden URL address. There is a problem in that there is no technology for collecting data.

대한민국 등록특허공보 등록번호 제10-1153138호 “클라이언트 기반 웹 크롤링 시스템 및 방법”Korean Patent Publication No. 10-1153138 “Client-based web crawling system and method” 대한민국 공개특허공보 공개번호 제10-2018-0024360호 “데이터 에이전트 컨테이너를 이용한 데이터 수집 방법 및 이의 시스템“Republic of Korea Patent Laid-Open Publication No. 10-2018-0024360 “Data collection method and system thereof using data agent container”

따라서 본 발명은 이와 같은 종래 기술의 문제점을 개선하여, 무수히 많은 컴퓨터에 분산 저장되어 있는 문서를 수집하여 검색 대상의 색인으로 포함시키는 기술로서, 어느 부류의 기술을 얼마나 빨리 검색 대상에 포함시키냐하는 것이 우위를 결정하는 요소로서 최근 웹 검색의 중요 요소인 크롤링을 통해 웹 문서에 대하여 별도의 캐스퍼(Casper) 서비스 모듈을 통해 은닉된 URL주소에 접근할 수 있도록 하여 해당 URL주소를 통해 접근한 웹 문서의 콘텐츠에 대하여 사용자가 크롤링하고자 하는 특정영역과 수집하고자 하는 데이터 타입에 대한 설정을 수행할 수 있는 확장프로그램을 통해 특정영역에서 정형 및 비정형 데이터를 수집하고, 크롤링된 결과를 볼 수 있는 모니터링을 수행 할 수 있는 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템을 제공하는 것을 목적으로 한다.Therefore, the present invention is a technology that improves the problems of the prior art and collects documents distributed and stored in a myriad of computers and includes them as an index of a search target. This is the factor that determines the advantage. Web documents accessed through the URL address by allowing access to the hidden URL address through a separate Casper service module for web documents through crawling, which is an important element of recent web searches. Through an extension program that allows users to set the specific area to crawl and the type of data to be collected for the contents of the user, it collects structured and unstructured data in a specific area, and performs monitoring to view the crawled results. The purpose of this is to provide a web crawler system for collecting structured and unstructured data included in hidden URLs.

상술한 목적을 달성하기 위한 본 발명의 특징에 의하면, 본 발명은 사용자로부터 크롤링을 하고 싶은 특정영역 및 수집하는 데이터 타입을 입력받으며, 크롤링 결과를 사용자에게 출력하는 클라이언트(100);와 상기 클라이언트(100)로부터 수신된 특정영역과 데이터타입에 따라 크롤링을 수행하여 크롤링 결과를 저장모듈(300)에 저장하고, 사용자의 요청에 따라 크롤링 결과를 클라이언트(100)에 전송하는 웹서버(200); 및 상기 웹서버(200)을 통해 전송된 URL주소, 정형데이터와 비정형데이터를 저장하고, 웹서버(200)로부터 수신된 사용자의 요청에 따른 크롤링 결과 파일을 웹서버(200)에 전송하는 저장모듈(300);을 포함하는 구성으로 이루어지는 것을 특징으로 하는 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템을 제공한다.According to a feature of the present invention for achieving the above object, the present invention is a client 100 that receives input from a user a specific area to be crawled and a data type to be collected, and outputs the crawl result to the user; and the client ( A web server 200 that performs a crawl according to a specific area and data type received from 100), stores the crawl result in the storage module 300, and transmits the crawl result to the client 100 according to a user's request; And a storage module that stores the URL address, structured data and unstructured data transmitted through the web server 200, and transmits a crawl result file received from the web server 200 according to a user's request to the web server 200. (300); It provides a web crawler system for collecting the structured and unstructured data included in the hidden URL, characterized in that consisting of a configuration including.

이와 같은 본 발명에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 클라이언트(100)는 사용자로부터 크롤링 규칙과 추출할 수집영역을 설정받고, 사용자의 요청에 따른 출력할 크롤러 데이터의 종류를 입력받는 설정입력모듈(110);과 상기 설정입력모듈(110)을 통해 수신된 크롤링 규칙, 수집영역 및 메인URL주소와 출력에 필요한 사용자의 요청을 상기 웹서버(200)에 전송하고, 상기 웹서버(200)로부터 전송받은 정형 및 비정형의 크롤러 수집 데이터를 전송받는 클라이언트통신모듈(120);과 상기 설정입력모듈(110)로부터 수신받은 사용자의 요청에 따른 상기 클라이언트통신모듈(120)로부터 전송받은 정형 및 비정형의 크롤러 수집 데이터를 사용자에게 출력하는 출력모듈(130); 및 상기 설정입력모듈(110), 클라이언트통신모듈(120) 및 출력모듈(130)에서 발생하는 사용자로부터의 이벤트 및 상기 클라이언트(100)의 내부 이벤트를 처리하는 클라이언트제어모듈(140);를 포함하는 구성으로 이루어지는 것을 특징으로 한다.The client 100 of the web crawler system for collecting the structured and unstructured data included in the hidden URL according to the present invention receives a crawl rule and a collection area to be extracted from the user, and the crawler data to be output according to the user's request A setting input module 110 receiving the type of input; and a crawling rule received through the setting input module 110, a collection area, a main URL address, and a user's request required for output to the web server 200, and , A client communication module 120 that receives the structured and unstructured crawler collection data transmitted from the web server 200; and the client communication module 120 according to a user's request received from the setting input module 110 An output module 130 for outputting the collected data from the structured and unstructured crawler to the user; And a client control module 140 that processes an event from a user and an internal event of the client 100 generated in the setting input module 110, the client communication module 120, and the output module 130. It is characterized by consisting of a configuration.

이와 같은 본 발명에 따른 은닉 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);를 포함하는 구성으로 이루어지는 것을 특징으로 한다.The web server 200 of the web crawler system for the collection of structured and unstructured data included in the hidden URL according to the present invention, the crawling rule, the collection area, and the main URL address received through the client communication module 120 A server communication module 210 that transmits to the collection engine module 220 and transmits the crawling data received through the storage access module 250 to the client communication module 120 according to the received user's request; and the server By analyzing the crawling rule received through the communication module 210 and the collection area included in the main URL address, driving the crawler module 230 or the casper module 240 to perform crawling, and store the collected data through the crawling. A collection engine module 220 that transmits to the access module 250; and a crawler rule driven by the scheduler module 222 of the collection engine module 220 to receive a seed including a main URL address, a crawler rule, and a URL. Crawler module 230 that crawls according to the data type defined in; And it is driven by the scheduler module 222 of the collection engine module 220 to receive a seed including a main URL address, a crawler rule, and an XPath, and the crawler rule Casper module 240 for interpreting and crawling the hidden URL address included in the seed according to the data type defined in; And the storage module for storing the URL address, structured data, and unstructured data transmitted from the collection engine module 220 ( A storage access module 250 that transmits to 300, receives a crawl result file according to the request of the client 100, and transmits it to the server communication module 210; And an exception processing module 260 that processes exceptional events that may occur in the web server 200.

이와 같은 본 발명에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 수집엔진모듈(220)은 상기 서버통신모듈(210)로부터 전송받은 크롤링 규칙과 메인URL주소에 포함된 수집영역을 해석하여 수집영역에 포함된 시드를 작성하여 스케줄러모듈(222)에 전송하는 수집규칙모듈(221);과 상기 수집규칙모듈(221)에서 정의된 시드를 기준으로 크롤러모듈(230) 또는 캐스퍼모듈(240)을 구동시키고, 메인URL주소, 크롤러규칙 및 시드를 각각 전송하는 스케줄러모듈(222); 및 상기 스케줄러모듈(222)로부터 전송받은 파일을 캐스퍼모듈(240)에 전송하거나 상기 스케줄러모듈(222)로부터 전송받은 URL주소와 정형데이터 및 상기 크롤러모듈(230) 또는 캐스퍼모듈(240)로부터 크롤링한 결과 중 비정형데이터를 수신하여 저장접속모듈(250)에 전송하는 엔진파일모듈(223);를 포함하는 구성으로 이루어지는 것을 특징으로 한다.The collection engine module 220 of the web crawler system for collecting the structured and unstructured data included in the hidden URL according to the present invention includes the crawling rule transmitted from the server communication module 210 and the collection included in the main URL address. A collection rule module 221 that analyzes the region, creates a seed included in the collection region, and transmits it to the scheduler module 222; and the crawler module 230 or casper based on the seed defined in the collection rule module 221 A scheduler module 222 that drives the module 240 and transmits a main URL address, a crawler rule, and a seed, respectively; And the file transmitted from the scheduler module 222 is transmitted to the casper module 240 or the URL address and structured data transmitted from the scheduler module 222 and crawled from the crawler module 230 or the casper module 240 It characterized in that it consists of a configuration including; an engine file module 223 for receiving unstructured data among the results and transmitting it to the storage access module 250.

이와 같은 본 발명에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 크롤러모듈(230)은 상기 스케줄러모듈(222)로부터 전달 받은 크롤러 규칙을 해석하여 크롤러수집모듈(232)에 크롤링해야 할 데이터의 종류를 결정하여 전송하는 크롤러규칙번역모듈(231);과 시드에 포함된 메인 URL에 포함된 URL주소들에 대하여 상기 크롤러규칙번역모듈(231)로부터 전송받은 데이터의 타입들을 크롤링하여 크롤링한 데이터를 URL 주소와 함께 스케줄러모듈(222) 또는 크롤러파일모듈(233)에 전송 후, 완료메시지를 스케줄러모듈(222)에 통지하는 크롤러수집모듈(232); 및 상기 크롤러수집모듈(232)로부터 수신받은 비정형데이터를 URL주소가 표시된 형태로 상기 엔진파일모듈(223)에 전송하는 크롤러파일모듈(233);를 포함하는 구성으로 이루어지는 것을 특징으로 한다.The crawler module 230 of the web crawler system for collecting the structured and unstructured data included in the hidden URL according to the present invention analyzes the crawler rule received from the scheduler module 222 and sends it to the crawler collection module 232. A crawler rule translation module 231 that determines and transmits the type of data to be crawled; and crawls the types of data transmitted from the crawler rule translation module 231 with respect to URL addresses included in the main URL included in the seed. A crawler collection module 232 which transmits the crawled data together with the URL address to the scheduler module 222 or the crawler file module 233 and notifies the scheduler module 222 of a completion message; And a crawler file module 233 for transmitting the unstructured data received from the crawler collection module 232 to the engine file module 223 in a form in which a URL address is displayed.

이와 같은 본 발명에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 캐스퍼모듈(240)은 상기 스케줄러모듈(222)로부터 전달 받은 크롤러 규칙을 해석하여 캐스퍼수집모듈(242)에 크롤링해야 할 데이터의 타입을 결정하고, 시드의 XPath를 해석하여 은닉된 URL 주소를 해석하여 캐스퍼수집모듈(242)에 전송하는 캐스퍼규칙번역모듈(241);과 상기 캐스퍼규칙번역모듈(241)에 의해 해석된 은닉된 URL주소들에 대하여 데이터 타입별로 크롤링한 데이터를 URL 주소와 함께 스케줄러모듈(222) 또는 캐스퍼파일모듈(243)에 전송 후, 완료메시지를 스케줄러모듈(222)에 통지하는 캐스퍼수집모듈(242); 및 상기 캐스퍼수집모듈(242)로부터 수신받은 정형데이터 및 비정형데이터를 URL주소가 표시된 형태로 상기 엔진파일모듈(223)에 전송하는 캐스퍼파일모듈(243);를 포함하는 구성으로 이루어지는 것을 특징으로 한다.The casper module 240 of the web crawler system for collecting the structured and unstructured data included in the hidden URL according to the present invention analyzes the crawler rule received from the scheduler module 222 and sends it to the casper collection module 242. A casper rule translation module 241 that determines the type of data to be crawled, analyzes the XPath of the seed, analyzes the hidden URL address, and transmits it to the casper collection module 242; and the casper rule translation module 241 Casper collection that transmits the crawled data for each data type of the hidden URL addresses interpreted by the URL address together with the URL address to the scheduler module 222 or the casper file module 243, and then notifies the completion message to the scheduler module 222 Module 242; And a casper file module 243 that transmits the structured data and unstructured data received from the casper collection module 242 to the engine file module 223 in a form in which a URL address is displayed. .

본 발명에 의한 은닉 URL주소에 포함된 정형 및 비정형 데이터에 대한 수집을 위한 크롤러 시스템 및 이를 이용한 데이터 수집 방법에 의하면, 종래의 기존의 크롤러인 Node.js 기반의 웹 크롤러 모듈보다 은닉된 URL주소 링크를 찾을 수 있고, 은닉된 URL주소에 포함된 웹 콘텐츠의 정형 및 비정형 데이터를 처리하는데 높은 속도를 보임으로써, 하이퍼링크로 연결된 많은 분야별 관련 웹사이트로부터 보다 정확한 데이터를 기반으로 빅데이터를 생성할 수 있고, 생성된 빅데이터를 기반으로 해당 분야에 대하여 사용자들이 요청하는 데이터에 대하여 보다 정확한 통계 및 데이터를 훨씬 신속하게 제공할 수 있는 효과가 있으며, 이를 기반으로 축적된 빅데이터를 활용하여 소비자들이 요구하는 최저가 쇼핑, 맞춤형 광고, 상품 추천 등에 이용되는 인공지능 시스템을 구축하는데 근간으로 활용될 수 있는 장점이 있다.According to the crawler system for collecting structured and unstructured data included in the hidden URL address according to the present invention and the data collection method using the same, the URL address link hidden than the conventional Node.js-based web crawler module, which is a conventional crawler. By showing a high speed in processing the structured and unstructured data of web content included in the hidden URL address, it is possible to create big data based on more accurate data from related websites in many fields connected by hyperlinks. And, based on the generated big data, it has the effect of providing more accurate statistics and data for the data requested by users for the relevant field much faster, and consumers demand by utilizing the accumulated big data based on this. It has an advantage that can be used as a basis for building an artificial intelligence system used for low-cost shopping, customized advertisement, and product recommendation.

도 1은 종래 실시예에 따른 일반 웹 크롤러의 전체적 흐름을 나타내는 도면;
도 2는 종래 실시예에 따른 중앙 집중식 분산웹 크롤러 구조를 나타내는 도면;
도 3은 종래 실시예에 따른 P2P 방식 분산 웹 크롤러 구조를 나타내는 도면;
도 4는 종래 실시예에 따른 웹 콘텐츠 추출시스템의 구성도;
도 5는 본 발명의 실시예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 구성도;
도 6은 본 발명의 실시예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 클라이언트에 대한 구성도;
도 7은 본 발명의 실시예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 설정입력모듈에 대한 예시도;
도 8은 본 발명의 실시예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 설정입력모듈에 대한 예시도;
도 9는 본 발명의 실시예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 웹서버에 대한 구성도;
도 10은 본 발명의 실시예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 수집엔진모듈에 대한 구성도;
도 11은 본 발명의 실시예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 크롤러모듈에 대한 구성도;
도 12는 본 발명의 실시예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 캐스퍼모듈에 대한 구성도;이다.
1 is a view showing the overall flow of a general web crawler according to a conventional embodiment;
2 is a view showing a structure of a centralized distributed web crawler according to a conventional embodiment;
3 is a diagram showing a structure of a P2P distributed web crawler according to a conventional embodiment;
4 is a block diagram of a web content extraction system according to a conventional embodiment;
5 is a block diagram of a web crawler system for collecting structured and unstructured data included in a hidden URL according to an embodiment of the present invention;
6 is a configuration diagram of a client of a web crawler system for collecting structured and unstructured data included in a hidden URL according to an embodiment of the present invention;
7 is an exemplary diagram of a setting input module of a web crawler system for collecting structured and unstructured data included in a hidden URL according to an embodiment of the present invention;
8 is an exemplary diagram of a setting input module of a web crawler system for collecting structured and unstructured data included in a hidden URL according to an embodiment of the present invention;
9 is a block diagram of a web server of a web crawler system for collecting structured and unstructured data included in a hidden URL according to an embodiment of the present invention;
10 is a block diagram of a collection engine module of a web crawler system for collecting structured and unstructured data included in a hidden URL according to an embodiment of the present invention;
11 is a block diagram of a crawler module of a web crawler system for collecting structured and unstructured data included in a hidden URL according to an embodiment of the present invention;
12 is a block diagram of a casper module of a web crawler system for collecting structured and unstructured data included in a hidden URL according to an embodiment of the present invention.

본 발명을 충분히 이해하기 위해서 본 발명의 바람직한 실시예를 첨부된 도면 도 1 내지 도 12에 의거하여 상세히 설명한다. 본 발명의 실시예는 여러 가지 형태로 변형될 수 있으며, 본 발명의 범위가 아래에서 상세히 설명하는 실시예로 한정되는 것으로 해석되어서는 안 된다. 본 실시예는 당업계에서 통상적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공 되는 것이다. 따라서 도면에서의 요소의 형상 등은 보다 명확한 설명을 강조하기 위해서 과장되어 표현될 수 있다. 각 도면에서 동일한 부재는 동일한 참조부호로 도시한 경우가 있음을 유의하여야 한다. 한편, 도면과 상세한 설명에서 클라이언트, 웹서버, 웹 크롤러 시스템 및 예외처리모듈 등 이 분야의 종사자들이 용이하게 알 수 있는 구성 및 작용에 대한 도시 및 언급은 간략히 하거나 생략하였다. 특히, 도면의 도시 및 상세한 설명에 있어서 본 발명의 기술적 특징과 직접적으로 연관되지 않는 요소의 구체적인 기술적 구성 및 작용에 대한 상세한 설명 및 도시는 생략하고, 본 발명과 관련되는 기술적 구성만을 간략하게 도시하거나 설명하였다.In order to fully understand the present invention, a preferred embodiment of the present invention will be described in detail with reference to FIGS. 1 to 12 of the accompanying drawings. The embodiments of the present invention may be modified in various forms, and the scope of the present invention should not be construed as being limited to the embodiments described in detail below. This embodiment is provided to more completely explain the present invention to those of ordinary skill in the art. Accordingly, the shape of the element in the drawings may be exaggerated to emphasize a clearer description. It should be noted that in each drawing, the same member may be indicated by the same reference numeral. On the other hand, in the drawings and detailed description, the illustration and reference of the configuration and operation that can be easily recognized by those in the field, such as a client, a web server, a web crawler system, and an exception handling module, have been simplified or omitted. In particular, in the illustration and detailed description of the drawings, a detailed description and illustration of a specific technical configuration and operation of elements not directly related to the technical features of the present invention are omitted, and only the technical configuration related to the present invention is briefly shown or Explained.

이하, 도면을 참조하여 본 발명의 바람직한 실시 예를 상세히 설명한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the drawings.

도 5는 본 발명의 실시예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 구성도이다.5 is a block diagram of a web crawler system for collecting structured and unstructured data included in a hidden URL according to an embodiment of the present invention.

도 5에 도시된 바와 같이, 웹 크롤러 시스템은 클라이언트(100), 웹서버(200) 및 저장모듈(300)를 포함하는 구성으로 이루어진다.As shown in FIG. 5, the web crawler system includes a client 100, a web server 200, and a storage module 300.

도 6은 본 발명의 실시예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 클라이언트에 대한 구성도이다.6 is a block diagram of a client of a web crawler system for collecting structured and unstructured data included in a hidden URL according to an embodiment of the present invention.

도 6에 도시된 바와 같이, 클라이언트(100)는 설정입력모듈(110), 클라이언트통신모듈(120), 출력모듈(130) 및 클라이언트제어모듈(140)을 포함하는 구성으로 이루어진다. 클라이언트(100)는 사용자로부터 크롤링을 하고 싶은 특정영역과 수집하는 데이터 타입을 입력받으며, 크롤링 결과를 사용자에게 출력한다.As shown in FIG. 6, the client 100 includes a configuration input module 110, a client communication module 120, an output module 130, and a client control module 140. The client 100 receives a specific area to be crawled and a data type to be collected from the user, and outputs the crawl result to the user.

도 7은 본 발명의 실시예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 설정입력모듈에 대한 예시도이다.7 is an exemplary diagram of a setting input module of a web crawler system for collecting structured and unstructured data included in a hidden URL according to an embodiment of the present invention.

도 7에 도시된 바와 같이, 설정입력모듈(110)은 사용자로부터 크롤링 규칙과 추출할 수집영역을 설정받고, 사용자의 요청에 따른 출력할 크롤러 데이터의 종류를 입력받는다. 설정입력모듈(110)에서 크롤링 규칙을 정의하고, 수집 영역을 추출하는 것은 웹브라우저에서 제공하는 확장기능을 통해 구현한다.As shown in FIG. 7, the setting input module 110 receives a crawl rule and a collection area to be extracted from the user, and receives the type of crawler data to be output according to the user's request. The crawling rule is defined in the setting input module 110 and the collection area is extracted through an extended function provided by a web browser.

확장기능은 웹브라우저의 기존 기능의 동작을 변경하거나 완전히 새로운 기능을 추가할 수 있도록 별도로 제공하는 웹 브라우저용 프로그램이다. 확장기능은 크롬(Chrome), 파이어폭스(Firefox), 마이크로소프트 에지(Edge), 및 오페라(Opera) 웹브라우저등에서 제공한다.The extension function is a program for web browsers that is separately provided to change the behavior of existing functions of the web browser or to add completely new functions. Extensions are provided by Chrome, Firefox, Microsoft Edge, and Opera web browsers.

설정입력모듈(110)은 먼저 ①에 표시된 바와 같이, 크롤링 규칙을 정하기 위한 입력메뉴에서 사용자가 이미지, 텍스트, 동영상 등 크롤링 하고 싶은 데이터 타입을 체크박스에 체크하여 선택할 수 있다. 만약 선택하지 않으면 해당영역에 포함된 모든 데이터 타입을 가져올 수 있다.The setting input module 110 may first select a data type that the user wants to crawl, such as an image, text, or video, by checking a check box in the input menu for determining the crawling rule, as indicated in ①. If not selected, all data types included in the area can be imported.

설정입력모듈(110)에서 특정영역을 선택하지 않으면 표시된 웹 페이지 전체를 크롤링하게 되고, 특정영역을 선택하면 특정영역을 체크하면 ②에서와 같이 사용자인터페이스(User Interface, 이하 UI)가 나타나며, UI의 상단에 표시된 버튼을 누름으로서 특정 영역 추출 기능을 온/오프할 수 있다. 온으로 기능을 활성화하면 문서객체의 Mouse Up이벤트에 마우스 포인터가 가리키는 문서객체모델(Document Object Model, 이하 DOM)의 요소를 가져온다. If a specific area is not selected in the setting input module 110, the entire displayed web page is crawled, and when a specific area is selected, a user interface (UI) is displayed as in ②. You can turn on/off the specific area extraction function by pressing the button displayed at the top. When the ON function is activated, an element of the Document Object Model (DOM) pointed by the mouse pointer is brought to the Mouse Up event of the document object.

설정입력모듈(110)에서 ③과 같이, 마우스 포인터가 가리키는 DOM의 백그라운 칼라 속성을 수정하여 사용자가 어떤 DOM을 가리키는지 인식하여 마우스를 클릭하면 가져온 DOM요소를 저장한다. 그리고 ②의 UI에 DOM요소를 XPath로 변환하여 리스트로 나타낸다. 마지막으로 ①번의 하단 크롤링 버튼을 클릭하면 선택된 데이터 타입과 특정영역의 XPath 호스트 URL 데이터로 크롤링 규칙을 만들고 웹 서버로 전달한다.In the setting input module 110, as ③, the background color property of the DOM pointed to by the mouse pointer is modified to recognize which DOM the user points to, and when the user clicks the mouse, the imported DOM element is stored. And, in the UI of ②, the DOM element is converted into XPath and displayed as a list. Finally, if you click the crawl button at the bottom of ①, a crawl rule is created with the selected data type and the XPath host URL data of a specific area and delivered to the web server.

③번은 마우스 포인터가 가리키는 DOM의 Back-ground-color 속성을 수정하여 사용자가 어떤 DOM을 가리키는지 인식할 수 있게 구현하였다. 마우스를 클릭하면 가져온 DOM 요소를 저장하며 ②번 UI에 DOM 요소를 XPath로 변환하여 리스트로 나타낸다.③ is implemented so that the user can recognize which DOM the user points to by modifying the back-ground-color property of the DOM pointed to by the mouse pointer. When the mouse is clicked, the imported DOM element is saved, and the DOM element is converted to XPath in UI ② and displayed as a list.

도 8은 본 발명의 실시예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 설정입력모듈에 대한 예시도이다.8 is an exemplary diagram of a setting input module of a web crawler system for collecting structured and unstructured data included in a hidden URL according to an embodiment of the present invention.

마지막으로 ①의 하단에 위치한 “크롤링” 버튼을 클릭하면 도 8에 도시된 바와 같이, 선택된 데이터 타입과 특정영역에 대한 XPath 호스트 URL 데이터로 크롤링 규칙 및 특정영역에 대한 파일이 생성되어 클라이언트통신모듈(120)로 전달한다. 크롤링 규칙 및 특정영역에 대한 파일은 Json구문으로 서술되며 data_type, specific_area, host_url 속성이 존재하며, data_type 속성은 타입 별 Boolean 값을 가지고, Default 값은 false로 설정되며, specific_area 속성은 사용자가 추출한 DOM의 XPath 구문으로 변환되어 추가가 된다.Finally, if you click the "Crawl" button located at the bottom of ①, as shown in Fig. 8, a crawl rule and a file for a specific area are created with the selected data type and XPath host URL data for a specific area, and the client communication module ( 120). Crawl rules and files for specific areas are described in Json syntax, and data_type, specific_area, and host_url properties exist. The data_type property has a Boolean value for each type, the default value is set to false, and the specific_area property is the DOM extracted by the user. It is converted into XPath syntax and added.

설정입력모듈(110)은 웹서버(200)를 통해 크롤링하여 수집한 정형 및 비정형데이터에 대하여 전체 또는 원하는 데이터 타입을 형태를 요청하게 된다.The setting input module 110 requests the form of all or a desired data type for the structured and unstructured data collected by crawling through the web server 200.

클라이언트통신모듈(120)은 상기 설정입력모듈(110)을 통해 수신된 크롤링 규칙, 수집영역 및 메인URL주소와 출력에 필요한 사용자의 요청을 웹서버(200)에 전송하고, 웹서버(200)로부터 전송받은 정형 및 비정형의 크롤러 수집 데이터를 전송받는다. 클라이언트통신모듈(120)은 웹서버(200)와 통신을 담당한다.The client communication module 120 transmits a crawling rule, a collection area, and a main URL address received through the setting input module 110 and a user's request for output to the web server 200, and transmits a request from the web server 200 to the web server 200. Receives the received data collected from the structured and unstructured crawlers. The client communication module 120 is responsible for communicating with the web server 200.

출력모듈(130)은 상기 설정입력모듈(110)로부터 수신받은 사용자의 요청에 따른 상기 클라이언트통신모듈(120)로부터 전송받은 정형 및 비정형의 크롤러 수집 데이터를 사용자에게 출력한다. 출력모듈(130)은 상기 클라이언트통신모듈(120)을 통해 웹서버(200)를 통해 크롤링한 결과를 사용자에게 출력한다.The output module 130 outputs the structured and unstructured crawler collection data transmitted from the client communication module 120 according to the user's request received from the setting input module 110 to the user. The output module 130 outputs a result of crawling through the web server 200 through the client communication module 120 to the user.

클라이언트제어모듈(140)은 상기 설정입력모듈(110), 클라이언트통신모듈(120) 및 출력모듈(130)에서 발생하는 사용자로부터의 이벤트 및 클라이언트(100)의 내부 이벤트를 처리한다. 클라이언트제어모듈(140)은 상기 설정입력모듈(110)을 통해 사용자가 마우스를 이용하여 체크박스나 특정 버튼에 클릭하거나, 마우스의 이동 또는 드래그 등 다양한 사용자의 액션에 의한 이벤트를 처리하고, 클라이언트(100)의 모듈간에 발생하는 이벤트 등에 대한 구동을 제어한다.The client control module 140 processes events from the user and internal events of the client 100 generated in the setting input module 110, the client communication module 120, and the output module 130. The client control module 140 processes events by various user actions, such as a user clicking a check box or a specific button using a mouse, or moving or dragging a mouse through the setting input module 110, and the client ( 100) controls the driving of events occurring between modules.

도 9는 본 발명의 실시예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 웹서버에 대한 구성도이다.9 is a block diagram of a web server of a web crawler system for collecting structured and unstructured data included in a hidden URL according to an embodiment of the present invention.

도 9에 도시된 바와 같이, 웹서버(200)는 서버통신모듈(210), 수집엔진모듈(220), 크롤러모듈(230), 캐스퍼모듈(240), 저장접속모듈(250) 및 예외처리모듈(260)을 포함하는 구성으로 이루어진다. 웹서버(200)는 상기 클라이언트(100)로부터 수신된 특정영역과 데이터타입에 따라 크롤링을 수행하여 크롤링 결과를 저장모듈(300)에 저장하고, 사용자의 요청에 따라 크롤링 결과를 클라이언트(100)에 전송한다.9, the web server 200 includes a server communication module 210, a collection engine module 220, a crawler module 230, a casper module 240, a storage connection module 250, and an exception processing module. It consists of a configuration including 260. The web server 200 performs crawling according to the specific area and data type received from the client 100, stores the crawl result in the storage module 300, and sends the crawl result to the client 100 according to the user's request. send.

웹서버(200)는 싱글스레드(Single Thread) 기반으로 넌블로킹(Non-blocking) I/O를 지원하는 고성능 서버이지만 싱글스레드이기 때문에 다수의 웹 페이지를 크롤링하기에는 한계가 존재한다.The web server 200 is a high-performance server that supports non-blocking I/O on a single thread basis, but because it is single thread, there is a limit to crawling multiple web pages.

따라서 상기의 문제를 해결하기 위해서 클러스터(Cluster)를 활용한다. 클러스터는 Node.js의 모듈로서 웹서버(200)의 포트를 공유하는 다수의 프로세스를 생성하여 크롤러모듈(230) 또는 캐스퍼모듈(240)을 쓰레드로 생성하고 수집함으로써 속도의 한계를 해결할 수 있다.Therefore, to solve the above problem, a cluster is used. The cluster is a module of Node.js, which creates a number of processes that share a port of the web server 200, creates and collects the crawler module 230 or the casper module 240 as threads, thereby solving the limitation of speed.

서버통신모듈(210)은 상기 클라이언트통신모듈(120)을 통해 수신된 크롤링 규칙, 수집영역 및 메인URL주소를 수집엔진모듈(220)에 전송하고, 수신된 사용자의 요청에 따라 상기 저장접속모듈(250)을 통해 전송받은 크롤링 데이터를 상기 클라이언트통신모듈(120)에 전송한다. 서버통신모듈(210)은 클라이언트(100)와 통신을 담당한다.The server communication module 210 transmits the crawling rule, the collection area, and the main URL address received through the client communication module 120 to the collection engine module 220, and the storage access module ( The crawling data received through 250) is transmitted to the client communication module 120. The server communication module 210 is responsible for communication with the client 100.

도 10은 본 발명의 실시예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 수집엔진모듈에 대한 구성도이다.10 is a block diagram of a collection engine module of a web crawler system for collecting structured and unstructured data included in a hidden URL according to an embodiment of the present invention.

도 10에 도시된 바와 같이, 수집엔진모듈(220)은 수집규칙모듈(221), 스케줄러모듈(222) 및 엔진파일모듈(223)을 포함하는 구성으로 이루어진다. 수집엔진모듈(220)은 상기 서버통신모듈(210)을 통해 수신된 크롤링 규칙 및 메인URL주소에 포함된 수집영역을 해석하여 크롤러모듈(230) 또는 캐스퍼모듈(240)을 구동하여 크롤링을 수행하고, 크롤링을 통해 수집된 데이터를 저장접속모듈(250)에 전송한다.As shown in FIG. 10, the collection engine module 220 includes a collection rule module 221, a scheduler module 222, and an engine file module 223. The collection engine module 220 analyzes the crawling rule received through the server communication module 210 and the collection area included in the main URL address, and drives the crawler module 230 or the casper module 240 to perform crawling. , And transmits the data collected through the crawling to the storage access module 250.

수집규칙모듈(221)은 상기 서버통신모듈(210)로부터 전송받은 크롤링 규칙과 메인URL주소에 포함된 수집영역을 해석하여 수집영역에 포함된 시드를 작성하여 스케줄러모듈(222)에 전송한다. 수집규칙모듈(221)은 전송받은 크롤링 규칙에서 수집할 데이터 타입을 정의한다.The collection rule module 221 analyzes the crawling rule transmitted from the server communication module 210 and the collection area included in the main URL address, creates a seed included in the collection area, and transmits it to the scheduler module 222. The collection rule module 221 defines the type of data to be collected in the received crawling rule.

수집규칙모듈(221)은 서버통신모듈(210)로부터 받은 메인URL주소에 포함된 수집영역에 기재된 URL주소 또는 XPath로 이루어진 목록인 시드를 생성한다. XPath(XML Path Language)는 W3C의 표준으로 확장 생성 언어의 문서의 구조를 통해 경로 위에 지정한 구문을 사용하여 항목을 배치하고 처리하는 방법을 기술하는 언어로서 은닉된 URL 주소를 포함하고 있다.The collection rule module 221 generates a seed, which is a list of URL addresses or XPaths described in the collection area included in the main URL address received from the server communication module 210. XPath (XML Path Language) is a language that describes how to place and process items using the syntax specified on the path through the document structure of the extended generation language as a standard of W3C, and includes a hidden URL address.

스케줄러모듈(222)은 상기 수집규칙모듈(221)에서 정의된 시드를 기준으로 크롤러모듈(230) 또는 캐스퍼모듈(240)을 구동시키고, 메인URL주소, 크롤러규칙 및 시드를 각각 전송한다. 스케줄러모듈(222)은 상기 수집규칙모듈(221)로부터 크롤링 규칙과 시드를 받아서 시드의 값이 URL인 경우 크롤러모듈(230)로 크롤링 규칙을 전달하여 크롤링을 수행한다. 스케줄러모듈(222)은 시드의 값이 XPath일 경우에는 캐스퍼모듈(240)로 크롤링 규칙을 전달하여 크롤링을 수행한다. The scheduler module 222 drives the crawler module 230 or the casper module 240 based on the seed defined in the collection rule module 221, and transmits a main URL address, a crawler rule, and a seed, respectively. The scheduler module 222 receives a crawl rule and a seed from the collection rule module 221 and, when the seed value is a URL, transmits the crawl rule to the crawler module 230 to perform crawling. When the seed value is XPath, the scheduler module 222 transmits a crawl rule to the casper module 240 to perform crawling.

스케줄러모듈(222)은 시드의 값이 XPath인 경우 캐스퍼모듈(240)을 구동시킨다. 스케줄러모듈(222)은 엔진파일모듈(223)을 이용하여 메인URL주소, XPath가 포함된 시드 및 크롤링 규칙을 파일로 저장하여 캐스퍼모듈(240)에 전송할 수 있다. 이는 캐스퍼모듈(240)의 경우 메인 URL주소의 웹 페이지에서 링크태그의 URL을 가져오지 못하기 때문에 DOM 구조상에서 링크 태그의 위치경로를 XPath 구문으로 서술을 해서 캐스퍼 모듈로 보내야 하고 캐스퍼 모듈은 XPath 구문을 해석하여 링크 태그를 찾은 뒤 클릭 이벤트를 강제로 발생시켜서 크롤링 하고자 하는 URL로 접근을 할 수 있다. The scheduler module 222 drives the casper module 240 when the seed value is XPath. The scheduler module 222 may use the engine file module 223 to store the main URL address, the seed including the XPath, and the crawling rule as a file and transmit it to the casper module 240 . This is because Casper module 240 cannot get the URL of the link tag from the web page of the main URL address, so the location path of the link tag in the DOM structure must be described in XPath syntax and sent to the Casper module. After finding the link tag by analyzing the link tag, you can access the URL you want to crawl by forcibly generating a click event.

따라서 스케줄러모듈(222)은 XPath로 이루어진 시드를 별도로 해석할 필요가 있기 때문에 이를 처리하기 위하여 파일의 형태로 전송하는 것이 타당하다. Therefore, since the scheduler module 222 needs to separately analyze the seed made of the XPath, it is reasonable to transmit it in the form of a file to process it.

엔진파일모듈(223)은 상기 스케줄러모듈(222)로부터 전송받은 파일을 캐스퍼모듈(240)에 전송하거나 상기 스케줄러모듈(222)로부터 전송받은 URL주소와 정형데이터 및 상기 크롤러모듈(230) 또는 캐스퍼모듈(240)로부터 크롤링한 결과 중 비정형데이터를 수신하여 저장접속모듈(250)에 전송한다. The engine file module 223 transmits the file received from the scheduler module 222 to the casper module 240 or the URL address and structured data received from the scheduler module 222, and the crawler module 230 or casper module. Among the crawled results from 240, unstructured data is received and transmitted to the storage access module 250.

엔진파일모듈(223)은 상기 스케줄러모듈(222)로부터 전송받은 URL주소와 정형데이터와 URL주소가 표시된 이미지, 음성 및 동영상과 같은 비정형 데이터에 해당하는 파일을 수신하거나 파일이 저장된 위치, 예를 들어 폴더와 파일의 명칭을 수신한다. 그리고 이를 저장접속모듈(250)에 전송한다.The engine file module 223 receives a file corresponding to unstructured data such as a URL address and structured data and an image, audio and video in which the URL address is displayed, or a location where the file is stored, for example, Receive the names of folders and files. And it transmits this to the storage connection module 250.

도 11은 본 발명의 실시예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 크롤러모듈에 대한 구성도이다.11 is a block diagram of a crawler module of a web crawler system for collecting structured and unstructured data included in a hidden URL according to an embodiment of the present invention.

도 11에 도시된 바와 같이, 크롤러모듈(230)은 크롤러규칙번역모듈(231), 크롤러수집모듈(232) 및 크롤러파일모듈(233)을 포함하는 구성으로 이루어진다. 크롤러모듈(230)은 상기 수집엔진모듈(220)의 스케줄러모듈(222)에 의해 구동되어 메인URL주소, 크롤러 규칙 및 URL이 포함된 시드를 수신하여 크롤러 규칙에 정의된 데이터 타입에 따라 크롤링한다. As shown in FIG. 11, the crawler module 230 includes a crawler rule translation module 231, a crawler collection module 232, and a crawler file module 233. The crawler module 230 is driven by the scheduler module 222 of the collection engine module 220 to receive a seed including a main URL address, a crawler rule, and a URL, and crawl according to the data type defined in the crawler rule.

크롤러모듈(230)은 크롤러 규칙에 따라 수집한 DOM의 태그를 판별한다. DOM의 태그는 멀티미디어 데이터의 타입에 따라 다르다. 예를 들어 영상의 경우는 video 태그를 사용하고, 이미지의 경우는 img 태그를 사용하며, 음악의 경우는 audio 태그로 구분되어 태그에 기술된 멀티미디어 URL을 통해 다운을 받아서 정형 데이터인 텍스트를 제외한 비정형 데이터인 영상, 이미지, 음악은 별도의 파일로 저장되고 저장된 위치를 스케줄러모듈(222)에 전송한다.The crawler module 230 determines the collected DOM tag according to the crawler rule. DOM tags differ according to the type of multimedia data. For example, video tag is used for video, img tag is used for image, and audio tag is used for music. Data, which are images, images, and music, are stored as separate files, and the stored location is transmitted to the scheduler module 222.

크롤러규칙번역모듈(231)은 상기 스케줄러모듈(222)로부터 전달 받은 크롤러 규칙을 해석하여 크롤러수집모듈(232)에 크롤링해야 할 데이터의 종류를 결정하여 전송하는 모듈이다.The crawler rule translation module 231 is a module that analyzes the crawler rule received from the scheduler module 222, determines the type of data to be crawled to the crawler collection module 232, and transmits it.

크롤러수집모듈(232)은 시드에 포함된 메인 URL에 포함된 URL주소들에 대하여 상기 크롤러규칙번역모듈(231)로부터 전송받은 데이터의 타입들을 크롤링하여 크롤링한 데이터를 URL 주소와 함께 스케줄러모듈(222) 또는 크롤러파일모듈(233)에 전송 후, 완료메시지를 스케줄러모듈(222)에 통지한다.The crawler collection module 232 crawls the types of data transmitted from the crawler rule translation module 231 with respect to URL addresses included in the main URL included in the seed, and converts the crawled data together with the URL address to the scheduler module 222 ) Or, after transmission to the crawler file module 233, a completion message is notified to the scheduler module 222.

크롤러수집모듈(232)은 크롤링한 데이터 중에서 영상, 이미지, 음악 등의 비정형데이터를 크롤러파일모듈(233)에 전송한다. 그리고 크롤러수집모듈(232)은 크롤링이 완료되면 완료메시지와 함께 크롤링한 URL 주소와 텍스트와 같은 정형데이터를 상기 스케줄러모듈(222)에 전송한다.The crawler collection module 232 transmits unstructured data such as images, images, and music among the crawled data to the crawler file module 233. In addition, when crawling is completed, the crawler collection module 232 transmits a crawled URL address and structured data such as text to the scheduler module 222 along with a completion message.

크롤러파일모듈(233)은 상기 크롤러수집모듈(232)로부터 수신받은 비정형데이터를 URL주소가 표시된 형태로 상기 엔진파일모듈(223)에 전송한다. 크롤러파일모듈(233)은 비정형데이터를 파일로 전송하거나 파일이 저장된 위치에 대한 정보를 전송할 수 있다.The crawler file module 233 transmits the unstructured data received from the crawler collection module 232 to the engine file module 223 in the form of a URL address displayed. The crawler file module 233 may transmit unstructured data as a file or may transmit information on a location where the file is stored.

도 12는 본 발명의 실시예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 캐스퍼모듈에 대한 구성도이다.12 is a block diagram of a casper module of a web crawler system for collecting structured and unstructured data included in a hidden URL according to an embodiment of the present invention.

도 12에 도시된 바와 같이, 캐스퍼모듈(240)은 캐스퍼규칙번역모듈(241), 캐스퍼수집모듈(242) 및 캐스퍼파일모듈(243)을 포함하는 구성으로 이루어진다. 캐스퍼모듈(240)은 상기 수집엔진모듈(220)의 스케줄러모듈(222)에 의해 구동되어 메인URL주소, 크롤러 규칙 및 XPath가 포함된 시드를 수신하여 크롤러 규칙에 정의된 데이터 타입에 따라 시드에 포함된 은닉된 URL주소를 해석하여 크롤링한다. As shown in FIG. 12, the casper module 240 includes a casper rule translation module 241, a casper collection module 242, and a casper file module 243. Casper module 240 is driven by the scheduler module 222 of the collection engine module 220 to receive a seed including a main URL address, a crawler rule, and an XPath, and include it in the seed according to the data type defined in the crawler rule. The hidden URL address is analyzed and crawled.

캐스퍼모듈(240)은 구동 후 상기 캐스퍼파일모듈(243)을 통해 엔진파일모듈(223)로부터 수신된 파일을 읽어 들여, 시드에 포함된 XPath 기반의 은닉된 URL주소를 해석하고, 해석된 URL 주소에서 크롤러 규칙에 따른 데이터 타입을 해석하여 정형 데이터 및 비정형 테이터를 크롤링할 수 있다.The casper module 240 reads the file received from the engine file module 223 through the casper file module 243 after driving, interprets the XPath-based hidden URL address included in the seed, and interprets the URL address. Structured data and unstructured data can be crawled by analyzing the data type according to the crawler rule.

캐스퍼규칙번역모듈(241)은 상기 스케줄러모듈(222)로부터 전달 받은 크롤러 규칙을 해석하여 캐스퍼수집모듈(242)에 크롤링해야 할 데이터의 타입을 결정하고, 시드의 XPath를 해석하여 은닉된 URL 주소를 해석하여 캐스퍼수집모듈(242)에 전송하는 모듈이다.The casper rule translation module 241 interprets the crawler rule received from the scheduler module 222 to determine the type of data to be crawled in the casper collection module 242, and interprets the XPath of the seed to determine the hidden URL address. It is a module that analyzes and transmits it to the casper collection module 242.

캐스퍼수집모듈(242)은 상기 캐스퍼규칙번역모듈(241)에 의해 해석된 은닉된 URL주소들에 대하여 데이터 타입별로 크롤링한 데이터를 URL 주소와 함께 스케줄러모듈(222) 또는 캐스퍼파일모듈(243)에 전송 후, 완료메시지를 스케줄러모듈(222)에 통지한다.The Casper collection module 242 collects data crawled by data type for the hidden URL addresses interpreted by the Casper rule translation module 241 together with the URL address to the scheduler module 222 or the Casper file module 243. After transmission, a completion message is notified to the scheduler module 222.

캐스퍼수집모듈(242)은 크롤링한 데이터인 정형데이터와 비정형 데이터를 크롤링한 URL 주소와 함께 캐스퍼파일모듈(243)에 전송하고, 크롤링이 완료되면 완료메시지를 상기 스케줄러모듈(222)에 전송한다. 캐스퍼수집모듈(242)은 프로그램 구현상 파일로 밖에 데이터를 전송할 수 없기 때문에 정형데이터도 파일로 전송을 합니다. 효율적인 것으로 따진다면 크롤러수집모듈처럼 파일로 전송 하는 것이 아닌 메모리를 통해서 전달하는 것이 효율적이다.The casper collection module 242 transmits the crawled structured data and unstructured data together with the crawled URL address to the casper file module 243, and when the crawling is completed, transmits a completion message to the scheduler module 222. Casper collection module 242 transmits structured data as a file because it can only transmit data as a file due to the implementation of the program. If it is considered to be efficient, it is more efficient to transfer it through memory rather than transfer it as a file like the crawler collection module.

캐스퍼파일모듈(243)은 상기 캐스퍼수집모듈(242)로부터 수신받은 정형데이터 및 비정형데이터를 URL주소가 표시된 형태로 상기 엔진파일모듈(223)에 전송한다. 캐스퍼파일모듈(243)은 크롤링 한 데이터를 파일로 전송하거나 파일이 저장된 위치에 대한 정보를 전송할 수 있다.The casper file module 243 transmits the structured data and unstructured data received from the casper collection module 242 to the engine file module 223 in a form in which a URL address is displayed. The casper file module 243 may transmit the crawled data as a file or transmit information on a location where the file is stored.

저장접속모듈(250)은 상기 수집엔진모듈(220)의 엔진파일모듈(223)로부터 전송된 URL주소와 정형데이터 및 비정형데이터를 상기 저장모듈(300)에 전송하고, 상기 클라이언트(100)의 요청에 따라 크롤링 결과 파일을 수신하여 상기 서버통신모듈(210)에 전송한다. 저장접속모듈(250)은 메인 URL에 포함된 은닉되었거나 은닉되지 않았던 URL주소별로 크롤링한 정형데이터 및 비정형데이터를 저장모듈(300)에 저장할 수 있도록 전송한다.The storage access module 250 transmits the URL address, structured data, and unstructured data transmitted from the engine file module 223 of the collection engine module 220 to the storage module 300, and requests from the client 100 According to the following, the crawling result file is received and transmitted to the server communication module 210. The storage access module 250 transmits the crawled structured data and unstructured data crawled by URL addresses that have been hidden or not contained in the main URL to be stored in the storage module 300.

예외처리모듈(260)은 웹서버(200)에서 발생할 수 있는 예외적인 이벤트를 처리한다. 예외처리모듈(260)은 크롤러모듈(230)이나 캐스퍼모듈(240)이 구동하지 않거나 저장접속모듈(250)에서 저장모듈(300)과 접속이 안되는 등 다양한 예외적인 이벤트가 발생하면 이에 대하여 사용자가 확인할 수 있도록 메시지를 생성하여 서버통신모듈(210)을 통해 사용자에게 통지한다.The exception processing module 260 processes exceptional events that may occur in the web server 200. The exception handling module 260 responds to the occurrence of various exceptional events, such as the crawler module 230 or the casper module 240 not being driven, or the storage access module 250 being unable to access the storage module 300. A message is generated so that it can be checked and notified to the user through the server communication module 210.

저장모듈(300)은 상기 웹서버(200)을 통해 전송된 URL주소, 정형데이터와 비정형데이터를 저장하고, 웹서버(200)로부터 수신된 사용자의 요청에 따른 크롤링 결과 파일을 웹서버(200)에 전송한다. 저장모듈(300)은 데이터베이스의 형태로 이루어지는 것이 일반적이나 URL 주소와 URL 주소별 크롤링한 정형 데이터 및 비정형 데이터를 파일의 형태로 저장할 수 있다.The storage module 300 stores the URL address, structured data and unstructured data transmitted through the web server 200, and stores the crawling result file according to the user's request received from the web server 200 to the web server 200. Transfer to. The storage module 300 is generally formed in the form of a database, but may store a URL address, structured data crawled by URL address, and unstructured data in the form of a file.

상술한 바와 같은, 본 발명의 실시 예에 따른 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템의 바람직한 실시예에 대하여 상기한 설명 및 도면에 따라 도시하였지만, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 예를 들어 설명한 것에 불과하며, 본 발명의 범위를 한정하고자 하는 것은 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 다른 변형 예들과 같이 다양한 변화 및 변경이 가능하다는 것을 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명할 것이다.As described above, a preferred embodiment of a web crawler system for collecting structured and unstructured data included in a hidden URL according to an embodiment of the present invention has been illustrated according to the above description and drawings, but this is only the description of the present invention. It is only described as an example to easily explain the contents and aid understanding of the invention, and is not intended to limit the scope of the present invention, and various changes and modifications such as other modified examples within the scope not departing from the technical spirit of the present invention It will be apparent to those of ordinary skill in the art that this is possible.

100 : 클라이언트 110 : 설정입력모듈
120 : 클라이언트통신모듈 130 : 출력모듈
140 : 클라이언트제어모듈 200 : 웹서버
210 : 서버통신모듈 220 : 수집엔진모듈
221 : 수집규칙모듈 222 : 스케줄러모듈
223 : 엔진파일모듈 230 : 크롤러모듈
231 : 크롤러규칙번역모듈 232 : 크롤러수집모듈
233 : 크롤러파일모듈 240 : 캐스퍼모듈
241 : 캐스퍼규칙번역모듈 242 : 캐스퍼수집모듈
243 : 캐스퍼파일모듈 250 : 저장접속모듈
260 : 예외처리모듈 300 : 저장모듈
100: client 110: setting input module
120: client communication module 130: output module
140: client control module 200: web server
210: server communication module 220: collection engine module
221: collection rule module 222: scheduler module
223: engine file module 230: crawler module
231: crawler rule translation module 232: crawler collection module
233: crawler file module 240: casper module
241: Casper rule translation module 242: Casper collection module
243: Casper file module 250: storage connection module
260: exception handling module 300: storage module

Claims (7)

사용자로부터 크롤링 규칙과 추출할 수집영역을 설정받고, 사용자의 요청에 따른 출력할 크롤러 데이터의 종류를 입력받는 설정입력모듈(110); 상기 설정입력모듈(110)을 통해 수신된 크롤링 규칙, 수집영역 및 메인URL주소와 출력에 필요한 사용자의 요청을 웹서버(200)에 전송하고, 상기 웹서버(200)로부터 전송받은 정형 및 비정형의 크롤러 수집 데이터를 전송받는 클라이언트통신모듈(120); 상기 설정입력모듈(110)로부터 수신받은 사용자의 요청에 따른 상기 클라이언트통신모듈(120)로부터 전송받은 정형 및 비정형의 크롤러 수집 데이터를 사용자에게 출력하는 출력모듈(130); 및 상기 설정입력모듈(110), 클라이언트통신모듈(120) 및 출력모듈(130)에서 발생하는 사용자로부터의 이벤트 및 클라이언트(100)의 내부 이벤트를 처리하는 클라이언트제어모듈(140);를 포함하는 구성으로 이루어지고, 사용자로부터 크롤링을 하고 싶은 특정영역 및 수집하는 데이터 타입을 입력받으며, 크롤링 결과를 사용자에게 출력하는 클라이언트(100);
상기 클라이언트통신모듈(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);를 포함하는 구성으로 이루어지고, 상기 클라이언트(100)로부터 수신된 특정영역과 데이터타입에 따라 크롤링을 수행하여 크롤링 결과를 저장모듈(300)에 저장하고, 사용자의 요청에 따라 크롤링 결과를 클라이언트(100)에 전송하는 웹서버(200); 및
상기 웹서버(200)을 통해 전송된 URL주소, 정형데이터와 비정형데이터를 저장하고, 웹서버(200)로부터 수신된 사용자의 요청에 따른 크롤링 결과 파일을 웹서버(200)에 전송하는 저장모듈(300);을 포함하는 구성으로 이루어지는 것을 특징으로 하는 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템.
A setting input module 110 that receives a crawl rule and a collection area to be extracted from a user, and receives a type of crawler data to be output according to a user's request; The crawling rule, collection area and main URL address received through the setting input module 110 and the user's request for output are transmitted to the web server 200, and the structured and unstructured A client communication module 120 receiving the crawler collection data; An output module 130 for outputting the structured and unstructured crawler collection data received from the client communication module 120 according to the user's request received from the setting input module 110 to the user; And a client control module 140 for processing an event from a user and an internal event of the client 100 generated in the setting input module 110, the client communication module 120, and the output module 130. A client 100 configured to receive input from a user for a specific area to be crawled and a data type to be collected, and output a crawl result to the user;
The crawling rule, collection area, and main URL address received through the client communication module 120 are transmitted to the collection engine module 220, and the crawl data received through the storage access module 250 according to the received user's request. A server communication module 210 that transmits a message to the client communication module 120; By analyzing the crawling rule received through the server communication module 210 and the collection area included in the main URL address, driving the crawler module 230 or the casper module 240 to perform crawling, and data collected through the crawling A collection engine module 220 that transmits the data to the storage connection module 250; A crawler module 230 driven by the scheduler module 222 of the collection engine module 220 to receive a seed including a main URL address, a crawler rule, and a URL, and crawl according to the data type defined in the crawler rule; It is driven by the scheduler module 222 of the collection engine module 220 to receive a seed including a main URL address, a crawler rule, and an XPath, and store the hidden URL address included in the seed according to the data type defined in the crawler rule. Casper module 240 for analyzing and crawling; The server communication module 210 transmits the URL address, structured data, and unstructured data transmitted from the collection engine module 220 to the storage module 300, and receives a crawl result file according to the request of the client 100. Storage connection module 250 for transmitting to the; And an exception processing module 260 that processes exceptional events that may occur in the web server 200, and performs crawling according to a specific area and data type received from the client 100 A web server 200 that stores the crawl result in the storage module 300 and transmits the crawl result to the client 100 according to a user's request; And
A storage module that stores the URL address, structured data and unstructured data transmitted through the web server 200, and transmits a crawl result file received from the web server 200 according to the user's request to the web server 200 ( 300); Web crawler system for collecting structured and unstructured data included in the hidden URL, characterized in that consisting of a configuration including.
삭제delete 삭제delete 제 1 항에 있어서,
상기 수집엔진모듈(220)은,
상기 서버통신모듈(210)로부터 전송받은 크롤링 규칙과 메인URL주소에 포함된 수집영역을 해석하여 수집영역에 포함된 시드를 작성하여 스케줄러모듈(222)에 전송하는 수집규칙모듈(221);
상기 수집규칙모듈(221)에서 정의된 시드를 기준으로 크롤러모듈(230) 또는 캐스퍼모듈(240)을 구동시키고, 메인URL주소, 크롤러규칙 및 시드를 각각 전송하는 스케줄러모듈(222); 및
상기 스케줄러모듈(222)로부터 전송받은 파일을 캐스퍼모듈(240)에 전송하거나 상기 스케줄러모듈(222)로부터 전송받은 URL주소와 정형데이터 및 상기 크롤러모듈(230) 또는 캐스퍼모듈(240)로부터 크롤링한 결과 중 비정형데이터를 수신하여 저장접속모듈(250)에 전송하는 엔진파일모듈(223);를 포함하는 구성으로 이루어지는 것을 특징으로 하는 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템.
The method of claim 1,
The collection engine module 220,
A collection rule module 221 that analyzes the crawling rule transmitted from the server communication module 210 and the collection area included in the main URL address, creates a seed included in the collection area, and transmits it to the scheduler module 222;
A scheduler module 222 that drives the crawler module 230 or the casper module 240 based on the seed defined in the collection rule module 221 and transmits a main URL address, a crawler rule, and a seed, respectively; And
The file received from the scheduler module 222 is transmitted to the casper module 240 or the URL address and structured data transmitted from the scheduler module 222 and the crawler module 230 or the casper module 240 crawled An engine file module 223 that receives the unstructured data and transmits it to the storage access module 250; a web crawler system for collecting structured and unstructured data included in a hidden URL.
제 1 항 또는 제 4 항에 있어서,
상기 크롤러모듈(230)은,
상기 스케줄러모듈(222)로부터 전달 받은 크롤러 규칙을 해석하여 크롤러수집모듈(232)에 크롤링해야 할 데이터의 종류를 결정하여 전송하는 크롤러규칙번역모듈(231);
시드에 포함된 메인 URL에 포함된 URL주소들에 대하여 상기 크롤러규칙번역모듈(231)로부터 전송받은 데이터의 타입들을 크롤링하여 크롤링한 데이터를 URL 주소와 함께 스케줄러모듈(222) 또는 크롤러파일모듈(233)에 전송 후, 완료메시지를 스케줄러모듈(222)에 통지하는 크롤러수집모듈(232); 및
상기 크롤러수집모듈(232)로부터 수신받은 비정형데이터를 URL주소가 표시된 형태로 엔진파일모듈(223)에 전송하는 크롤러파일모듈(233);을 포함하는 구성으로 이루어지는 것을 특징으로 하는 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템.
The method according to claim 1 or 4,
The crawler module 230,
A crawler rule translation module 231 which analyzes the crawler rule received from the scheduler module 222 and determines the type of data to be crawled to the crawler collection module 232 and transmits it;
A scheduler module 222 or a crawler file module 233 crawls the types of data transmitted from the crawler rule translation module 231 with respect to URL addresses included in the main URL included in the seed, together with the URL address. ), a crawler collection module 232 for notifying the scheduler module 222 of a completion message; And
A crawler file module 233 for transmitting the unstructured data received from the crawler collection module 232 to the engine file module 223 in the form of a URL address displayed; included in the hidden URL, characterized in that it comprises a configuration including Web crawler system for the collection of structured and unstructured data.
제 1 항 또는 제 4 항에 있어서,
상기 캐스퍼모듈(240)은,
상기 스케줄러모듈(222)로부터 전달 받은 크롤러 규칙을 해석하여 캐스퍼수집모듈(242)에 크롤링해야 할 데이터의 타입을 결정하고, 시드의 XPath를 해석하여 은닉된 URL 주소를 해석하여 캐스퍼수집모듈(242)에 전송하는 캐스퍼규칙번역모듈(241);
상기 캐스퍼규칙번역모듈(241)에 의해 해석된 은닉된 URL주소들에 대하여 데이터 타입별로 크롤링한 데이터를 URL 주소와 함께 스케줄러모듈(222) 또는 캐스퍼파일모듈(243)에 전송 후, 완료메시지를 스케줄러모듈(222)에 통지하는 캐스퍼수집모듈(242); 및
상기 캐스퍼수집모듈(242)로부터 수신받은 정형데이터 및 비정형데이터를 URL주소가 표시된 형태로 엔진파일모듈(223)에 전송하는 캐스퍼파일모듈(243);를 포함하는 구성으로 이루어지는 것을 특징으로 하는 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템.
The method according to claim 1 or 4,
The casper module 240,
Casper collection module 242 by analyzing the crawler rule received from the scheduler module 222 to determine the type of data to be crawled in the casper collection module 242, and analyzing the hidden URL address by analyzing the XPath of the seed. Casper rule translation module 241 to transmit to;
After transmitting the crawled data for each data type of the hidden URL addresses interpreted by the Casper Rule Translation Module 241 to the scheduler module 222 or the Casper File Module 243 together with the URL address, a completion message is sent to the scheduler. A casper collection module 242 notifying the module 222; And
Concealed URL, characterized in that it comprises a configuration comprising a; Casper file module (243) for transmitting the structured data and unstructured data received from the Casper collection module 242 to the engine file module 223 in the form of a URL address displayed. Web crawler system for the collection of structured and unstructured data contained in.
제 4 항에 있어서,
상기 스케줄러모듈(222)은 엔진파일모듈(223)을 이용하여 메인URL주소, XPath가 포함된 시드 및 크롤링 규칙을 파일로 저장하여 캐스퍼모듈(240)에 전송하는 것을 특징으로 하는 은닉 URL에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템.
The method of claim 4,
The scheduler module 222 uses the engine file module 223 to store the main URL address, the seed including the XPath, and the crawling rule as a file and transmits it to the casper module 240. Web crawler system for the collection of structured and unstructured data.
KR1020180056602A 2018-05-17 2018-05-17 Web Crawler System for Collecting a Structured and Unstructured Data in Hidden URL KR102222287B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180056602A KR102222287B1 (en) 2018-05-17 2018-05-17 Web Crawler System for Collecting a Structured and Unstructured Data in Hidden URL

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180056602A KR102222287B1 (en) 2018-05-17 2018-05-17 Web Crawler System for Collecting a Structured and Unstructured Data in Hidden URL

Publications (2)

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

Family

ID=68729994

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180056602A KR102222287B1 (en) 2018-05-17 2018-05-17 Web Crawler System for Collecting a Structured and Unstructured Data in Hidden URL

Country Status (1)

Country Link
KR (1) KR102222287B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102231762B1 (en) * 2020-12-29 2021-03-24 (주)케이엔랩 Distributed web crawling method, distributed web crawling system and computer program for the same
KR20220163595A (en) 2021-06-03 2022-12-12 (주)해나소프트 System for collecting big data based on customized scenario by using virtual bot

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113392297A (en) * 2020-03-12 2021-09-14 上海云盾信息技术有限公司 Method, system and equipment for crawling data
CN111767482B (en) * 2020-05-21 2023-06-06 中国地质大学(武汉) Self-adaptive crawling method for focused web crawlers
CN112363953B (en) * 2020-12-09 2023-12-05 中材邦业(杭州)智能技术有限公司 Interface test case generation method and system based on crawler technology and rule engine
KR102486874B1 (en) * 2022-10-04 2023-01-10 주식회사 두들린 Method for facilitating collection of data for job search or recruitment by computing device, and the same computing device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101665649B1 (en) * 2015-05-12 2016-10-12 주식회사 엘지씨엔에스 System for analyzing social media data and method for analyzing social media data using the same

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7685296B2 (en) 2003-09-25 2010-03-23 Microsoft Corporation Systems and methods for client-based web crawling
WO2018043767A1 (en) 2016-08-30 2018-03-08 디포커스(주) Data collection method using data agent container and system therefor

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101665649B1 (en) * 2015-05-12 2016-10-12 주식회사 엘지씨엔에스 System for analyzing social media data and method for analyzing social media data using the same

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102231762B1 (en) * 2020-12-29 2021-03-24 (주)케이엔랩 Distributed web crawling method, distributed web crawling system and computer program for the same
KR20220163595A (en) 2021-06-03 2022-12-12 (주)해나소프트 System for collecting big data based on customized scenario by using virtual bot

Also Published As

Publication number Publication date
KR20190131778A (en) 2019-11-27

Similar Documents

Publication Publication Date Title
KR102222287B1 (en) Web Crawler System for Collecting a Structured and Unstructured Data in Hidden URL
US20220164401A1 (en) Systems and methods for dynamically creating hyperlinks associated with relevant multimedia content
JP5458181B2 (en) System and method for providing advanced search result page content
KR100403714B1 (en) System and method for facilitating internet search by providing web document layout image and web site structure
US7299407B2 (en) Marking and annotating electronic documents
CN109033358B (en) Method for associating news aggregation with intelligent entity
JP5588981B2 (en) Providing posts to discussion threads in response to search queries
US8762556B2 (en) Displaying content on a mobile device
US7631263B2 (en) Methods, systems, and computer program products for characterizing links to resources not activated
US20140052778A1 (en) Method and apparatus for mapping a site on a wide area network
US20110087647A1 (en) System and method for providing web search results to a particular computer user based on the popularity of the search results with other computer users
US8424004B2 (en) High performance script behavior detection through browser shimming
US8645358B2 (en) Systems and methods for personalized search sourcing
US20100114864A1 (en) Method and system for search engine optimization
JP2020515944A (en) System and method for direct in-browser markup of elements in Internet content
GB2461771A (en) Annotation of electronic documents with preservation of document as originally annotated
US20100125781A1 (en) Page generation by keyword
CN106776983B (en) Search engine optimization device and method
US20100332964A1 (en) Electronic resource annotation
JP2006309515A (en) Information delivery method and information delivery server
US11443006B2 (en) Intelligent browser bookmark management
JP4935399B2 (en) Security operation management system, method and program
JP3664906B2 (en) Information source observation apparatus, information source observation method, and recording medium storing a program for executing information source observation processing
Bae et al. Design and implementation of a web crawler system for collection of structured and unstructured data
KR100667917B1 (en) A method of providing website searching service and a system thereof

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