KR102602178B1 - Web contents crawling management server which supports efficient distributed crawling for a pluraliy of web sites and the operating method thereof - Google Patents
Web contents crawling management server which supports efficient distributed crawling for a pluraliy of web sites and the operating method thereof Download PDFInfo
- Publication number
- KR102602178B1 KR102602178B1 KR1020210050857A KR20210050857A KR102602178B1 KR 102602178 B1 KR102602178 B1 KR 102602178B1 KR 1020210050857 A KR1020210050857 A KR 1020210050857A KR 20210050857 A KR20210050857 A KR 20210050857A KR 102602178 B1 KR102602178 B1 KR 102602178B1
- Authority
- KR
- South Korea
- Prior art keywords
- web
- web page
- body area
- data collection
- url
- Prior art date
Links
- 230000009193 crawling Effects 0.000 title claims abstract description 60
- 238000011017 operating method Methods 0.000 title description 2
- 238000013480 data collection Methods 0.000 claims abstract description 159
- 238000000034 method Methods 0.000 claims abstract description 26
- 238000012790 confirmation Methods 0.000 claims description 61
- 230000005540 biological transmission Effects 0.000 claims description 31
- 238000012545 processing Methods 0.000 claims description 20
- 241001522296 Erithacus rubecula Species 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 5
- 238000009877 rendering Methods 0.000 claims description 5
- 238000000926 separation method Methods 0.000 claims description 5
- 239000000284 extract Substances 0.000 claims description 2
- 210000000746 body region Anatomy 0.000 claims 2
- 238000012546 transfer Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000005226 mechanical processes and functions Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
복수의 웹 사이트들에 대한 효율적인 분산 크롤링을 지원하는 웹 콘텐츠 크롤링 관리 서버 및 그 동작 방법이 개시된다. 본 발명은 복수의 웹 사이트들로부터, 각 웹 사이트를 구성하는 하나 이상의 웹 페이지들의 URL을 모두 수집하여, 수집된 웹 페이지들의 URL을 복수의 데이터 수집 서버들에 라운드 로빈 방식으로 할당한 후, 상기 복수의 데이터 수집 서버들에 대해, 각 데이터 수집 서버에 할당된 URL의 웹 페이지에 접속하여 웹 콘텐츠 데이터를 수집할 것을 지시하는 작업 명령을 전송하는 웹 크롤링 관리 서버 및 그 동작 방법에 대한 것이다.A web content crawling management server that supports efficient distributed crawling of multiple web sites and a method of operating the same are disclosed. The present invention collects all URLs of one or more web pages constituting each website from a plurality of web sites, assigns the URLs of the collected web pages to a plurality of data collection servers in a round-robin manner, and The present invention relates to a web crawling management server that transmits a work command instructing to collect web content data by accessing a web page of a URL assigned to each data collection server for a plurality of data collection servers, and a method of operating the same.
Description
본 발명은 복수의 웹 사이트들에 대한 효율적인 분산 크롤링을 지원하는 웹 콘텐츠 크롤링 관리 서버 및 그 동작 방법에 대한 것이다.The present invention relates to a web content crawling management server that supports efficient distributed crawling of multiple web sites and a method of operating the same.
웹 크롤링이란 웹 페이지로부터 데이터를 추출하기 위한 기술을 의미하는 것으로, 웹 페이지의 복사본을 생성하거나 웹 페이지 상의 데이터를 최신 상태로 유지하기 위해 활용된다. Web crawling refers to a technology for extracting data from web pages, and is used to create copies of web pages or keep data on web pages up to date.
관련해서, 웹 크롤링 기술을 활용하여 웹 페이지로부터 웹 콘텐츠 데이터를 수집하기 위한 기존의 데이터 수집 서버는 웹 사이트별로 웹 콘텐츠 데이터 수집 작업을 수행하도록 구성되어 있었다.In relation to this, the existing data collection server for collecting web content data from web pages using web crawling technology was configured to perform web content data collection for each website.
이로 인해, 기존의 데이터 수집 서버들을 통해 복수의 웹 사이트들에 대한 웹 콘텐츠 데이터 수집 작업을 동시에 수행하고자 하는 경우, 웹 사이트에 따라 웹 콘텐츠 데이터 수집 작업에 소요되는 시간이 다르기 때문에, 먼저 웹 콘텐츠 데이터 수집 작업을 완료한 데이터 수집 서버에 유휴 시간이 발생하여 효율적으로 웹 콘텐츠 데이터 수집 작업을 수행하기 어려운 경우가 많았다.For this reason, if you want to simultaneously perform web content data collection for multiple websites through existing data collection servers, the time required to collect web content data varies depending on the website, so first collect web content data. In many cases, it was difficult to efficiently collect web content data due to idle time occurring on the data collection server that had completed the collection task.
만약, 복수의 웹 사이트들에 대한 웹 콘텐츠 데이터 수집 작업을 동시에 수행할 때, 데이터 수집 서버들 각각에 웹 콘텐츠 데이터 수집 작업들을 적절하게 할당하는 기술이 도입된다면, 데이터 수집 서버들에서 발생할 수 있는 유휴 시간이 최소화될 수 있을 것이다. If a technology that appropriately allocates web content data collection tasks to each of the data collection servers is introduced when performing web content data collection tasks for multiple websites simultaneously, idle time that may occur in the data collection servers can be eliminated. Time can be minimized.
따라서, 데이터 수집 서버들이 보다 효율적으로 웹 콘텐츠 데이터 수집 작업을 수행할 수 있도록 지원하기 위해, 복수의 웹 사이트들에 대한 효율적인 분산 크롤링을 지원하는 기술에 대한 연구가 필요하다.Therefore, in order to support data collection servers to more efficiently perform web content data collection tasks, research is needed on technologies that support efficient distributed crawling of multiple websites.
본 발명은 복수의 웹 사이트들로부터, 각 웹 사이트를 구성하는 하나 이상의 웹 페이지들의 URL을 모두 수집하여, 웹 페이지들의 URL을 복수의 데이터 수집 서버들에 라운드 로빈 방식으로 할당한 후, 상기 복수의 데이터 수집 서버들에 대해, 각 데이터 수집 서버에 할당된 URL의 웹 페이지에 접속하여 웹 콘텐츠 데이터를 수집할 것을 지시하는 작업 명령을 전송하는 웹 크롤링 관리 서버 및 그 동작 방법을 제시함으로써, 상기 복수의 데이터 수집 서버들이 보다 효율적으로 웹 콘텐츠 데이터 수집 작업을 수행할 수 있도록 지원하고자 한다. The present invention collects all URLs of one or more web pages constituting each website from a plurality of web sites, assigns the URLs of the web pages to a plurality of data collection servers in a round-robin manner, and then For data collection servers, by presenting a web crawling management server and an operation method for transmitting a work command instructing to collect web content data by accessing a web page of a URL assigned to each data collection server, We aim to support data collection servers to perform web content data collection tasks more efficiently.
본 발명의 일실시예에 따른 복수의 웹 사이트들에 대한 효율적인 분산 크롤링을 지원하는 웹 콘텐츠 크롤링 관리 서버는 상기 복수의 웹 사이트들로부터, 각 웹 사이트를 구성하는 하나 이상의 웹 페이지들의 URL(Uniform Resource Locator)을 모두 수집함으로써, 복수의 웹 페이지들의 URL로 구성된 수집 데이터 셋(set)을 생성하는 URL 수집부, 상기 수집 데이터 셋에 포함되어 있는 상기 복수의 웹 페이지들 각각의 URL을 URL 큐(queue)에 저장하는 URL 저장 처리부, 상기 URL 큐에 저장되어 있는 상기 복수의 웹 페이지들 각각의 URL을, 상기 URL 큐에서의 저장 순서에 따라 순차적으로 추출하여 k(k는 2 이상의 자연수임)개의 데이터 수집 서버들에 라운드 로빈(round robin) 방식으로 할당하는 URL 할당부 및 상기 k개의 데이터 수집 서버들 각각에 대해, 각 데이터 수집 서버에 할당된 URL의 웹 페이지에 접속하여 웹 콘텐츠 데이터를 수집할 것을 지시하는 작업 명령을 전송하는 명령 전송부를 포함한다. A web content crawling management server that supports efficient distributed crawling of a plurality of web sites according to an embodiment of the present invention collects the URL (Uniform Resource) of one or more web pages constituting each web site from the plurality of web sites. A URL collection unit that generates a collection data set consisting of URLs of a plurality of web pages by collecting all locators, and a URL queue of each URL of the plurality of web pages included in the collection data set. ), a URL storage processing unit that stores the URLs of each of the plurality of web pages stored in the URL queue, sequentially extracting the URLs according to the storage order in the URL queue, and producing k (k is a natural number of 2 or more) pieces of data. A URL allocation unit that allocates to collection servers in a round robin manner, and for each of the k data collection servers, collects web content data by accessing a web page with a URL assigned to each data collection server. It includes a command transmission unit that transmits an instructing work command.
또한, 본 발명의 일실시예에 따른 복수의 웹 사이트들에 대한 효율적인 분산 크롤링을 지원하는 웹 콘텐츠 크롤링 관리 서버의 동작 방법은 상기 복수의 웹 사이트들로부터, 각 웹 사이트를 구성하는 하나 이상의 웹 페이지들의 URL을 모두 수집함으로써, 복수의 웹 페이지들의 URL로 구성된 수집 데이터 셋을 생성하는 단계, 상기 수집 데이터 셋에 포함되어 있는 상기 복수의 웹 페이지들 각각의 URL을 URL 큐에 저장하는 단계, 상기 URL 큐에 저장되어 있는 상기 복수의 웹 페이지들 각각의 URL을, 상기 URL 큐에서의 저장 순서에 따라 순차적으로 추출하여 k(k는 2 이상의 자연수임)개의 데이터 수집 서버들에 라운드 로빈 방식으로 할당하는 단계 및 상기 k개의 데이터 수집 서버들 각각에 대해, 각 데이터 수집 서버에 할당된 URL의 웹 페이지에 접속하여 웹 콘텐츠 데이터를 수집할 것을 지시하는 작업 명령을 전송하는 단계를 포함한다.In addition, a method of operating a web content crawling management server that supports efficient distributed crawling of a plurality of web sites according to an embodiment of the present invention includes selecting one or more web pages constituting each web site from the plurality of web sites. generating a collection data set consisting of the URLs of a plurality of web pages by collecting all the URLs of the plurality of web pages, storing the URLs of each of the plurality of web pages included in the collection data set in a URL queue, the URL The URL of each of the plurality of web pages stored in the queue is sequentially extracted according to the storage order in the URL queue and assigned to k (k is a natural number of 2 or more) data collection servers in a round-robin manner. and transmitting, to each of the k data collection servers, a work command instructing to collect web content data by accessing a web page of a URL assigned to each data collection server.
본 발명은 복수의 웹 사이트들로부터, 각 웹 사이트를 구성하는 하나 이상의 웹 페이지들의 URL을 모두 수집하여, 웹 페이지들의 URL을 복수의 데이터 수집 서버들에 라운드 로빈 방식으로 할당한 후, 상기 복수의 데이터 수집 서버들에 대해, 각 데이터 수집 서버에 할당된 URL의 웹 페이지에 접속하여 웹 콘텐츠 데이터를 수집할 것을 지시하는 작업 명령을 전송하는 웹 크롤링 관리 서버 및 그 동작 방법을 제시함으로써, 상기 복수의 데이터 수집 서버들이 보다 효율적으로 웹 콘텐츠 데이터 수집 작업을 수행할 수 있도록 지원할 수 있다.The present invention collects all URLs of one or more web pages constituting each website from a plurality of web sites, assigns the URLs of the web pages to a plurality of data collection servers in a round-robin manner, and then For data collection servers, by presenting a web crawling management server and an operation method for transmitting a work command instructing to collect web content data by accessing a web page of a URL assigned to each data collection server, It can support data collection servers to perform web content data collection tasks more efficiently.
도 1은 본 발명의 일실시예에 따른 복수의 웹 사이트들에 대한 효율적인 분산 크롤링을 지원하는 웹 콘텐츠 크롤링 관리 서버의 구조를 도시한 도면이다.
도 2 내지 도 3은 본 발명의 일실시예에 따른 복수의 웹 사이트들에 대한 효율적인 분산 크롤링을 지원하는 웹 콘텐츠 크롤링 관리 서버의 동작을 설명하기 위한 도면이다.
도 4는 본 발명의 일실시예에 따른 복수의 웹 사이트들에 대한 효율적인 분산 크롤링을 지원하는 웹 콘텐츠 크롤링 관리 서버의 동작 방법을 도시한 순서도이다.Figure 1 is a diagram illustrating the structure of a web content crawling management server that supports efficient distributed crawling of a plurality of web sites according to an embodiment of the present invention.
2 and 3 are diagrams for explaining the operation of a web content crawling management server that supports efficient distributed crawling of a plurality of web sites according to an embodiment of the present invention.
Figure 4 is a flow chart illustrating a method of operating a web content crawling management server that supports efficient distributed crawling of a plurality of web sites according to an embodiment of the present invention.
이하에서는 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명하기로 한다. 이러한 설명은 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였으며, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 본 명세서 상에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.Hereinafter, embodiments according to the present invention will be described in detail with reference to the attached drawings. This description is not intended to limit the present invention to specific embodiments, but should be understood to include all changes, equivalents, and substitutes included in the spirit and technical scope of the present invention. In describing each drawing, similar reference numerals are used for similar components, and unless otherwise defined, all terms used in this specification, including technical or scientific terms, are within the scope of common knowledge in the technical field to which the present invention pertains. It has the same meaning as generally understood by those who have it.
본 문서에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다. 또한, 본 발명의 다양한 실시예들에 있어서, 각 구성요소들, 기능 블록들 또는 수단들은 하나 또는 그 이상의 하부 구성요소로 구성될 수 있고, 각 구성요소들이 수행하는 전기, 전자, 기계적 기능들은 전자회로, 집적회로, ASIC(Application Specific Integrated Circuit) 등 공지된 다양한 소자들 또는 기계적 요소들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수도 있다. In this document, when a part "includes" a certain component, this means that it may further include other components rather than excluding other components, unless specifically stated to the contrary. Additionally, in various embodiments of the present invention, each component, functional block, or means may be composed of one or more subcomponents, and the electrical, electronic, and mechanical functions performed by each component may be electronic. It may be implemented with various known elements or mechanical elements such as circuits, integrated circuits, and ASICs (Application Specific Integrated Circuits), and may be implemented separately or by integrating two or more into one.
한편, 첨부된 블록도의 블록들이나 흐름도의 단계들은 범용 컴퓨터, 특수용 컴퓨터, 휴대용 노트북 컴퓨터, 네트워크 컴퓨터 등 데이터 프로세싱이 가능한 장비의 프로세서나 메모리에 탑재되어 지정된 기능들을 수행하는 컴퓨터 프로그램 명령들(instructions)을 의미하는 것으로 해석될 수 있다. 이들 컴퓨터 프로그램 명령들은 컴퓨터 장치에 구비된 메모리 또는 컴퓨터에서 판독 가능한 메모리에 저장될 수 있기 때문에, 블록도의 블록들 또는 흐름도의 단계들에서 설명된 기능들은 이를 수행하는 명령 수단을 내포하는 제조물로 생산될 수도 있다. 아울러, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 명령들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 가능한 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 정해진 순서와 달리 실행되는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 실질적으로 동시에 수행되거나, 역순으로 수행될 수 있으며, 경우에 따라 일부 블록들 또는 단계들이 생략된 채로 수행될 수도 있다.Meanwhile, the blocks in the attached block diagram or the steps in the flow chart are computer program instructions that are mounted on the processor or memory of equipment capable of data processing, such as general-purpose computers, special-purpose computers, portable laptop computers, and network computers, and perform designated functions. It can be interpreted to mean. Because these computer program instructions can be stored in a memory provided in a computer device or in a computer-readable memory, the functions described in the blocks of a block diagram or the steps of a flow diagram can be produced as a manufactured product containing instruction means to perform them. It could be. In addition, each block or each step may represent a module, segment, or portion of code that includes one or more executable instructions for executing specified logical function(s). Additionally, it should be noted that in some alternative embodiments, it is possible for functions mentioned in blocks or steps to be executed in a different order. For example, two blocks or steps shown in succession may be performed substantially simultaneously or in reverse order, and in some cases, some blocks or steps may be omitted.
도 1은 본 발명의 일실시예에 따른 복수의 웹 사이트들에 대한 효율적인 분산 크롤링을 지원하는 웹 콘텐츠 크롤링 관리 서버의 구조를 도시한 도면이다.Figure 1 is a diagram illustrating the structure of a web content crawling management server that supports efficient distributed crawling of a plurality of web sites according to an embodiment of the present invention.
도 1을 참조하면, 본 발명의 일실시예에 따른 복수의 웹 사이트들에 대한 효율적인 분산 크롤링을 지원하는 웹 콘텐츠 크롤링 관리 서버는 URL 수집부(111), URL 저장 처리부(112), URL 할당부(113) 및 명령 전송부(114)를 포함한다.Referring to FIG. 1, a web content crawling management server that supports efficient distributed crawling of a plurality of web sites according to an embodiment of the present invention includes a
URL 수집부(111)는 상기 복수의 웹 사이트들로부터, 각 웹 사이트를 구성하는 하나 이상의 웹 페이지들의 URL(Uniform Resource Locator)을 모두 수집함으로써, 복수의 웹 페이지들의 URL로 구성된 수집 데이터 셋(set)을 생성한다. The
예컨대, 상기 복수의 웹 사이트들을 ‘웹 사이트 1, 웹 사이트 2, 웹 사이트 3’이라고 하고, 이때, ‘웹 사이트 1’은 ‘웹 페이지 1, 웹 페이지 2, 웹 페이지 3’으로 구성되어 있다고 하고, ‘웹 사이트 2’는 ‘웹 페이지 A, 웹 페이지 B, 웹 페이지 C, 웹 페이지 D, 웹 페이지 E’로 구성되어 있다고 하며, ‘웹 사이트 3’은 ‘웹 페이지 가, 웹 페이지 나’로 구성되어 있다고 가정하자. For example, the plurality of websites are referred to as ‘Website 1, Website 2, and Website 3’, and at this time, ‘Website 1’ is composed of ‘Webpage 1, Webpage 2, and Webpage 3’. , 'Website 2' is said to be composed of 'Webpage A, Webpage B, Webpage C, Webpage D, Webpage E', and 'Website 3' is composed of 'Webpage A, Webpage B'. Let's assume it is configured.
그러면, URL 수집부(111)는 ‘웹 사이트 1, 웹 사이트 2, 웹 사이트 3’으로부터, ‘웹 페이지 1, 웹 페이지 2, 웹 페이지 3, 웹 페이지 A, 웹 페이지 B, 웹 페이지 C, 웹 페이지 D, 웹 페이지 E, 웹 페이지 가, 웹 페이지 나’의 URL을 모두 수집함으로써, 하기의 표 1과 같은 복수의 웹 페이지들의 URL로 구성된 수집 데이터 셋을 생성할 수 있다. Then, the
URL 저장 처리부(112)는 상기 수집 데이터 셋에 포함되어 있는 상기 복수의 웹 페이지들 각각의 URL을 URL 큐(queue)에 저장한다. The URL
이때, 본 발명의 일실시예에 따르면, URL 저장 처리부(112)는 상기 복수의 웹 페이지들 각각의 URL을 상기 URL 큐에 저장하기 위한 구체적인 구성으로, URL 그룹 생성부(115), 그룹 저장 순번 할당부(116) 및 저장 처리부(117)를 포함할 수 있다.At this time, according to one embodiment of the present invention, the URL
URL 그룹 생성부(115)는 상기 복수의 웹 페이지들 각각의 URL을, 각 URL이 수집된 웹 사이트별로 그룹화함으로써, 상기 복수의 웹 사이트들 각각에 대응되는 URL 그룹을 생성한다. The
그룹 저장 순번 할당부(116)는 상기 복수의 웹 사이트들 각각에 대응되는 URL 그룹에 대해, 각 URL 그룹 내에 포함되어 있는 URL들의 개수가 적은 순으로, 빠른 순번의 그룹 저장 순번을 할당한다. The group storage sequence
저장 처리부(117)는 상기 복수의 웹 페이지들 각각의 URL을, URL 그룹별로 구분하여, 각 URL 그룹에 할당되어 있는 그룹 저장 순번에 따라 순차적으로 상기 URL 큐에 저장하되, 동일한 URL 그룹 내에 포함되어 있는 URL들에 대해서는, 랜덤한 저장 순번으로 상기 URL 큐에 저장함으로써, 상기 복수의 웹 페이지들 각각의 URL을 상기 URL 큐에 저장한다. The
이하에서는, URL 그룹 생성부(115), 그룹 저장 순번 할당부(116) 및 저장 처리부(117)의 동작을 예를 들어, 상세히 설명하기로 한다.Hereinafter, the operations of the URL
먼저, 전술한 예와 같이, URL 수집부(111)에 의해, 상기 표 1과 같은 수집 데이터 셋이 생성되었다고 가정하자.First, let us assume that, as in the above-described example, a collection data set as shown in Table 1 above is created by the
그러면, URL 그룹 생성부(115)는 상기 표 1과 같은 수집 데이터 셋에 포함되어 있는 상기 복수의 웹 페이지들 각각의 URL을, 각 URL이 수집된 웹 사이트별로 그룹화함으로써, ‘웹 사이트 1, 웹 사이트 2, 웹 사이트 3’ 각각에 대응되는 URL 그룹을 하기의 표 2와 같이 생성할 수 있다. Then, the URL
그러면, 그룹 저장 순번 할당부(116)는 ‘URL 그룹 1, URL 그룹 2, URL 그룹 3’에 대해, 각 URL 그룹 내에 포함되어 있는 URL들의 개수가 적은 순으로, 빠른 순번의 그룹 저장 순번을 할당할 수 있다. Then, the group storage
관련해서, ‘URL 그룹 1, URL 그룹 2, URL 그룹 3’ 각각 내에 포함되어 있는 URL들의 개수는 ‘3개, 5개, 2개’이므로, 그룹 저장 순번 할당부(116)는 ‘URL 그룹 1, URL 그룹 2, URL 그룹 3’ 각각에 대해, 그룹 저장 순번을 ‘2번, 3번, 1번’과 같이 할당할 수 있다. In relation to this, the number of URLs included in each of 'URL group 1, URL group 2, and URL group 3' is '3, 5, and 2', so the group storage
그러고 나서, 저장 처리부(117)는 상기 표 1과 같은 상기 복수의 웹 페이지들 각각의 URL을, URL 그룹별로 구분하여, 각 URL 그룹에 할당되어 있는 그룹 저장 순번에 따라 순차적으로 상기 URL 큐에 저장하되, 동일한 URL 그룹 내에 포함되어 있는 URL들에 대해서는, 랜덤한 저장 순번으로 상기 URL 큐에 저장함으로써, 상기 복수의 웹 페이지들 각각의 URL을, 상기 URL 큐에 하기의 표 3과 같이 저장할 수 있다. Then, the
이렇게, URL 저장 처리부(112)에 의해, 상기 복수의 웹 페이지들 각각의 URL이 상기 URL 큐에 저장되면, URL 할당부(113)는 상기 URL 큐에 저장되어 있는 상기 복수의 웹 페이지들 각각의 URL을, 상기 URL 큐에서의 저장 순서에 따라 순차적으로 추출하여 k(k는 2 이상의 자연수임)개의 데이터 수집 서버들(131, 132, 133)에 라운드 로빈(round robin) 방식으로 할당한다. In this way, when the URL of each of the plurality of web pages is stored in the URL queue by the URL
명령 전송부(114)는 k개의 데이터 수집 서버들(131, 132, 133) 각각에 대해, 각 데이터 수집 서버에 할당된 URL의 웹 페이지에 접속하여 웹 콘텐츠 데이터를 수집할 것을 지시하는 작업 명령을 전송한다. The
이하에서는, URL 할당부(113) 및 명령 전송부(114)의 동작을 예를 들어, 상세히 설명하기로 한다. Hereinafter, the operations of the
먼저, k를 ‘3’이라고 하고, ‘3’개의 데이터 수집 서버들(131, 132, 133)을 ‘데이터 수집 서버 1(131), 데이터 수집 서버 2(132), 데이터 수집 서버 3(133)’이라고 하며, 전술한 예와 같이, 저장 처리부(117)에 의해, 복수의 웹 페이지들 각각의 URL이 상기 표 3과 같은 URL 큐에 저장되었다고 가정하자. First, let k be '3', and the '3' data collection servers (131, 132, 133) are 'data collection server 1 (131), data collection server 2 (132), and data collection server 3 (133). ', and let us assume that, as in the above-described example, the URL of each of the plurality of web pages is stored in the URL queue as shown in Table 3 above by the
그러면, URL 할당부(113)는 상기 표 3과 같은 URL 큐에 저장되어 있는 상기 복수의 웹 페이지들 각각의 URL을, 상기 URL 큐에서의 저장 순서에 따라 순차적으로 추출하여 도 2에 도시된 그림과 같이, ‘데이터 수집 서버 1(131), 데이터 수집 서버 2(132), 데이터 수집 서버 3(133)’에 라운드 로빈 방식으로 할당할 수 있다.Then, the
그러고 나서, 명령 전송부(114)는 ‘데이터 수집 서버 1(131), 데이터 수집 서버 2(132), 데이터 수집 서버 3(133)’ 각각에 대해, 각 데이터 수집 서버에 할당된 URL의 웹 페이지에 접속하여 웹 콘텐츠 데이터를 수집할 것을 지시하는 작업 명령을 전송할 수 있다. Then, the
관련해서, 도 2에 도시된 그림에서는, ‘데이터 수집 서버 1(131)’에 ‘URL 나, URL 1, URL E, URL B’가 할당되었고, ‘데이터 수집 서버 2(132)’에 ‘URL 가, URL 2, URL A’가 할당되었으며, ‘데이터 수집 서버 3(133)’에 ‘URL 3, URL C, URL D’가 할당되었으므로, 명령 전송부(114)는 ‘데이터 수집 서버 1(131)’로 ‘웹 페이지 나, 웹 페이지 1, 웹 페이지 E, 웹 페이지 B’에 대한 작업 명령을 전송할 수 있고, ‘데이터 수집 서버 2(132)’로 ‘웹 페이지 가, 웹 페이지 2, 웹 페이지 A’에 대한 작업 명령을 전송할 수 있으며, ‘데이터 수집 서버 3(133)’으로 ‘웹 페이지 3, 웹 페이지 C, 웹 페이지 D’에 대한 작업 명령을 전송할 수 있다. Relatedly, in the picture shown in FIG. 2, 'URL B, URL 1, URL E, URL B' is assigned to 'data collection server 1 (131)', and 'URL B' is assigned to 'data collection server 2 (132)'. A, URL 2, URL A' are assigned, and 'URL 3, URL C, URL D' is assigned to 'data collection server 3 (133)', so the
즉, 웹 콘텐츠 크롤링 관리 서버(110)는 상기 복수의 웹 사이트들로부터, 각 웹 사이트를 구성하는 하나 이상의 웹 페이지들의 URL을 모두 수집하여, 상기 복수의 웹 페이지들 각각의 URL을 k개의 데이터 수집 서버들(131, 132, 133)에 라운드 로빈 방식으로 할당한 후, k개의 데이터 수집 서버들(131, 132, 133)에 대해, 각 데이터 수집 서버에 할당된 URL의 웹 페이지에 접속하여 웹 콘텐츠 데이터를 수집할 것을 지시하는 작업 명령을 전송할 수 있다. That is, the web content
본 발명의 일실시예에 따르면, 웹 콘텐츠 크롤링 관리 서버(110)는 요청 수신부(118) 및 정보 전송부(119)를 더 포함할 수 있다.According to one embodiment of the present invention, the web content
요청 수신부(118)는 명령 전송부(114)에 의해, k개의 데이터 수집 서버들(131, 132, 133) 각각으로 상기 작업 명령이 전송된 이후, k개의 데이터 수집 서버들(131, 132, 133)에서, 상기 복수의 웹 페이지들 중 어느 하나의 웹 페이지에 대한 웹 콘텐츠 데이터 수집 작업이 시작될 때마다, k개의 데이터 수집 서버들(131, 132, 133)로부터, 웹 콘텐츠 데이터 수집을 위한 웹 페이지의 본문 영역에 대한 정보의 전송 요청을 수신한다. After the work command is transmitted to each of the k
예컨대, 전술한 예와 같이, 명령 전송부(114)에 의해, ‘데이터 수집 서버 1(131), 데이터 수집 서버 2(132), 데이터 수집 서버 3(133)’ 각각으로 상기 작업 명령이 전송되었다고 하고, 그 이후, ‘데이터 수집 서버 1(131)’에서 ‘웹 페이지 E’에 대한 웹 콘텐츠 데이터 수집 작업이 시작되었다고 하는 경우, 요청 수신부(118)는 ‘데이터 수집 서버 1(131)’로부터 ‘웹 페이지 E’에 대한 정보 요청을 수신할 수 있다. For example, as in the above-described example, the work command is transmitted to each of 'data collection server 1 (131), data collection server 2 (132), and data collection server 3 (133)' by the
이렇게, k개의 데이터 수집 서버들(131, 132, 133) 중 어느 하나인 제1 데이터 수집 서버에서, 상기 복수의 웹 페이지들 중 어느 하나인 제1 웹 페이지에 대한 웹 콘텐츠 데이터 수집 작업이 시작됨에 따라, 상기 제1 데이터 수집 서버로부터, 상기 제1 웹 페이지의 본문 영역에 대한 정보의 전송 요청이 수신되면, 정보 전송부(119)는 상기 제1 웹 페이지의 본문 영역에 대한 정보를 확인한 후, 상기 제1 웹 페이지의 본문 영역에 대한 정보를 상기 제1 데이터 수집 서버로 전송한다. In this way, in the first data collection server, which is one of the k
이때, 본 발명의 일실시예에 따르면, 정보 전송부(119)는 상기 제1 웹 페이지의 본문 영역에 대한 정보를 확인한 후, 상기 제1 웹 페이지의 본문 영역에 대한 정보를 상기 제1 데이터 수집 서버로 전송하기 위한 구체적인 구성으로, 이벤트 발생부(120), 영역 확인부(121), 위치 확인부(122), 추가 영역 확인부(123), 추가 위치 확인부(124), 본문 영역 결정부(125) 및 전송 처리부(126)를 포함할 수 있다.At this time, according to one embodiment of the present invention, the
이벤트 발생부(120)는 상기 제1 데이터 수집 서버에서 상기 제1 웹 페이지에 대한 웹 콘텐츠 데이터 수집 작업이 시작됨에 따라, 상기 제1 데이터 수집 서버로부터, 상기 제1 웹 페이지의 본문 영역에 대한 정보의 전송 요청이 수신되면, 상기 제1 웹 페이지의 본문 영역을 확인하기 위한 본문 영역 확인 이벤트를 발생시킨다.As the first data collection server starts collecting web content data for the first web page, the
영역 확인부(121)는 이벤트 발생부(120)에 의해 상기 본문 영역 확인 이벤트가 발생되면, 웹 브라우저를 통해 상기 제1 웹 페이지를 렌더링한 후, 렌더링된 상기 제1 웹 페이지를 구성하는 마크업 언어(markup language) 코드를 파싱(parsing)하여, 상기 제1 웹 페이지를 구성하는 복수의 부분 영역들의 크기를 확인한다. When the body area confirmation event is generated by the
이하에서는, 이벤트 발생부(120) 및 영역 확인부(121)의 동작을 예를 들어, 상세히 설명하기로 한다. Hereinafter, the operations of the
먼저, 전술한 예와 같이, ‘데이터 수집 서버 1(131)’에서 ‘웹 페이지 E’에 대한 웹 콘텐츠 데이터 수집 작업이 시작됨에 따라, 요청 수신부(118)를 통해, ‘데이터 수집 서버 1(131)’로부터 ‘웹 페이지 E’에 대한 정보 요청이 수신되었다고 가정하자. First, as in the above-mentioned example, as the web content data collection task for 'web page E' begins in 'data collection server 1 (131)', 'data collection server 1 (131)' Let's assume that a request for information about 'web page E' is received from ')'.
그러면, 이벤트 발생부(120)는 ‘웹 페이지 E’의 본문 영역을 확인하기 위한 본문 영역 확인 이벤트를 발생시킬 수 있다.Then, the
이렇게, 이벤트 발생부(120)에 의해, ‘웹 페이지 E’에 대한 본문 영역 확인 이벤트가 발생되면, 영역 확인부(121)는 웹 브라우저를 통해 ‘웹 페이지 E’를 렌더링한 후, 렌더링된 ‘웹 페이지 E’를 구성하는 마크업 언어 코드를 파싱하여, ‘웹 페이지 E’를 구성하는 복수의 부분 영역들의 크기를 확인할 수 있다. In this way, when a body area confirmation event for 'web page E' is generated by the
이와 관련해서, ‘웹 페이지 E’가 도 3의 도면부호 200으로 표시된 그림과 같다고 하는 경우, ‘웹 페이지 E(200)’는 ‘부분 영역 1(201), 부분 영역 2(202), 부분 영역 3(203), 부분 영역 4(204)’로 구성되어 있으므로, 영역 확인부(121)는 ‘부분 영역 1(201), 부분 영역 2(202), 부분 영역 3(203), 부분 영역 4(204)’의 크기를 확인할 수 있다. In this regard, if 'web page E' is the same as the picture indicated by
이렇게, 영역 확인부(121)에 의해, 상기 제1 웹 페이지를 구성하는 복수의 부분 영역들의 크기가 확인되면, 위치 확인부(122)는 상기 제1 웹 페이지를 구성하는 복수의 부분 영역들 중 최대의 크기를 갖는 부분 영역을 후보 본문 영역으로 지정한 후, 상기 후보 본문 영역의 상기 제1 웹 페이지 상에서의 배치 위치인 제1 위치를 확인한다.In this way, when the size of the plurality of partial areas constituting the first web page is confirmed by the
이때, 본 발명의 일실시예에 따르면, 영역 확인부(121)는 상기 후보 본문 영역을 구성하는 꼭짓점들 중 어느 하나인 기준 꼭짓점의 상기 제1 웹 페이지 상에서의 위치를, 상기 후보 본문 영역의 상기 제1 웹 페이지 상에서의 배치 위치인 상기 제1 위치로 확인할 수 있다. At this time, according to one embodiment of the present invention, the
예컨대, 전술한 예에 따라, 영역 확인부(121)에 의해, ‘부분 영역 1(201), 부분 영역 2(202), 부분 영역 3(203), 부분 영역 4(204)’의 크기가 확인되었다고 하고, ‘부분 영역 1(201), 부분 영역 2(202), 부분 영역 3(203), 부분 영역 4(204)’ 중 최대의 크기를 갖는 부분 영역이 ‘부분 영역 2(202)’이라고 가정하자. For example, according to the above-described example, the sizes of ‘partial area 1 (201), partial area 2 (202), partial area 3 (203), and partial area 4 (204)’ are confirmed by the
그러면, 위치 확인부(122)는 ‘부분 영역 2(202)’를 후보 본문 영역으로 지정할 수 있다. Then, the
이때, ‘부분 영역 2(202)’를 구성하는 꼭짓점들(211, 212, 213, 214) 중 좌측 상단 지점의 꼭짓점(211)을 기준 꼭짓점이라고 하는 경우, 위치 확인부(122)는 기준 꼭짓점(211)의 ‘웹 페이지 E(200)’ 상에서의 위치(211)를, ‘부분 영역 2(202)’의 ‘웹 페이지 E(200)’ 상에서의 배치 위치인 상기 제1 위치로 확인할 수 있다.At this time, when the
이렇게, 위치 확인부(122)에 의해 상기 제1 위치가 확인되면, 추가 영역 확인부(123)는 상기 제1 웹 페이지를 포함하는 웹 사이트인 제1 웹 사이트를 구성하는 복수의 제2 웹 페이지들로부터, n(n은 2 이상의 자연수임)개의 웹 페이지들을 랜덤하게 선택하고, 상기 웹 브라우저를 통해 상기 n개의 웹 페이지들 각각을 렌더링한 후, 렌더링된 상기 n개의 웹 페이지들 각각의 마크업 언어 코드를 파싱하여, 상기 n개의 웹 페이지들 각각을 구성하는 복수의 부분 영역들의 크기를 확인한다. In this way, when the first location is confirmed by the
예컨대, n을 ‘3’이라고 하고, 전술한 예와 같이, 위치 확인부(122)에 의해, 제1 위치(211)가 확인되었다고 가정하자. For example, let n be ‘3’ and assume that the
이때, 전술한 예에 따르면, ‘웹 페이지 E(200)’를 포함하는 웹 사이트는 ‘웹 사이트 2’이고, ‘웹 사이트 2’는 ‘웹 페이지 A, 웹 페이지 B, 웹 페이지 C, 웹 페이지 D, 웹 페이지 E’로 구성되어 있으므로, 추가 영역 확인부(123)는 ‘웹 페이지 A, 웹 페이지 B, 웹 페이지 C, 웹 페이지 D, 웹 페이지 E’로부터, ‘3개’의 웹 페이지들을 랜덤하게 선택할 수 있다.At this time, according to the above-mentioned example, the website including 'webpage E (200)' is 'website 2', and 'website 2' is 'webpage A, webpage B, webpage C, webpage D, web page E', the additional
이와 관련해서, 추가 영역 확인부(123)에 의해 랜덤하게 선택된 ‘3개’의 웹 페이지들이 ‘웹 페이지 A, 웹 페이지 B, 웹 페이지 D’라고 하는 경우, 추가 영역 확인부(123)는 상기 웹 브라우저를 통해 ‘웹 페이지 A, 웹 페이지 B, 웹 페이지 D’ 각각을 렌더링한 후, 렌더링된 ‘웹 페이지 A, 웹 페이지 B, 웹 페이지 D’ 각각의 마크업 언어 코드를 파싱하여, ‘웹 페이지 A, 웹 페이지 B, 웹 페이지 D’ 각각을 구성하는 복수의 부분 영역들의 크기를 확인할 수 있다. In this regard, if the 'three' web pages randomly selected by the additional
이렇게, 추가 영역 확인부(123)에 의해, 상기 n개의 웹 페이지들 각각을 구성하는 복수의 부분 영역들의 크기가 확인되면, 추가 위치 확인부(124)는 상기 n개의 웹 페이지들 각각에 대해, 각 웹 페이지를 구성하는 복수의 부분 영역들 중 최대의 크기를 갖는 부분 영역을 기준 영역으로 지정함으로써, 상기 n개의 웹 페이지들 각각에 대응되는 기준 영역을 지정한 후, 상기 n개의 웹 페이지들 각각에 대응되는 기준 영역의 각 웹 페이지 상에서의 배치 위치를, 상기 n개의 웹 페이지들 각각에 대응되는 기준 위치로 확인한다. In this way, when the size of the plurality of partial areas constituting each of the n web pages is confirmed by the additional
이때, 본 발명의 일실시예에 따르면, 추가 위치 확인부(124)는 상기 n개의 웹 페이지들 각각에 대응되는 기준 영역을 구성하는 꼭짓점들 중 상기 기준 꼭짓점과 대응되는 지점의 꼭짓점의 각 웹 페이지 상에서의 위치를, 상기 n개의 웹 페이지들 각각에 대응되는 기준 위치로 확인할 수 있다.At this time, according to one embodiment of the present invention, the additional
예컨대, 전술한 예에 따라, 추가 영역 확인부(123)에 의해, ‘웹 페이지 A, 웹 페이지 B, 웹 페이지 D’ 각각을 구성하는 복수의 부분 영역들의 크기가 확인되었다고 가정하자. For example, according to the above-described example, assume that the sizes of a plurality of partial regions constituting each of ‘web page A, web page B, and web page D’ have been confirmed by the additional
그러면, 추가 위치 확인부(124)는 ‘웹 페이지 A, 웹 페이지 B, 웹 페이지 D’ 각각에 대해, 각 웹 페이지를 구성하는 복수의 부분 영역들 중 최대의 크기를 갖는 부분 영역을 기준 영역으로 지정함으로써, ‘웹 페이지 A, 웹 페이지 B, 웹 페이지 D’ 각각에 대응되는 기준 영역을 지정할 수 있다. Then, the additional
관련해서, ‘웹 페이지 A’를 구성하는 복수의 부분 영역들 중 최대의 크기를 갖는 부분 영역을 ‘부분 영역 5’라고 하는 경우, 추가 위치 확인부(124)는 ‘부분 영역 5’를 ‘웹 페이지 A’에 대응되는 기준 영역으로 지정할 수 있다. In relation to this, when the partial area with the largest size among the plurality of partial areas constituting 'web page A' is called 'partial area 5', the additional
이러한 방식으로, 추가 위치 확인부(124)는 ‘웹 페이지 A, 웹 페이지 B, 웹 페이지 D’ 각각에 대응되는 기준 영역을 ‘부분 영역 5, 부분 영역 6, 부분 영역 7’과 같이 지정할 수 있다. In this way, the additional
이때, 전술한 예에 따르면, 상기 기준 꼭짓점(211)은 ‘부분 영역 2(202)’를 구성하는 꼭짓점들(211, 212, 213, 214) 중 좌측 상단 지점의 꼭짓점이므로, 추가 위치 확인부(124)는 ‘부분 영역 5, 부분 영역 6, 부분 영역 7’을 구성하는 꼭짓점들 중 좌측 상단 지점의 꼭짓점의 각 웹 페이지 상에서의 위치를, ‘웹 페이지 A, 웹 페이지 B, 웹 페이지 D’ 각각에 대응되는 기준 위치로 확인할 수 있다.At this time, according to the above-described example, the
관련해서, ‘웹 페이지 A’에 대응되는 기준 영역은 ‘부분 영역 5’이므로, 추가 위치 확인부(124)는 ‘부분 영역 5’를 구성하는 꼭짓점들 중 좌측 상단 지점의 꼭짓점의 ‘웹 페이지 A’ 상에서의 위치를, ‘웹 페이지 A’에 대응되는 기준 위치로 확인할 수 있다. In relation to this, the reference area corresponding to 'web page A' is 'partial area 5', so the additional
이러한 방식으로, 추가 위치 확인부(124)는 ‘웹 페이지 A, 웹 페이지 B, 웹 페이지 D’ 각각에 대응되는 기준 위치를 확인할 수 있다.In this way, the additional
이렇게, 추가 위치 확인부(124)에 의해, 상기 n개의 웹 페이지들 각각에 대응되는 기준 위치가 확인되면, 본문 영역 결정부(125)는 상기 n개의 웹 페이지들 각각에 대응되는 기준 위치가 상기 제1 위치와 매칭되는지 여부를 확인하여, 상기 n개의 웹 페이지들 중 사전 설정된 기준 개수 이상의 제3 웹 페이지들 각각에 대응되는 기준 위치가 상기 제1 위치와 매칭되는 것으로 확인되면, 상기 후보 본문 영역을 상기 제1 웹 페이지의 본문 영역인 것으로 결정한다. In this way, when the reference position corresponding to each of the n web pages is confirmed by the additional
이때, 본 발명의 일실시예에 따르면, 본문 영역 결정부(125)는 상기 n개의 웹 페이지들 각각에 대응되는 기준 위치와 상기 제1 위치를 서로 비교하여, 상기 n개의 웹 페이지들 각각에 대응되는 기준 위치와 상기 제1 위치 간의 이격 거리가 사전 설정된 기준 거리 이내인 것으로 확인되는 경우, 상기 n개의 웹 페이지들 각각에 대응되는 기준 위치가 상기 제1 위치와 매칭되는 것으로 확인할 수 있다. At this time, according to one embodiment of the present invention, the body
예컨대, 전술한 예와 같이, 위치 확인부(122)에 의해, 제1 위치(211)가 확인되었다고 하고, 추가 위치 확인부(124)에 의해, ‘웹 페이지 A, 웹 페이지 B, 웹 페이지 D’ 각각에 대응되는 기준 위치가 확인되었다고 가정하자. For example, as in the above-mentioned example, it is assumed that the
그러면, 본문 영역 결정부(125)는 ‘웹 페이지 A, 웹 페이지 B, 웹 페이지 D’ 각각에 대응되는 기준 위치와 제1 위치(211)를 서로 비교하여 ‘웹 페이지 A, 웹 페이지 B, 웹 페이지 D’ 각각에 대응되는 기준 위치와 제1 위치(211)가 매칭되는지 여부를 확인할 수 있다.Then, the body
관련해서, ‘웹 페이지 A’에 대응되는 기준 위치와 제1 위치(211)를 서로 비교하여, ‘웹 페이지 A’에 대응되는 기준 위치와 제1 위치(211) 간의 이격 거리가 사전 설정된 기준 거리 이내인 것으로 확인되었다고 하는 경우, 본문 영역 결정부(125)는 ‘웹 페이지 A’에 대응되는 기준 위치가 제1 위치(211)와 매칭되는 것으로 확인할 수 있다.In relation to this, the reference position corresponding to 'web page A' and the
이러한 방식으로, 본문 영역 결정부(125)는 ‘웹 페이지 A, 웹 페이지 B, 웹 페이지 D’ 각각에 대응되는 기준 위치가 제1 위치(211)와 매칭되는지 여부를 확인할 수 있다.In this way, the body
이때, 사전 설정된 기준 개수를 ‘2’개라고 하고, ‘웹 페이지 A, 웹 페이지 B, 웹 페이지 D’ 중 ‘웹 페이지 A, 웹 페이지 B’ 각각에 대응되는 기준 위치가 제1 위치(211)와 매칭되는 것으로 확인되었다고 하는 경우, 본문 영역 결정부(125)는 ‘부분 영역 2(202)’를 ‘웹 페이지 E(200)’의 본문 영역인 것으로 결정할 수 있다.At this time, the preset reference number is '2', and the reference position corresponding to each of 'web page A, web page B' among 'web page A, web page B, and web page D' is the first position (211). If it is confirmed that it matches, the body
이렇게, 본문 영역 결정부(125)에 의해, 상기 후보 본문 영역이 상기 제1 웹 페이지의 본문 영역인 것으로 결정되면, 전송 처리부(126)는 상기 후보 본문 영역에 대한 정보를 상기 제1 웹 페이지의 본문 영역에 대한 정보로 지정하여 상기 제1 데이터 수집 서버로 전송한다. In this way, if the candidate body area is determined by the body
예컨대, 전술한 예와 같이, 본문 영역 결정부(125)에 의해, ‘부분 영역 2(202)’가 ‘웹 페이지 E(200)’의 본문 영역인 것으로 결정되었다고 하는 경우, 전송 처리부(126)는 ‘부분 영역 2(202)’에 대한 정보를, ‘웹 페이지 E(200)’의 본문 영역에 대한 정보로 지정하여 ‘데이터 수집 서버 1(131)’로 전송할 수 있다. For example, as in the above-described example, if the body
그러면, ‘데이터 수집 서버 1(131)’은 ‘웹 페이지 E(200)’에서 웹 콘텐츠 데이터를 수집할 때, ‘웹 페이지 E(200)’의 본문 영역에 대한 정보를 기초로 ‘웹 페이지 E(200)’의 본문 영역인 ‘부분 영역 2(202)’로부터 웹 콘텐츠 데이터를 수집할 수 있다. 이렇게, ‘데이터 수집 서버 1(131)’은 ‘웹 페이지 E(200)’의 본문 영역으로부터 웹 콘텐츠 데이터를 수집함으로써, ‘웹 페이지 E(200)’의 다른 영역에 존재하는 불필요한 데이터들을 수집하지 않을 수 있다. Then, when 'data collection server 1 (131)' collects web content data from 'web page E (200)', 'web page E (200)' based on information about the body area of 'web page E (200)' Web content data can be collected from 'partial area 2 (202)', which is the body area of '(200)'. In this way, 'data collection server 1 (131)' collects web content data from the body area of 'web page E (200)', thereby preventing unnecessary data existing in other areas of 'web page E (200)' from being collected. It may not be possible.
결국, 본 발명에 따른 웹 콘텐츠 크롤링 관리 서버(110)는 소정의 데이터 수집 서버가 특정 웹 페이지의 콘텐츠 데이터를 수집할 때마다, 해당 데이터 수집 서버로부터 본문 영역의 정보를 전송하라는 요청을 수신하게 되고, 이렇게, 본문 영역에 대한 정보의 전송 요청을 수신하게 되면, 그 요청에 대응하여 웹 페이지의 본문 영역을 확인해서 그에 대한 정보를 데이터 수집 서버로 전송해 줌으로써, 데이터 수집 서버들이 웹 페이지의 본문 영역으로부터 보다 정제된 웹 콘텐츠 데이터들만을 수집할 수 있도록 지원할 수 있다.Ultimately, the web content
본 발명의 일실시예에 따르면, 정보 전송부(119)는 테이블 생성부(127) 및 정보 신속 전송부(128)를 더 포함할 수 있다. According to one embodiment of the present invention, the
테이블 생성부(127)는 본문 영역 결정부(125)에 의해, 상기 후보 본문 영역이 상기 제1 웹 페이지의 본문 영역인 것으로 결정되면, 상기 제3 웹 페이지들 각각에 대응되는 기준 영역을 상기 제3 웹 페이지들 각각의 본문 영역으로 지정한 후, 상기 제3 웹 페이지들 각각의 본문 영역에 대한 정보를 기록한 본문 영역 테이블을 생성한다. When the
정보 신속 전송부(128)는 테이블 생성부(127)에 의해, 상기 본문 영역 테이블이 생성된 이후, k개의 데이터 수집 서버들(131, 132, 133) 중 다른 하나인 제2 데이터 수집 서버에서 상기 제3 웹 페이지들 중 어느 하나인 제4 웹 페이지에 대한 웹 콘텐츠 데이터 수집 작업이 시작됨에 따라, 상기 제2 데이터 수집 서버로부터, 상기 제4 웹 페이지의 본문 영역에 대한 정보의 전송 요청이 수신되면, 상기 제4 웹 페이지의 본문 영역을 결정하기 위한 과정의 수행 없이, 상기 본문 영역 테이블로부터, 상기 본문 영역 테이블 상에 기록되어 있는 상기 제4 웹 페이지의 본문 영역에 대한 정보를 추출한 후, 상기 제4 웹 페이지의 본문 영역에 대한 정보를 상기 제2 데이터 수집 서버로 전송한다.After the body area table is created by the
이하에서는, 테이블 생성부(127) 및 정보 신속 전송부(128)의 동작을 예를 들어, 상세히 설명하기로 한다. Hereinafter, the operations of the
먼저, 전술한 예와 같이, 본문 영역 결정부(125)에 의해, ‘웹 페이지 A, 웹 페이지 B’ 각각에 대응되는 기준 위치가 제1 위치(211)와 매칭되는 것으로 확인됨에 따라, ‘부분 영역 2(202)’가 ‘웹 페이지 E(200)’의 본문 영역인 것으로 결정되었다고 하는 경우, 테이블 생성부(127)는 ‘웹 페이지 A, 웹 페이지 B’ 각각에 대응되는 기준 영역인 ‘부분 영역 5, 부분 영역 6’에 대한 정보를 기록한 본문 영역 테이블을, 하기의 표 4와 같이 생성할 수 있다. First, as in the above-mentioned example, as the reference position corresponding to each of 'web page A and web page B' is confirmed by the body
이렇게, 테이블 생성부(127)에 의해, 상기 표 4와 같은 본문 영역 테이블이 생성된 이후, ‘데이터 수집 서버 2(132)’에서 ‘웹 페이지 A’에 대한 웹 콘텐츠 데이터 수집 작업이 시작됨에 따라, ‘데이터 수집 서버 2(132)’로부터, ‘웹 페이지 A’의 본문 영역에 대한 정보의 전송 요청이 웹 콘텐츠 크롤링 관리 서버(110)에 수신되었다고 가정하자. In this way, after the
그러면, 정보 신속 전송부(128)는, 영역 확인부(121), 위치 확인부(122), 추가 영역 확인부(123), 추가 위치 확인부(124) 및 본문 영역 결정부(125)를 통한 ‘웹 페이지 A’의 본문 영역을 결정하기 위한 과정의 수행 없이, 상기 표 4와 같은 본문 영역 테이블로부터, ‘웹 페이지 A’의 본문 영역인 ‘부분 영역 5’에 대한 정보를 추출한 후, ‘부분 영역 5’에 대한 정보를 ‘데이터 수집 서버 2(132)’로 전송할 수 있다. Then, the information
한편, ‘데이터 수집 서버 3(133)’에서 ‘웹 페이지 C’에 대한 콘텐츠 데이터 수집 작업이 시작됨에 따라, ‘데이터 수집 서버 3(133)’으로부터, ‘웹 페이지 C’의 본문 영역에 대한 정보의 전송 요청이 웹 콘텐츠 크롤링 관리 서버(110)에 수신되었다고 하는 경우에는, 상기 표 4와 같은 본문 영역 테이블 상에는 ‘웹 페이지 C’의 본문 영역에 대한 정보가 기록되어 있지 않으므로, 웹 콘텐츠 크롤링 관리 서버(110)는 영역 확인부(121), 위치 확인부(122), 추가 영역 확인부(123), 추가 위치 확인부(124) 및 본문 영역 결정부(125)를 통해 ‘웹 페이지 C’의 본문 영역을 결정한 후, ‘웹 페이지 C’의 본문 영역에 대한 정보를 ‘데이터 수집 서버 3(133)’으로 전송할 수 있다.Meanwhile, as the content data collection for 'Web Page C' begins in 'Data Collection Server 3 (133)', information about the body area of 'Web Page C' is collected from 'Data Collection Server 3 (133)' In the case where the transmission request is received by the web content
도 4는 본 발명의 일실시예에 따른 복수의 웹 사이트들에 대한 효율적인 분산 크롤링을 지원하는 웹 콘텐츠 크롤링 관리 서버의 동작 방법을 도시한 순서도이다.Figure 4 is a flow chart illustrating a method of operating a web content crawling management server that supports efficient distributed crawling of a plurality of web sites according to an embodiment of the present invention.
단계(S410)에서는 상기 복수의 웹 사이트들로부터, 각 웹 사이트를 구성하는 하나 이상의 웹 페이지들의 URL을 모두 수집함으로써, 복수의 웹 페이지들의 URL로 구성된 수집 데이터 셋을 생성한다. In step S410, the URL of one or more web pages constituting each website is collected from the plurality of web sites, thereby generating a collection data set consisting of the URLs of the plurality of web pages.
단계(S420)에서는 상기 수집 데이터 셋에 포함되어 있는 상기 복수의 웹 페이지들 각각의 URL을 URL 큐에 저장한다. In step S420, the URL of each of the plurality of web pages included in the collected data set is stored in a URL queue.
단계(S430)에서는 상기 URL 큐에 저장되어 있는 상기 복수의 웹 페이지들 각각의 URL을, 상기 URL 큐에서의 저장 순서에 따라 순차적으로 추출하여 k(k는 2 이상의 자연수임)개의 데이터 수집 서버들에 라운드 로빈 방식으로 할당한다. In step S430, the URLs of each of the plurality of web pages stored in the URL queue are sequentially extracted according to the storage order in the URL queue, and k (k is a natural number of 2 or more) data collection servers. Allocate in a round robin manner.
단계(S440)에서는 상기 k개의 데이터 수집 서버들 각각에 대해, 각 데이터 수집 서버에 할당된 URL의 웹 페이지에 접속하여 웹 콘텐츠 데이터를 수집할 것을 지시하는 작업 명령을 전송한다. In step S440, a work command instructing to collect web content data by accessing a web page of a URL assigned to each data collection server is transmitted to each of the k data collection servers.
이때, 본 발명의 일실시예에 따르면, 단계(S420)에서는 상기 복수의 웹 페이지들 각각의 URL을, 각 URL이 수집된 웹 사이트별로 그룹화함으로써, 상기 복수의 웹 사이트들 각각에 대응되는 URL 그룹을 생성하는 단계, 상기 복수의 웹 사이트들 각각에 대응되는 URL 그룹에 대해, 각 URL 그룹 내에 포함되어 있는 URL들의 개수가 적은 순으로, 빠른 순번의 그룹 저장 순번을 할당하는 단계 및 상기 복수의 웹 페이지들 각각의 URL을, URL 그룹별로 구분하여, 각 URL 그룹에 할당되어 있는 그룹 저장 순번에 따라 순차적으로 상기 URL 큐에 저장하되, 동일한 URL 그룹 내에 포함되어 있는 URL들에 대해서는, 랜덤한 저장 순번으로 상기 URL 큐에 저장함으로써, 상기 복수의 웹 페이지들 각각의 URL을 상기 URL 큐에 저장하는 단계를 포함할 수 있다. At this time, according to one embodiment of the present invention, in step S420, the URLs of each of the plurality of web pages are grouped by the website from which each URL is collected, thereby forming a URL group corresponding to each of the plurality of web sites. generating a URL group corresponding to each of the plurality of web sites, allocating a group storage sequence number in descending order in descending order of the number of URLs included in each URL group; and assigning a group storage sequence number to the plurality of web sites in descending order, and The URLs of each page are divided into URL groups and sequentially stored in the URL queue according to the group storage order assigned to each URL group. However, for URLs included in the same URL group, the storage order is random. It may include storing the URL of each of the plurality of web pages in the URL queue by storing the URL in the URL queue.
또한, 본 발명의 일실시예에 따르면, 상기 웹 콘텐츠 크롤링 관리 서버의 동작 방법은 상기 k개의 데이터 수집 서버들 각각으로 상기 작업 명령이 전송된 이후, 상기 k개의 데이터 수집 서버들에서, 상기 복수의 웹 페이지들 중 어느 하나의 웹 페이지에 대한 웹 콘텐츠 데이터 수집 작업이 시작될 때마다, 상기 k개의 데이터 수집 서버들로부터, 웹 콘텐츠 데이터 수집을 위한 웹 페이지의 본문 영역에 대한 정보의 전송 요청을 수신하는 단계 및 상기 k개의 데이터 수집 서버들 중 어느 하나인 제1 데이터 수집 서버에서, 상기 복수의 웹 페이지들 중 어느 하나인 제1 웹 페이지에 대한 웹 콘텐츠 데이터 수집 작업이 시작됨에 따라, 상기 제1 데이터 수집 서버로부터, 상기 제1 웹 페이지의 본문 영역에 대한 정보의 전송 요청이 수신되면, 상기 제1 웹 페이지의 본문 영역에 대한 정보를 확인한 후, 상기 제1 웹 페이지의 본문 영역에 대한 정보를 상기 제1 데이터 수집 서버로 전송하는 단계를 더 포함할 수 있다. In addition, according to an embodiment of the present invention, a method of operating the web content crawling management server includes, after the work command is transmitted to each of the k data collection servers, in the k data collection servers, the plurality of Whenever a web content data collection operation for one of the web pages is started, a request to transmit information about the body area of the web page for web content data collection is received from the k data collection servers. step, and in a first data collection server that is one of the k data collection servers, as a web content data collection operation for a first web page that is one of the plurality of web pages is started, the first data When a request to transmit information about the body area of the first web page is received from the collection server, the information about the body area of the first web page is checked, and then the information about the body area of the first web page is sent to the above. It may further include transmitting to the first data collection server.
이때, 본 발명의 일실시예에 따르면, 상기 제1 웹 페이지의 본문 영역에 대한 정보를 상기 제1 데이터 수집 서버로 전송하는 단계는 상기 제1 데이터 수집 서버에서 상기 제1 웹 페이지에 대한 웹 콘텐츠 데이터 수집 작업이 시작됨에 따라, 상기 제1 데이터 수집 서버로부터, 상기 제1 웹 페이지의 본문 영역에 대한 정보의 전송 요청이 수신되면, 상기 제1 웹 페이지의 본문 영역을 확인하기 위한 본문 영역 확인 이벤트를 발생시키는 단계, 상기 본문 영역 확인 이벤트가 발생되면, 웹 브라우저를 통해 상기 제1 웹 페이지를 렌더링한 후, 렌더링된 상기 제1 웹 페이지를 구성하는 마크업 언어 코드를 파싱하여, 상기 제1 웹 페이지를 구성하는 복수의 부분 영역들의 크기를 확인하는 단계, 상기 제1 웹 페이지를 구성하는 복수의 부분 영역들 중 최대의 크기를 갖는 부분 영역을 후보 본문 영역으로 지정한 후, 상기 후보 본문 영역의 상기 제1 웹 페이지 상에서의 배치 위치인 제1 위치를 확인하는 단계, 상기 제1 웹 페이지를 포함하는 웹 사이트인 제1 웹 사이트를 구성하는 복수의 제2 웹 페이지들로부터, n(n은 2 이상의 자연수임)개의 웹 페이지들을 랜덤하게 선택하고, 상기 웹 브라우저를 통해 상기 n개의 웹 페이지들 각각을 렌더링한 후, 렌더링된 상기 n개의 웹 페이지들 각각의 마크업 언어 코드를 파싱하여, 상기 n개의 웹 페이지들 각각을 구성하는 복수의 부분 영역들의 크기를 확인하는 단계, 상기 n개의 웹 페이지들 각각에 대해, 각 웹 페이지를 구성하는 복수의 부분 영역들 중 최대의 크기를 갖는 부분 영역을 기준 영역으로 지정함으로써, 상기 n개의 웹 페이지들 각각에 대응되는 기준 영역을 지정한 후, 상기 n개의 웹 페이지들 각각에 대응되는 기준 영역의 각 웹 페이지 상에서의 배치 위치를, 상기 n개의 웹 페이지들 각각에 대응되는 기준 위치로 확인하는 단계, 상기 n개의 웹 페이지들 각각에 대응되는 기준 위치가 상기 제1 위치와 매칭되는지 여부를 확인하여, 상기 n개의 웹 페이지들 중 사전 설정된 기준 개수 이상의 제3 웹 페이지들 각각에 대응되는 기준 위치가 상기 제1 위치와 매칭되는 것으로 확인되면, 상기 후보 본문 영역을 상기 제1 웹 페이지의 본문 영역인 것으로 결정하는 단계 및 상기 후보 본문 영역이 상기 제1 웹 페이지의 본문 영역인 것으로 결정되면, 상기 후보 본문 영역에 대한 정보를 상기 제1 웹 페이지의 본문 영역에 대한 정보로 지정하여 상기 제1 데이터 수집 서버로 전송하는 단계를 포함할 수 있다. At this time, according to one embodiment of the present invention, the step of transmitting information about the body area of the first web page to the first data collection server includes web content for the first web page from the first data collection server. As the data collection operation begins, when a request to transmit information about the body area of the first web page is received from the first data collection server, a body area confirmation event to check the body area of the first web page Generating a step, when the body area confirmation event occurs, rendering the first web page through a web browser, parsing the markup language code constituting the rendered first web page, and Checking the sizes of a plurality of sub-areas constituting a page, designating a sub-area with the largest size among the plurality of sub-areas constituting the first web page as a candidate body area, Confirming a first position, which is an arrangement position on a first web page, from a plurality of second web pages constituting a first website, which is a website including the first web page, n (n is 2 or more) After randomly selecting (a natural number) web pages, rendering each of the n web pages through the web browser, parsing the markup language code of each of the n rendered web pages, Checking the size of a plurality of sub-areas constituting each web page, for each of the n web pages, a sub-area with the largest size among the plurality of sub-areas constituting each web page is selected as a reference area. After designating the reference area corresponding to each of the n web pages, the placement position of the reference area corresponding to each of the n web pages on each web page is determined by specifying the reference area corresponding to each of the n web pages. Checking with the corresponding reference location, checking whether the reference location corresponding to each of the n web pages matches the first location, and selecting a third web page that is more than a preset reference number among the n web pages. If it is confirmed that the reference position corresponding to each of the first positions matches the first position, determining the candidate body area to be the body area of the first web page, and determining that the candidate body area is the body area of the first web page If it is determined to be an area, it may include the step of designating the information on the candidate body area as information on the body area of the first web page and transmitting it to the first data collection server.
또한, 본 발명의 일실시예에 따르면, 상기 제1 위치를 확인하는 단계는 상기 후보 본문 영역을 구성하는 꼭짓점들 중 어느 하나인 기준 꼭짓점의 상기 제1 웹 페이지 상에서의 위치를, 상기 후보 본문 영역의 상기 제1 웹 페이지 상에서의 배치 위치인 상기 제1 위치로 확인할 수 있고, 상기 n개의 웹 페이지들 각각에 대응되는 기준 위치로 확인하는 단계에서는 상기 n개의 웹 페이지들 각각에 대응되는 기준 영역을 구성하는 꼭짓점들 중 상기 기준 꼭짓점과 대응되는 지점의 꼭짓점의 각 웹 페이지 상에서의 위치를, 상기 n개의 웹 페이지들 각각에 대응되는 기준 위치로 확인할 수 있으며, 상기 제1 웹 페이지의 본문 영역인 것으로 결정하는 단계에서는 상기 n개의 웹 페이지들 각각에 대응되는 기준 위치와 상기 제1 위치를 서로 비교하여, 상기 n개의 웹 페이지들 각각에 대응되는 기준 위치와 상기 제1 위치 간의 이격 거리가 사전 설정된 기준 거리 이내인 것으로 확인되는 경우, 상기 n개의 웹 페이지들 각각에 대응되는 기준 위치가 상기 제1 위치와 매칭되는 것으로 확인할 수 있다. In addition, according to one embodiment of the present invention, the step of confirming the first location includes determining the location of a reference vertex, which is one of the vertices constituting the candidate body area, on the first web page. It can be confirmed as the first position, which is the arrangement position on the first web page, and in the step of checking as the reference position corresponding to each of the n web pages, a reference area corresponding to each of the n web pages is selected. Among the constituting vertices, the position of the vertex corresponding to the reference vertex on each web page can be confirmed as the reference position corresponding to each of the n web pages, and is assumed to be the body area of the first web page. In the determining step, the reference location corresponding to each of the n web pages is compared with the first location, and the separation distance between the reference location corresponding to each of the n web pages and the first location is set to a preset standard. If it is confirmed that it is within the distance, it can be confirmed that the reference location corresponding to each of the n web pages matches the first location.
또한, 본 발명의 일실시예에 따르면, 상기 제1 웹 페이지의 본문 영역에 대한 정보를 상기 제1 데이터 수집 서버로 전송하는 단계는 상기 후보 본문 영역이 상기 제1 웹 페이지의 본문 영역인 것으로 결정되면, 상기 제3 웹 페이지들 각각에 대응되는 기준 영역을 상기 제3 웹 페이지들 각각의 본문 영역으로 지정한 후, 상기 제3 웹 페이지들 각각의 본문 영역에 대한 정보를 기록한 본문 영역 테이블을 생성하는 단계 및 상기 본문 영역 테이블이 생성된 이후, 상기 k개의 데이터 수집 서버들 중 다른 하나인 제2 데이터 수집 서버에서 상기 제3 웹 페이지들 중 어느 하나인 제4 웹 페이지에 대한 웹 콘텐츠 데이터 수집 작업이 시작됨에 따라, 상기 제2 데이터 수집 서버로부터, 상기 제4 웹 페이지의 본문 영역에 대한 정보의 전송 요청이 수신되면, 상기 제4 웹 페이지의 본문 영역을 결정하기 위한 과정의 수행 없이, 상기 본문 영역 테이블로부터, 상기 본문 영역 테이블 상에 기록되어 있는 상기 제4 웹 페이지의 본문 영역에 대한 정보를 추출한 후, 상기 제4 웹 페이지의 본문 영역에 대한 정보를 상기 제2 데이터 수집 서버로 전송하는 단계를 더 포함할 수 있다.Additionally, according to one embodiment of the present invention, the step of transmitting information about the body area of the first web page to the first data collection server determines that the candidate body area is the body area of the first web page. Then, designating the reference area corresponding to each of the third web pages as the body area of each of the third web pages, and then creating a body area table recording information about the body area of each of the third web pages. After the step and the body area table is created, a web content data collection operation for a fourth web page, which is one of the third web pages, is performed in a second data collection server, which is another one of the k data collection servers. As it starts, when a request to transmit information about the body area of the fourth web page is received from the second data collection server, the body area is Extracting information about the body area of the fourth web page recorded on the body area table from the table, and then transmitting the information about the body area of the fourth web page to the second data collection server. More may be included.
이상, 도 4를 참조하여 본 발명 일실시예에 따른 복수의 웹 사이트들에 대한 효율적인 분산 크롤링을 지원하는 웹 콘텐츠 크롤링 관리 서버의 동작 방법에 대해 설명하였다. 여기서, 본 발명 일실시예에 따른 복수의 웹 사이트들에 대한 효율적인 분산 크롤링을 지원하는 웹 콘텐츠 크롤링 관리 서버의 동작 방법은 도 1을 이용하여 설명한 웹 콘텐츠 크롤링 관리 서버(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.Above, with reference to FIG. 4, a method of operating a web content crawling management server that supports efficient distributed crawling of a plurality of web sites according to an embodiment of the present invention has been described. Here, the operating method of the web content crawling management server that supports efficient distributed crawling of a plurality of web sites according to an embodiment of the present invention is a configuration of the operation of the web content
본 발명의 일실시예에 따른 복수의 웹 사이트들에 대한 효율적인 분산 크롤링을 지원하는 웹 콘텐츠 크롤링 관리 서버의 동작 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.The method of operating a web content crawling management server that supports efficient distributed crawling of a plurality of web sites according to an embodiment of the present invention can be implemented as a computer program stored in a storage medium to be executed through combination with a computer. .
또한, 본 발명의 일실시예에 따른 복수의 웹 사이트들에 대한 효율적인 분산 크롤링을 지원하는 웹 콘텐츠 크롤링 관리 서버의 동작 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. In addition, the method of operating a web content crawling management server that supports efficient distributed crawling of a plurality of web sites according to an embodiment of the present invention is implemented in the form of program instructions that can be executed through various computer means and is computer readable. Can be recorded on media. The computer-readable medium may include program instructions, data files, data structures, etc., singly or in combination. Program instructions recorded on the medium may be specially designed and constructed for the present invention or may be known and usable by those skilled in the art of computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. -Includes optical media (magneto-optical media) and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, etc. Examples of program instructions include machine language code, such as that produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter, etc.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, the present invention has been described with specific details such as specific components and limited embodiments and drawings, but this is only provided to facilitate a more general understanding of the present invention, and the present invention is not limited to the above embodiments. , those skilled in the art can make various modifications and variations from this description.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다. Accordingly, the spirit of the present invention should not be limited to the described embodiments, and the scope of the patent claims described below as well as all modifications that are equivalent or equivalent to the scope of this patent claim shall fall within the scope of the spirit of the present invention. .
110: 복수의 웹 사이트들에 대한 효율적인 분산 크롤링을 지원하는 웹 콘텐츠 크롤링 관리 서버
111: URL 수집부 112: URL 저장 처리부
113: URL 할당부 114: 명령 전송부
115: URL 그룹 생성부 116: 그룹 저장 순번 할당부
117: 저장 처리부 118: 요청 수신부
119: 정보 전송부 120: 이벤트 발생부
121: 영역 확인부 122: 위치 확인부
123: 추가 영역 확인부 124: 추가 위치 확인부
125: 본문 영역 결정부 126: 전송 처리부
127: 테이블 생성부 128: 정보 신속 전송부
131, 132, 133: k개의 데이터 수집 서버들110: Web content crawling management server that supports efficient distributed crawling of multiple websites
111: URL collection unit 112: URL storage processing unit
113: URL allocation unit 114: Command transmission unit
115: URL group creation unit 116: Group storage sequence allocation unit
117: storage processing unit 118: request receiving unit
119: Information transmission unit 120: Event generation unit
121: Area confirmation unit 122: Location confirmation unit
123: Additional area confirmation unit 124: Additional location confirmation unit
125: Body area decision unit 126: Transmission processing unit
127: Table creation unit 128: Information rapid transmission unit
131, 132, 133: k data collection servers
Claims (14)
상기 복수의 웹 사이트들로부터, 각 웹 사이트를 구성하는 하나 이상의 웹 페이지들의 URL(Uniform Resource Locator)을 모두 수집함으로써, 복수의 웹 페이지들의 URL로 구성된 수집 데이터 셋(set)을 생성하는 URL 수집부;
상기 수집 데이터 셋에 포함되어 있는 상기 복수의 웹 페이지들 각각의 URL을 URL 큐(queue)에 저장하는 URL 저장 처리부;
상기 URL 큐에 저장되어 있는 상기 복수의 웹 페이지들 각각의 URL을, 상기 URL 큐에서의 저장 순서에 따라 순차적으로 추출하여 k(k는 2 이상의 자연수임)개의 데이터 수집 서버들에 라운드 로빈(round robin) 방식으로 할당하는 URL 할당부; 및
상기 k개의 데이터 수집 서버들 각각에 대해, 각 데이터 수집 서버에 할당된 URL의 웹 페이지에 접속하여 웹 콘텐츠 데이터를 수집할 것을 지시하는 작업 명령을 전송하는 명령 전송부
를 포함하고,
상기 URL 저장 처리부는
상기 복수의 웹 페이지들 각각의 URL을, 각 URL이 수집된 웹 사이트별로 그룹화함으로써, 상기 복수의 웹 사이트들 각각에 대응되는 URL 그룹을 생성하는 URL 그룹 생성부;
상기 복수의 웹 사이트들 각각에 대응되는 URL 그룹에 대해, 각 URL 그룹 내에 포함되어 있는 URL들의 개수가 적은 순으로, 빠른 순번의 그룹 저장 순번을 할당하는 그룹 저장 순번 할당부; 및
상기 복수의 웹 페이지들 각각의 URL을, URL 그룹별로 구분하여, 각 URL 그룹에 할당되어 있는 그룹 저장 순번에 따라 순차적으로 상기 URL 큐에 저장하되, 동일한 URL 그룹 내에 포함되어 있는 URL들에 대해서는, 랜덤한 저장 순번으로 상기 URL 큐에 저장함으로써, 상기 복수의 웹 페이지들 각각의 URL을 상기 URL 큐에 저장하는 저장 처리부
를 포함하는 웹 콘텐츠 크롤링 관리 서버.In the web content crawling management server that supports efficient distributed crawling of multiple websites,
A URL collection unit that generates a collection data set consisting of the URLs of a plurality of web pages by collecting all URLs (Uniform Resource Locators) of one or more web pages constituting each website from the plurality of web sites. ;
a URL storage processor that stores URLs of each of the plurality of web pages included in the collection data set in a URL queue;
The URLs of each of the plurality of web pages stored in the URL queue are sequentially extracted according to the storage order in the URL queue and sent to k (k is a natural number of 2 or more) data collection servers in a round robin. A URL allocation unit that allocates using the robin) method; and
For each of the k data collection servers, a command transmission unit that transmits a work command instructing to collect web content data by accessing the web page of the URL assigned to each data collection server.
Including,
The URL storage processing unit
a URL group generator that generates a URL group corresponding to each of the plurality of web sites by grouping the URLs of each of the plurality of web pages according to the web site from which each URL is collected;
a group storage sequence number allocator for assigning a group storage sequence number to URL groups corresponding to each of the plurality of web sites in descending order of the number of URLs included in each URL group; and
The URLs of each of the plurality of web pages are divided into URL groups and sequentially stored in the URL queue according to the group storage order assigned to each URL group. For URLs included in the same URL group, A storage processing unit that stores URLs of each of the plurality of web pages in the URL queue by storing them in the URL queue in a random storage order.
A web content crawling management server that includes.
상기 k개의 데이터 수집 서버들 각각으로 상기 작업 명령이 전송된 이후, 상기 k개의 데이터 수집 서버들에서, 상기 복수의 웹 페이지들 중 어느 하나의 웹 페이지에 대한 웹 콘텐츠 데이터 수집 작업이 시작될 때마다, 상기 k개의 데이터 수집 서버들로부터, 웹 콘텐츠 데이터 수집을 위한 웹 페이지의 본문 영역에 대한 정보의 전송 요청을 수신하는 요청 수신부; 및
상기 k개의 데이터 수집 서버들 중 어느 하나인 제1 데이터 수집 서버에서, 상기 복수의 웹 페이지들 중 어느 하나인 제1 웹 페이지에 대한 웹 콘텐츠 데이터 수집 작업이 시작됨에 따라, 상기 제1 데이터 수집 서버로부터, 상기 제1 웹 페이지의 본문 영역에 대한 정보의 전송 요청이 수신되면, 상기 제1 웹 페이지의 본문 영역에 대한 정보를 확인한 후, 상기 제1 웹 페이지의 본문 영역에 대한 정보를 상기 제1 데이터 수집 서버로 전송하는 정보 전송부
를 더 포함하는 웹 콘텐츠 크롤링 관리 서버.According to paragraph 1,
After the work command is transmitted to each of the k data collection servers, each time a web content data collection operation for any one of the plurality of web pages is started in the k data collection servers, a request receiver that receives a request for transmission of information about the body area of a web page for web content data collection from the k data collection servers; and
In a first data collection server, which is one of the k data collection servers, as a web content data collection operation for a first web page, which is one of the plurality of web pages, is started, the first data collection server When a request to transmit information about the body area of the first web page is received, the information about the body area of the first web page is checked, and then the information about the body area of the first web page is sent to the first web page. Information transmission unit that transmits to the data collection server
A web content crawling management server further comprising:
상기 정보 전송부는
상기 제1 데이터 수집 서버에서 상기 제1 웹 페이지에 대한 웹 콘텐츠 데이터 수집 작업이 시작됨에 따라, 상기 제1 데이터 수집 서버로부터, 상기 제1 웹 페이지의 본문 영역에 대한 정보의 전송 요청이 수신되면, 상기 제1 웹 페이지의 본문 영역을 확인하기 위한 본문 영역 확인 이벤트를 발생시키는 이벤트 발생부;
상기 본문 영역 확인 이벤트가 발생되면, 웹 브라우저를 통해 상기 제1 웹 페이지를 렌더링한 후, 렌더링된 상기 제1 웹 페이지를 구성하는 마크업 언어(markup language) 코드를 파싱(parsing)하여, 상기 제1 웹 페이지를 구성하는 복수의 부분 영역들의 크기를 확인하는 영역 확인부;
상기 제1 웹 페이지를 구성하는 복수의 부분 영역들 중 최대의 크기를 갖는 부분 영역을 후보 본문 영역으로 지정한 후, 상기 후보 본문 영역의 상기 제1 웹 페이지 상에서의 배치 위치인 제1 위치를 확인하는 위치 확인부;
상기 제1 웹 페이지를 포함하는 웹 사이트인 제1 웹 사이트를 구성하는 복수의 제2 웹 페이지들로부터, n(n은 2 이상의 자연수임)개의 웹 페이지들을 랜덤하게 선택하고, 상기 웹 브라우저를 통해 상기 n개의 웹 페이지들 각각을 렌더링한 후, 렌더링된 상기 n개의 웹 페이지들 각각의 마크업 언어 코드를 파싱하여, 상기 n개의 웹 페이지들 각각을 구성하는 복수의 부분 영역들의 크기를 확인하는 추가 영역 확인부;
상기 n개의 웹 페이지들 각각에 대해, 각 웹 페이지를 구성하는 복수의 부분 영역들 중 최대의 크기를 갖는 부분 영역을 기준 영역으로 지정함으로써, 상기 n개의 웹 페이지들 각각에 대응되는 기준 영역을 지정한 후, 상기 n개의 웹 페이지들 각각에 대응되는 기준 영역의 각 웹 페이지 상에서의 배치 위치를, 상기 n개의 웹 페이지들 각각에 대응되는 기준 위치로 확인하는 추가 위치 확인부;
상기 n개의 웹 페이지들 각각에 대응되는 기준 위치가 상기 제1 위치와 매칭되는지 여부를 확인하여, 상기 n개의 웹 페이지들 중 사전 설정된 기준 개수 이상의 제3 웹 페이지들 각각에 대응되는 기준 위치가 상기 제1 위치와 매칭되는 것으로 확인되면, 상기 후보 본문 영역을 상기 제1 웹 페이지의 본문 영역인 것으로 결정하는 본문 영역 결정부; 및
상기 후보 본문 영역이 상기 제1 웹 페이지의 본문 영역인 것으로 결정되면, 상기 후보 본문 영역에 대한 정보를 상기 제1 웹 페이지의 본문 영역에 대한 정보로 지정하여 상기 제1 데이터 수집 서버로 전송하는 전송 처리부
를 포함하는 웹 콘텐츠 크롤링 관리 서버.According to paragraph 3,
The information transmission unit
As the first data collection server starts collecting web content data for the first web page, when a request to transmit information about the body area of the first web page is received from the first data collection server, an event generator that generates a body area confirmation event to check the body area of the first web page;
When the body area confirmation event occurs, the first web page is rendered through a web browser, then the markup language code constituting the rendered first web page is parsed, and the first web page is rendered. 1 an area confirmation unit that checks the sizes of a plurality of partial areas constituting a web page;
After designating a partial area with the largest size among a plurality of partial areas constituting the first web page as a candidate body area, confirming the first position, which is the placement position of the candidate body area, on the first web page. Location confirmation unit;
From a plurality of second web pages constituting the first website, which is a website including the first web page, n (n is a natural number of 2 or more) web pages are randomly selected and displayed through the web browser. After rendering each of the n web pages, parsing the markup language code of each of the rendered n web pages to check the size of a plurality of partial regions constituting each of the n web pages. Area confirmation unit;
For each of the n web pages, a reference area corresponding to each of the n web pages is designated by designating a partial area with the largest size among a plurality of partial areas constituting each web page as a reference area. Afterwards, an additional position confirmation unit that checks the arrangement position on each web page of the reference area corresponding to each of the n web pages as a reference position corresponding to each of the n web pages;
By checking whether the reference position corresponding to each of the n web pages matches the first location, the reference position corresponding to each of the third web pages of a preset reference number or more among the n web pages is determined by the first location. a body area determination unit that determines that the candidate body area is a body area of the first web page when it is confirmed that it matches the first location; and
When the candidate body area is determined to be the body area of the first web page, information on the candidate body area is designated as information on the body area of the first web page and transmitted to the first data collection server. processing department
A web content crawling management server that includes.
상기 위치 확인부는
상기 후보 본문 영역을 구성하는 꼭짓점들 중 어느 하나인 기준 꼭짓점의 상기 제1 웹 페이지 상에서의 위치를, 상기 후보 본문 영역의 상기 제1 웹 페이지 상에서의 배치 위치인 상기 제1 위치로 확인하고,
상기 추가 위치 확인부는
상기 n개의 웹 페이지들 각각에 대응되는 기준 영역을 구성하는 꼭짓점들 중 상기 기준 꼭짓점과 대응되는 지점의 꼭짓점의 각 웹 페이지 상에서의 위치를, 상기 n개의 웹 페이지들 각각에 대응되는 기준 위치로 확인하며,
상기 본문 영역 결정부는
상기 n개의 웹 페이지들 각각에 대응되는 기준 위치와 상기 제1 위치를 서로 비교하여, 상기 n개의 웹 페이지들 각각에 대응되는 기준 위치와 상기 제1 위치 간의 이격 거리가 사전 설정된 기준 거리 이내인 것으로 확인되는 경우, 상기 n개의 웹 페이지들 각각에 대응되는 기준 위치가 상기 제1 위치와 매칭되는 것으로 확인하는 것을 특징으로 하는 웹 콘텐츠 크롤링 관리 서버.According to paragraph 4,
The location confirmation unit
Confirming the position of a reference vertex, which is one of the vertices constituting the candidate body area, on the first web page as the first position, which is the placement position of the candidate body area on the first web page,
The additional location confirmation unit
Among the vertices constituting the reference area corresponding to each of the n web pages, the position of the vertex corresponding to the reference vertex on each web page is confirmed as the reference position corresponding to each of the n web pages. And
The body area determination unit
By comparing the reference position corresponding to each of the n web pages with the first location, it is determined that the separation distance between the reference position corresponding to each of the n web pages and the first location is within a preset reference distance. When confirmed, a web content crawling management server characterized in that it is confirmed that the reference location corresponding to each of the n web pages matches the first location.
상기 정보 전송부는
상기 후보 본문 영역이 상기 제1 웹 페이지의 본문 영역인 것으로 결정되면, 상기 제3 웹 페이지들 각각에 대응되는 기준 영역을 상기 제3 웹 페이지들 각각의 본문 영역으로 지정한 후, 상기 제3 웹 페이지들 각각의 본문 영역에 대한 정보를 기록한 본문 영역 테이블을 생성하는 테이블 생성부; 및
상기 본문 영역 테이블이 생성된 이후, 상기 k개의 데이터 수집 서버들 중 다른 하나인 제2 데이터 수집 서버에서 상기 제3 웹 페이지들 중 어느 하나인 제4 웹 페이지에 대한 웹 콘텐츠 데이터 수집 작업이 시작됨에 따라, 상기 제2 데이터 수집 서버로부터, 상기 제4 웹 페이지의 본문 영역에 대한 정보의 전송 요청이 수신되면, 상기 제4 웹 페이지의 본문 영역을 결정하기 위한 과정의 수행 없이, 상기 본문 영역 테이블로부터, 상기 본문 영역 테이블 상에 기록되어 있는 상기 제4 웹 페이지의 본문 영역에 대한 정보를 추출한 후, 상기 제4 웹 페이지의 본문 영역에 대한 정보를 상기 제2 데이터 수집 서버로 전송하는 정보 신속 전송부
를 더 포함하는 웹 콘텐츠 크롤링 관리 서버.According to paragraph 4,
The information transmission unit
If the candidate body area is determined to be the body area of the first web page, the reference area corresponding to each of the third web pages is designated as the body area of each of the third web pages, and then the third web page a table creation unit that generates a text area table recording information on each text area; and
After the body area table is created, the second data collection server, which is another one of the k data collection servers, starts collecting web content data for the fourth web page, which is one of the third web pages. Accordingly, when a request to transmit information about the body area of the fourth web page is received from the second data collection server, the body area of the fourth web page is selected from the body area table without performing a process for determining the body area of the fourth web page. , an information rapid transmission unit that extracts information about the body area of the fourth web page recorded on the body area table and then transmits the information about the body area of the fourth web page to the second data collection server.
A web content crawling management server further comprising:
상기 복수의 웹 사이트들로부터, 각 웹 사이트를 구성하는 하나 이상의 웹 페이지들의 URL(Uniform Resource Locator)을 모두 수집함으로써, 복수의 웹 페이지들의 URL로 구성된 수집 데이터 셋(set)을 생성하는 단계;
상기 수집 데이터 셋에 포함되어 있는 상기 복수의 웹 페이지들 각각의 URL을 URL 큐(queue)에 저장하는 단계;
상기 URL 큐에 저장되어 있는 상기 복수의 웹 페이지들 각각의 URL을, 상기 URL 큐에서의 저장 순서에 따라 순차적으로 추출하여 k(k는 2 이상의 자연수임)개의 데이터 수집 서버들에 라운드 로빈(round robin) 방식으로 할당하는 단계; 및
상기 k개의 데이터 수집 서버들 각각에 대해, 각 데이터 수집 서버에 할당된 URL의 웹 페이지에 접속하여 웹 콘텐츠 데이터를 수집할 것을 지시하는 작업 명령을 전송하는 단계
를 포함하고,
상기 복수의 웹 페이지들 각각의 URL을 URL 큐에 저장하는 단계는
상기 복수의 웹 페이지들 각각의 URL을, 각 URL이 수집된 웹 사이트별로 그룹화함으로써, 상기 복수의 웹 사이트들 각각에 대응되는 URL 그룹을 생성하는 단계;
상기 복수의 웹 사이트들 각각에 대응되는 URL 그룹에 대해, 각 URL 그룹 내에 포함되어 있는 URL들의 개수가 적은 순으로, 빠른 순번의 그룹 저장 순번을 할당하는 단계; 및
상기 복수의 웹 페이지들 각각의 URL을, URL 그룹별로 구분하여, 각 URL 그룹에 할당되어 있는 그룹 저장 순번에 따라 순차적으로 상기 URL 큐에 저장하되, 동일한 URL 그룹 내에 포함되어 있는 URL들에 대해서는, 랜덤한 저장 순번으로 상기 URL 큐에 저장함으로써, 상기 복수의 웹 페이지들 각각의 URL을 상기 URL 큐에 저장하는 단계
를 포함하는 웹 콘텐츠 크롤링 관리 서버의 동작 방법.In a method of operating a web content crawling management server that supports efficient distributed crawling of a plurality of websites,
Collecting all URLs (Uniform Resource Locators) of one or more web pages constituting each web site from the plurality of web sites, thereby generating a collection data set consisting of URLs of a plurality of web pages;
storing the URL of each of the plurality of web pages included in the collected data set in a URL queue;
The URLs of each of the plurality of web pages stored in the URL queue are sequentially extracted according to the storage order in the URL queue and sent to k (k is a natural number of 2 or more) data collection servers in a round robin. robin) method; and
For each of the k data collection servers, transmitting a work command instructing to collect web content data by accessing a web page of a URL assigned to each data collection server.
Including,
The step of storing the URL of each of the plurality of web pages in the URL queue is
grouping the URLs of each of the plurality of web pages according to the website from which each URL was collected, thereby creating a URL group corresponding to each of the plurality of web sites;
assigning group storage order numbers in descending order to the URL groups corresponding to each of the plurality of web sites in descending order of the number of URLs included in each URL group; and
The URLs of each of the plurality of web pages are divided into URL groups and sequentially stored in the URL queue according to the group storage order assigned to each URL group. For URLs included in the same URL group, Storing the URL of each of the plurality of web pages in the URL queue by storing them in the URL queue in a random storage order.
A method of operation of a web content crawling management server including.
상기 k개의 데이터 수집 서버들 각각으로 상기 작업 명령이 전송된 이후, 상기 k개의 데이터 수집 서버들에서, 상기 복수의 웹 페이지들 중 어느 하나의 웹 페이지에 대한 웹 콘텐츠 데이터 수집 작업이 시작될 때마다, 상기 k개의 데이터 수집 서버들로부터, 웹 콘텐츠 데이터 수집을 위한 웹 페이지의 본문 영역에 대한 정보의 전송 요청을 수신하는 단계; 및
상기 k개의 데이터 수집 서버들 중 어느 하나인 제1 데이터 수집 서버에서, 상기 복수의 웹 페이지들 중 어느 하나인 제1 웹 페이지에 대한 웹 콘텐츠 데이터 수집 작업이 시작됨에 따라, 상기 제1 데이터 수집 서버로부터, 상기 제1 웹 페이지의 본문 영역에 대한 정보의 전송 요청이 수신되면, 상기 제1 웹 페이지의 본문 영역에 대한 정보를 확인한 후, 상기 제1 웹 페이지의 본문 영역에 대한 정보를 상기 제1 데이터 수집 서버로 전송하는 단계
를 더 포함하는 웹 콘텐츠 크롤링 관리 서버의 동작 방법.In clause 7,
After the work command is transmitted to each of the k data collection servers, each time a web content data collection operation for any one of the plurality of web pages is started in the k data collection servers, Receiving, from the k data collection servers, a request to transmit information on the body area of a web page for web content data collection; and
In a first data collection server, which is one of the k data collection servers, as a web content data collection operation for a first web page, which is one of the plurality of web pages, is started, the first data collection server When a request to transmit information about the body area of the first web page is received, the information about the body area of the first web page is checked, and then the information about the body area of the first web page is sent to the first web page. Transfer steps to data collection server
A method of operating a web content crawling management server further comprising:
상기 제1 웹 페이지의 본문 영역에 대한 정보를 상기 제1 데이터 수집 서버로 전송하는 단계는
상기 제1 데이터 수집 서버에서 상기 제1 웹 페이지에 대한 웹 콘텐츠 데이터 수집 작업이 시작됨에 따라, 상기 제1 데이터 수집 서버로부터, 상기 제1 웹 페이지의 본문 영역에 대한 정보의 전송 요청이 수신되면, 상기 제1 웹 페이지의 본문 영역을 확인하기 위한 본문 영역 확인 이벤트를 발생시키는 단계;
상기 본문 영역 확인 이벤트가 발생되면, 웹 브라우저를 통해 상기 제1 웹 페이지를 렌더링한 후, 렌더링된 상기 제1 웹 페이지를 구성하는 마크업 언어(markup language) 코드를 파싱(parsing)하여, 상기 제1 웹 페이지를 구성하는 복수의 부분 영역들의 크기를 확인하는 단계;
상기 제1 웹 페이지를 구성하는 복수의 부분 영역들 중 최대의 크기를 갖는 부분 영역을 후보 본문 영역으로 지정한 후, 상기 후보 본문 영역의 상기 제1 웹 페이지 상에서의 배치 위치인 제1 위치를 확인하는 단계;
상기 제1 웹 페이지를 포함하는 웹 사이트인 제1 웹 사이트를 구성하는 복수의 제2 웹 페이지들로부터, n(n은 2 이상의 자연수임)개의 웹 페이지들을 랜덤하게 선택하고, 상기 웹 브라우저를 통해 상기 n개의 웹 페이지들 각각을 렌더링한 후, 렌더링된 상기 n개의 웹 페이지들 각각의 마크업 언어 코드를 파싱하여, 상기 n개의 웹 페이지들 각각을 구성하는 복수의 부분 영역들의 크기를 확인하는 단계;
상기 n개의 웹 페이지들 각각에 대해, 각 웹 페이지를 구성하는 복수의 부분 영역들 중 최대의 크기를 갖는 부분 영역을 기준 영역으로 지정함으로써, 상기 n개의 웹 페이지들 각각에 대응되는 기준 영역을 지정한 후, 상기 n개의 웹 페이지들 각각에 대응되는 기준 영역의 각 웹 페이지 상에서의 배치 위치를, 상기 n개의 웹 페이지들 각각에 대응되는 기준 위치로 확인하는 단계;
상기 n개의 웹 페이지들 각각에 대응되는 기준 위치가 상기 제1 위치와 매칭되는지 여부를 확인하여, 상기 n개의 웹 페이지들 중 사전 설정된 기준 개수 이상의 제3 웹 페이지들 각각에 대응되는 기준 위치가 상기 제1 위치와 매칭되는 것으로 확인되면, 상기 후보 본문 영역을 상기 제1 웹 페이지의 본문 영역인 것으로 결정하는 단계; 및
상기 후보 본문 영역이 상기 제1 웹 페이지의 본문 영역인 것으로 결정되면, 상기 후보 본문 영역에 대한 정보를 상기 제1 웹 페이지의 본문 영역에 대한 정보로 지정하여 상기 제1 데이터 수집 서버로 전송하는 단계
를 포함하는 웹 콘텐츠 크롤링 관리 서버의 동작 방법.According to clause 9,
The step of transmitting information about the body area of the first web page to the first data collection server
As the first data collection server starts collecting web content data for the first web page, when a request to transmit information about the body area of the first web page is received from the first data collection server, generating a body area confirmation event to check the body area of the first web page;
When the body area confirmation event occurs, the first web page is rendered through a web browser, then the markup language code constituting the rendered first web page is parsed, and the first web page is rendered. 1 Checking the sizes of a plurality of partial areas constituting a web page;
After designating a partial area with the largest size among a plurality of partial areas constituting the first web page as a candidate body area, confirming the first position, which is the placement position of the candidate body area, on the first web page. step;
From a plurality of second web pages constituting the first website, which is a website including the first web page, n (n is a natural number of 2 or more) web pages are randomly selected and displayed through the web browser. After rendering each of the n web pages, parsing the markup language code of each of the rendered n web pages to check the size of a plurality of partial regions constituting each of the n web pages. ;
For each of the n web pages, a reference area corresponding to each of the n web pages is designated by designating a partial area with the largest size among a plurality of partial areas constituting each web page as a reference area. Afterwards, confirming the arrangement position of the reference area corresponding to each of the n web pages on each web page as the reference position corresponding to each of the n web pages;
By checking whether the reference position corresponding to each of the n web pages matches the first location, the reference position corresponding to each of the third web pages of a preset reference number or more among the n web pages is determined by the first location. If confirmed to match the first location, determining the candidate body region to be a body region of the first web page; and
When the candidate body area is determined to be the body area of the first web page, designating the information about the candidate body area as information about the body area of the first web page and transmitting it to the first data collection server.
A method of operation of a web content crawling management server including.
상기 제1 위치를 확인하는 단계는
상기 후보 본문 영역을 구성하는 꼭짓점들 중 어느 하나인 기준 꼭짓점의 상기 제1 웹 페이지 상에서의 위치를, 상기 후보 본문 영역의 상기 제1 웹 페이지 상에서의 배치 위치인 상기 제1 위치로 확인하고,
상기 n개의 웹 페이지들 각각에 대응되는 기준 위치로 확인하는 단계는
상기 n개의 웹 페이지들 각각에 대응되는 기준 영역을 구성하는 꼭짓점들 중 상기 기준 꼭짓점과 대응되는 지점의 꼭짓점의 각 웹 페이지 상에서의 위치를, 상기 n개의 웹 페이지들 각각에 대응되는 기준 위치로 확인하며,
상기 제1 웹 페이지의 본문 영역인 것으로 결정하는 단계는
상기 n개의 웹 페이지들 각각에 대응되는 기준 위치와 상기 제1 위치를 서로 비교하여, 상기 n개의 웹 페이지들 각각에 대응되는 기준 위치와 상기 제1 위치 간의 이격 거리가 사전 설정된 기준 거리 이내인 것으로 확인되는 경우, 상기 n개의 웹 페이지들 각각에 대응되는 기준 위치가 상기 제1 위치와 매칭되는 것으로 확인하는 것을 특징으로 하는 웹 콘텐츠 크롤링 관리 서버의 동작 방법.According to clause 10,
The step of confirming the first location is
Confirming the position of a reference vertex, which is one of the vertices constituting the candidate body area, on the first web page as the first position, which is the placement position of the candidate body area on the first web page,
The step of checking the reference location corresponding to each of the n web pages is
Among the vertices constituting the reference area corresponding to each of the n web pages, the position of the vertex corresponding to the reference vertex on each web page is confirmed as the reference position corresponding to each of the n web pages. And
The step of determining that it is the body area of the first web page is
By comparing the reference position corresponding to each of the n web pages with the first location, it is determined that the separation distance between the reference position corresponding to each of the n web pages and the first location is within a preset reference distance. When confirmed, a method of operating a web content crawling management server, characterized in that it is confirmed that the reference location corresponding to each of the n web pages matches the first location.
상기 제1 웹 페이지의 본문 영역에 대한 정보를 상기 제1 데이터 수집 서버로 전송하는 단계는
상기 후보 본문 영역이 상기 제1 웹 페이지의 본문 영역인 것으로 결정되면, 상기 제3 웹 페이지들 각각에 대응되는 기준 영역을 상기 제3 웹 페이지들 각각의 본문 영역으로 지정한 후, 상기 제3 웹 페이지들 각각의 본문 영역에 대한 정보를 기록한 본문 영역 테이블을 생성하는 단계; 및
상기 본문 영역 테이블이 생성된 이후, 상기 k개의 데이터 수집 서버들 중 다른 하나인 제2 데이터 수집 서버에서 상기 제3 웹 페이지들 중 어느 하나인 제4 웹 페이지에 대한 웹 콘텐츠 데이터 수집 작업이 시작됨에 따라, 상기 제2 데이터 수집 서버로부터, 상기 제4 웹 페이지의 본문 영역에 대한 정보의 전송 요청이 수신되면, 상기 제4 웹 페이지의 본문 영역을 결정하기 위한 과정의 수행 없이, 상기 본문 영역 테이블로부터, 상기 본문 영역 테이블 상에 기록되어 있는 상기 제4 웹 페이지의 본문 영역에 대한 정보를 추출한 후, 상기 제4 웹 페이지의 본문 영역에 대한 정보를 상기 제2 데이터 수집 서버로 전송하는 단계
를 더 포함하는 웹 콘텐츠 크롤링 관리 서버의 동작 방법.According to clause 10,
The step of transmitting information about the body area of the first web page to the first data collection server
If the candidate body area is determined to be the body area of the first web page, the reference area corresponding to each of the third web pages is designated as the body area of each of the third web pages, and then the third web page generating a text area table recording information on each text area; and
After the body area table is created, the second data collection server, which is another one of the k data collection servers, starts collecting web content data for the fourth web page, which is one of the third web pages. Accordingly, when a request to transmit information about the body area of the fourth web page is received from the second data collection server, the body area of the fourth web page is selected from the body area table without performing a process for determining the body area of the fourth web page. , extracting information about the body area of the fourth web page recorded in the body area table, and then transmitting the information about the body area of the fourth web page to the second data collection server.
A method of operating a web content crawling management server further comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210050857A KR102602178B1 (en) | 2021-04-20 | 2021-04-20 | Web contents crawling management server which supports efficient distributed crawling for a pluraliy of web sites and the operating method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210050857A KR102602178B1 (en) | 2021-04-20 | 2021-04-20 | Web contents crawling management server which supports efficient distributed crawling for a pluraliy of web sites and the operating method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220144496A KR20220144496A (en) | 2022-10-27 |
KR102602178B1 true KR102602178B1 (en) | 2023-11-14 |
Family
ID=83810452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210050857A KR102602178B1 (en) | 2021-04-20 | 2021-04-20 | Web contents crawling management server which supports efficient distributed crawling for a pluraliy of web sites and the operating method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102602178B1 (en) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120042529A (en) * | 2010-10-25 | 2012-05-03 | 삼성전자주식회사 | Method and apparatus for crawling web page |
KR102221045B1 (en) * | 2018-08-08 | 2021-02-25 | 동명대학교산학협력단 | Multi-threaded Web Crawling System |
-
2021
- 2021-04-20 KR KR1020210050857A patent/KR102602178B1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20220144496A (en) | 2022-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5353148B2 (en) | Image information retrieving apparatus, image information retrieving method and computer program therefor | |
US7653623B2 (en) | Information searching apparatus and method with mechanism of refining search results | |
JP2010073114A6 (en) | Image information retrieving apparatus, image information retrieving method and computer program therefor | |
US8271523B2 (en) | Coordination server, data allocating method, and computer program product | |
US20060015820A1 (en) | Fixed window selection | |
JP2004258911A (en) | Server, method for collecting information, and program | |
US7805426B2 (en) | Defining a web crawl space | |
CN1811757A (en) | System and method for locating pages on the world wide web and for locating documents from a network of computers | |
GB2503549A (en) | Automatically associating tags with files in a computer system using search keywords. | |
WO2008073784A1 (en) | Web site structure analysis | |
CN1531303A (en) | Caching system and method at user terminal without protocol concerned | |
CN106294352A (en) | A kind of document handling method, device and file system | |
US8055744B2 (en) | Resolution of group membership for resources | |
KR102602178B1 (en) | Web contents crawling management server which supports efficient distributed crawling for a pluraliy of web sites and the operating method thereof | |
US7904570B1 (en) | Configurable file placement | |
KR102484177B1 (en) | Design method for profile sharing in container environment, recording medium and device for performing the method | |
US20090248673A1 (en) | Method of sorting web pages, search terminal and client terminal | |
CN106796644A (en) | Access control system and access control method | |
CN101415029A (en) | Method and apparatus for distributing files | |
CN110928860B (en) | Data migration method and device | |
CN114491210A (en) | Data acquisition method and device based on web crawler | |
CN113364848A (en) | File caching method and device, electronic equipment and storage medium | |
CN110275863A (en) | File moving method, device and storage medium | |
CN111368231A (en) | Method and device for testing heterogeneous redundant architecture website | |
US7823110B2 (en) | Method and system for processing geometrical layout design data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |