[go: up one dir, main page]

KR20180080535A - Apparatus and method for scrapping web data - Google Patents

Apparatus and method for scrapping web data Download PDF

Info

Publication number
KR20180080535A
KR20180080535A KR1020170001345A KR20170001345A KR20180080535A KR 20180080535 A KR20180080535 A KR 20180080535A KR 1020170001345 A KR1020170001345 A KR 1020170001345A KR 20170001345 A KR20170001345 A KR 20170001345A KR 20180080535 A KR20180080535 A KR 20180080535A
Authority
KR
South Korea
Prior art keywords
target site
proxy
data collection
dom
user
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
KR1020170001345A
Other languages
Korean (ko)
Other versions
KR101913780B1 (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 KR1020170001345A priority Critical patent/KR101913780B1/en
Publication of KR20180080535A publication Critical patent/KR20180080535A/en
Application granted granted Critical
Publication of KR101913780B1 publication Critical patent/KR101913780B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F17/30864
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • G06F17/30887
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/28
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Provided are a web data scraping system and an operating method thereof. The system simulates a target site specified by a user and renders the target site in a separate frame, so that a site which does not conform to a web standard can also be accurately simulated through a proxy setting. The user can intuitively and easily select a document object model (DOM) from the corresponding frame, and can generate an event controlling the DOM as a data collection rule. Therefore, the event is reflected on a scenario, thereby providing a web scraping service such as automatic repetition performing.

Description

웹 데이터 수집 장치 및 방법{APPARATUS AND METHOD FOR SCRAPPING WEB DATA}[0001] APPARATUS AND METHOD FOR SCRAPPING WEB DATA [0002]

웹 데이터 스크랩핑 장치 및 그 동작 방법에 연관되며, 보다 특정하게는 전문적인 지식이 없는 유저가 쉽게 활용할 수 있는 웹 데이터 스크랩핑 서비스에 연관된다.The present invention relates to a web data scraping device and its operation method, and more particularly to a web data scrapping service that can be easily utilized by a user without expert knowledge.

웹 스크랩핑(Web scraping: 또는 "web harvesting", "web data extraction", "web crawling" 등으로 불리우기도 함)은 웹 사이트로부터 데이터를 추출하여 확보하는 것이다. 사람이 손수 할 수도 있지만, 웹 스크랩핑 소프트웨어들도 제공되고 있다. 기존의 웹 스크랩핑 소프트웨어들 또는 서비스 사이트들은 개발자들이 아닌 전문 지식 없는 일반적 유저가 활용하기에 어려움이 있기도 했다.Web scraping (also called "web harvesting", "web data extraction", "web crawling", etc.) extracts and secures data from a web site. People can do it, but web scraping software is also available. Existing web scraping software or service sites have been difficult for general users who are not developers and not experts.

한편, 월드 와이드 웹 컨소시움 (World Wide Web Consortium: W3C)의 동일 출처 정책 (same-origin policy)에 따라 한 출처에서 로드된 문서나 스크립트는 다른 출처의 자원과 상호작용하지 못하는 제약이 있어, 웹 스크랩핑을 위한 전용 프레임 제공은 어려움을 갖는다.On the other hand, according to the same-origin policy of the World Wide Web Consortium (W3C), documents and scripts loaded from one source are not allowed to interact with resources from other sources, Providing a dedicated frame for pinging has difficulties.

대한민국 등록특허 10-1125083호 (공고일자 2012년3월21일)Korean Patent No. 10-1125083 (Publication date March 21, 2012) 미국 등록특허 US 7,647,351호 (공고일자 2010년1월12일)U.S. Pat. No. 7,647,351 (Published on January 12, 2010)

일측에 따르면, 웹 데이터 스크랩핑 장치의 동작 방법이 제공된다. 방법은: 사용자로부터 지정되는 타킷 사이트를 모사하여 타깃 사이트 표시부에 렌더링하는 단계; 상기 렌더링되는 결과에 포함되는 적어도 하나의 DOM(Document Object Model) 중 사용자가 선택하는 제1 DOM에 대해 다른 객체와 구분되도록 그래픽 처리를 수행하는 단계; 및 상기 제1 DOM에 적용될 수 있는 적어도 하나의 사용자 입력 이벤트를 메뉴 형태로 입력 이벤트 표시부에 디스플레이 하는 단계를 포함할 수 있다.According to one aspect, a method of operating a web data scraping device is provided. The method includes: rendering a target site designated by a user and rendering the target site on a target site display unit; Performing graphical processing so that the first DOM selected by the user is distinguished from other objects among at least one DOM (Document Object Model) included in the rendered result; And displaying at least one user input event that can be applied to the first DOM in a form of a menu in an input event display section.

일실시예에 따르면 방법은 상기 디스플레이 되는 적어도 하나의 사용자 입력 이벤트 중, 사용자로부터 선택되는 제1 이벤트를 제1 DOM에 적용하는 규칙에 대응하는 제1 시나리오 라인을 데이터 수집 규칙 표시부에 추가하여 시나리오에 반영하는 단계를 더 포함한다. 또한 제1 시나리오 라인이 상기 데이터 수집 규칙 표시부에 표시되는 경우에 적어도 하나의 편집 인터페이스가 함께 제공될 수도 있다. 예시적으로, 그러나 한정되지 않게, 상기 편집 인터페이스는, 상기 제1 시나리오 라인에 대한 추가 입력 인터페이스, 상기 제1 시나리오 라인에 대한 삭제 및 상기 제1 시나리오 라인에 대한 시행 순서 변경 등을 포함할 수 있다.According to one embodiment, the method further includes adding a first scenario line corresponding to a rule for applying a first event selected from the user to the first DOM among the displayed at least one user input event to the data collection rule display unit, And reflecting it. Also, at least one editing interface may be provided when the first scenario line is displayed on the data collection rule display unit. Illustratively, but not exclusively, the editing interface may include additional input interfaces to the first scenario line, deletion of the first scenario line, and change of enforcement order to the first scenario line, .

일실시예에 따르면 방법은, 상기 타깃 사이트를 제어하기 위해 필요한 HTML 리소스를 다운로드하고, 상기 HTML 리소스 상의 적어도 하나의 리소스 경로를 프록시 서버의 프록시 경로로 변환하여 설정하여, 상기 타킷 사이트에 대응하는 프록시 사이트를 생성하는 프록시 설정 단계를 더 포함한다.According to one embodiment, a method includes downloading HTML resources necessary for controlling the target site, converting at least one resource path on the HTML resource into a proxy path of a proxy server and setting the proxy path to a proxy corresponding to the target site, And a proxy setting step of generating a site.

일실시예에 따르면 상기 프록시 설정 단계는, 상기 타킷 사이트의 URL에 대응하는 고유 식별자인 제1 키를 생성하고, 상기 프록시 사이트를 상기 제1 키와 연관지어 관리하는 단계를 포함할 수 있다. 이 경우, 상기 타킷 사이트에 상기 URL에 대한 또 다른 프록시 설정 요청이 있는 경우, 상기 제1 키를 확인하여 상기 제1 키를 통해 상기 프록시 사이트를 리턴할 수 있다.According to an embodiment, the proxy setting step may include generating a first key, which is a unique identifier corresponding to the URL of the target site, and managing the proxy site in association with the first key. In this case, if there is another proxy setting request for the URL in the target site, the first key may be confirmed and the proxy site may be returned through the first key.

다른 일측에 따르면, 웹 데이터 스크랩핑 장치가 제공된다. 장치는 사용자가 선택하는 타킷 사이트의 URL을 수신하는 경우, 상기 타킷 사이트 정보를 다운로드 하여 타깃 사이트 표시부에 렌더링하는 타킷 사이트 관리 유닛; 및 상기 렌더링되는 결과에 포함되는 적어도 하나의 DOM(Document Object Model) 중 사용자가 선택하는 제1 DOM에 대해 선택 가능한 적어도 하나의 이벤트를 입력 이벤트 표시부에 디스플레이하고, 사용자가 선택하는 제1 이벤트를 상기 제1 DOM에 적용하는 제1 데이터 수집 규칙으로 생성하는 데이터 수집 규칙 관리 유닛을 포함할 수 있다.According to another aspect, a web data scraping device is provided. The apparatus includes a target site management unit for downloading the target site information and rendering the target site information on the target site display unit when receiving the URL of the target site selected by the user; And displaying at least one event selectable for a first DOM selected by a user among at least one DOM (Document Object Model) included in the rendered result on an input event display unit, And a data collection rule management unit that generates a first data collection rule to be applied to the first DOM.

일실시예에 따르면 상기 데이터 수집 규칙 관리 유닛은 상기 제1 데이터 수집 규칙을 제1 시나리오 라인 형태로 데이터 수집 규칙 표시부에 제공할 수 있다. 이 경우, 상기 데이터 수집 규칙 관리 유닛은 상기 제1 시나리오 라인을 상기 데이터 수집 규칙 표시부에 표시하면서, 상기 제1 시나리오 라인에 대한 추가 입력 인터페이스, 상기 제1 시나리오 라인에 대한 삭제 및 상기 제1 시나리오 라인에 대한 시행 순서 변경 중 적어도 하나의 편집 인터페이스를 함께 표시할 수 있다.According to an embodiment, the data collection rule management unit may provide the first data collection rule to the data collection rule display unit in the form of a first scenario line. In this case, the data collection rule management unit displays the first scenario line on the data collection rule display unit, and displays the additional input interface for the first scenario line, the deletion for the first scenario line, ≪ / RTI > and / or change the enforcement order for < / RTI >

한편, 장치는 상기 타깃 사이트를 제어하기 위해 필요한 HTML 리소스를 다운로드하고, 상기 HTML 리소스 상의 적어도 하나의 리소스 경로를 프록시 서버의 프록시 경로로 변환하여 설정하여, 상기 타킷 사이트에 대응하는 프록시 사이트를 생성하는 제어 서버를 더 포함할 수 있다. 이 경우, 상기 제어 서버는: 상기 타깃 사이트로부터 HTML 리소스를 다운받기 위하여 프록시 동적 설정을 수행하는 프록시 동적 설정부; 상기 타깃 사이트를 웹 데이터 수집 시스템에서 제어하기 위해 필요한 HTML 리소스를 다운로드하는 HTML 다운로더; HTML 리소스의 경로를 파싱(parsing)하여, 상기 다운로드된 HTML 리소스 상의 리소스 경로를 프록시 경로로 변환하여 변환된 경로를 통해 상기 타깃 사이트를 인식하여 화면에 출력되도록 하는 HTML 파서(parser); 및 상기 HTML 리소스 상의 상기 리소스 경로를 상기 프록시 경로로 변환하는 HTML 컨버터를 포함할 수 있다.On the other hand, the device downloads HTML resources necessary for controlling the target site, converts at least one resource path on the HTML resource into a proxy path of the proxy server, and creates a proxy site corresponding to the target site And may further include a control server. In this case, the control server may further include: a proxy dynamic setting unit configured to perform proxy dynamic setting to download the HTML resource from the target site; An HTML downloader for downloading HTML resources necessary for controlling the target site in a web data collection system; An HTML parser for parsing the path of the HTML resource, converting the resource path on the downloaded HTML resource to a proxy path, recognizing the target site through the converted path, and outputting it to the screen; And an HTML converter for converting the resource path on the HTML resource into the proxy path.

일실시예에 따르면 상기 HTML 컨버터는, 상기 타킷 사이트의 URL에 대응하는 고유 식별자인 제1 키를 생성하고, 상기 프록시 사이트를 상기 제1 키와 연관지어 관리할 수 있다. 그리고 상기 타킷 사이트에 상기 URL에 대한 또 다른 프록시 설정 요청이 있는 경우, 상기 제1 키를 확인하여 상기 제1 키를 통해 상기 프록시 사이트를 리턴할 수 있다.According to an embodiment, the HTML converter may generate a first key, which is a unique identifier corresponding to the URL of the target site, and manage the proxy site in association with the first key. If there is another proxy setting request for the URL in the target site, the first key may be confirmed and the proxy site may be returned through the first key.

또 다른 일측에 따르면, 컴퓨터 판독 가능 기록매체에 저장되는 웹 데이터 스크랩핑 서비스 제공 방법을 수행하는 프로그램(예를 들어, 소프트웨어 어플리케이션)이 제공된다. 일실시예에 따르면 상기 방법은: 사용자로부터 지정되는 타킷 사이트를 모사하여 타깃 사이트 표시부에 렌더링하는 단계; 상기 렌더링되는 결과에 포함되는 적어도 하나의 DOM(Document Object Model) 중 사용자가 선택하는 제1 DOM에 대해 다른 객체와 구분되도록 그래픽 처리를 수행하는 단계; 및 상기 제1 DOM에 적용될 수 있는 적어도 하나의 사용자 입력 이벤트를 메뉴 형태로 입력 이벤트 표시부에 디스플레이 하는 단계를 포함할 수 있다.According to another aspect, there is provided a program (e.g., a software application) for performing a method of providing a web data scrapping service stored on a computer readable recording medium. According to one embodiment, the method comprises the steps of: rendering a target site designated by a user and rendering the target site on a target site display; Performing graphical processing so that the first DOM selected by the user is distinguished from other objects among at least one DOM (Document Object Model) included in the rendered result; And displaying at least one user input event that can be applied to the first DOM in a form of a menu in an input event display section.

일실시예에 따르면 상기 방법은, 상기 디스플레이 되는 적어도 하나의 사용자 입력 이벤트 중, 사용자로부터 선택되는 제1 이벤트를 제1 DOM에 적용하는 규칙에 대응하는 제1 시나리오 라인을 데이터 수집 규칙 표시부에 추가하여 시나리오에 반영하는 단계를 더 포함할 수도 있다. 또한 방법은, 상기 타깃 사이트를 제어하기 위해 필요한 HTML 리소스를 다운로드하고, 상기 HTML 리소스 상의 적어도 하나의 리소스 경로를 프록시 서버의 프록시 경로로 변환하여 설정하여, 상기 타킷 사이트에 대응하는 프록시 사이트를 생성하는 프록시 설정 단계를 더 포함할 수도 있다. 여기서 상기 타킷 사이트의 URL에 대응하는 고유 식별자인 제1 키가 생성되어, 상기 프록시 사이트가 상기 제1 키와 연관지어 관리될 수 있으며, 추후에 동일한 타킷 사이트의 상기 URL에 대한 또 다른 프록시 설정 요청이 있는 경우, 상기 제1 키를 확인하여 상기 제1 키를 통해 상기 프록시 사이트가 리턴될 수 있다. 한편 상술한 각 단계는 상기 컴퓨터 판독 가능 기록매체에 저장되는 상기 프로그램의 명령어 세트(instruction set)들로 실행될 수 있다.According to an embodiment, the method may further comprise the step of adding a first scenario line corresponding to a rule for applying a first event selected from a user to the first DOM among the at least one user input event displayed on the data collection rule display unit And may further include a step of reflecting on the scenario. The method also includes downloading HTML resources required to control the target site, converting at least one resource path on the HTML resource into a proxy path of the proxy server, and creating a proxy site corresponding to the target site And may further include a proxy setting step. Here, a first key, which is a unique identifier corresponding to the URL of the target site, is generated, the proxy site can be managed in association with the first key, and another proxy setting request for the URL of the same target site The proxy site can be returned through the first key by checking the first key. While each of the above-described steps may be executed with the instruction sets of the program stored on the computer-readable recording medium.

도 1은 일실시예에 따른 웹 데이터 수집 시스템의 구성을 도시한 블록도이다.
도 2는 일실시예에 따른 웹 데이터 수집 시스템이 사용자에게 제공하는 화면 구성을 도시한다.
도 3은 일실시예에 따른 웹 데이터 수집 시스템에서 DOM이 선택되는 과정을 설명하기 위한 도면이다.
도 4는 일실시예에 따라 선택된 DOM에 대응하는 이벤트 메뉴가 제공되는 과정을 설명하기 위한 도면이다.
도 5는 일실시예에 따른 시나리오의 설정과 편집을 설명하기 위한 도면이다.
도 6은 일실시예에 따른 웹 데이터 프록시 설정 및 경로 수정 과정을 도시한 도면이다.
도 7은 일실시예에 따른 웹 데이터 수집 시스템의 동작 흐름을 도시한 도면이다.
도 8은 일실시예에 따른 데이터 수집 로봇의 구성을 설명하기 위한 도면이다.
1 is a block diagram illustrating a configuration of a web data collection system according to an embodiment.
FIG. 2 illustrates a screen configuration that a web data collection system according to an embodiment provides to a user.
3 is a diagram illustrating a process of selecting a DOM in a web data collection system according to an exemplary embodiment of the present invention.
FIG. 4 is a diagram illustrating a process of providing an event menu corresponding to a DOM selected according to an exemplary embodiment of the present invention.
FIG. 5 is a diagram for explaining setting and editing of a scenario according to an embodiment.
FIG. 6 is a diagram illustrating a Web data proxy setting and path modification process according to an embodiment.
7 is a flowchart illustrating an operation of a web data collection system according to an exemplary embodiment of the present invention.
8 is a diagram for explaining a configuration of a data collecting robot according to an embodiment.

이하에서, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 권리범위는 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, the scope of the rights is not limited or limited by these embodiments. Like reference symbols in the drawings denote like elements.

아래 설명에서 사용되는 용어는, 연관되는 기술 분야에서 일반적이고 보편적인 것으로 선택되었으나, 기술의 발달 및/또는 변화, 관례, 기술자의 선호 등에 따라 다른 용어가 있을 수 있다. 따라서, 아래 설명에서 사용되는 용어는 기술적 사상을 한정하는 것으로 이해되어서는 안 되며, 실시예들을 설명하기 위한 예시적 용어로 이해되어야 한다.The terms used in the following description are chosen to be generic and universal in the art to which they are related, but other terms may exist depending on the development and / or change in technology, customs, preferences of the technician, and the like. Accordingly, the terminology used in the following description should not be construed as limiting the technical thought, but should be understood in the exemplary language used to describe the embodiments.

또한 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세한 그 의미를 기재할 것이다. 따라서 아래 설명에서 사용되는 용어는 단순한 용어의 명칭이 아닌 그 용어가 가지는 의미와 명세서 전반에 걸친 내용을 토대로 이해되어야 한다.Also, in certain cases, there may be a term chosen arbitrarily by the applicant, in which case the meaning of the detailed description in the corresponding description section. Therefore, the term used in the following description should be understood based on the meaning of the term, not the name of a simple term, and the contents throughout the specification.

웹 스크랩핑 인터페이스Web scraping interface

웹 스크랩핑을 수행하는 소프트웨어 및/또는 웹 서비스들은 개발자들의 영역에 머물러 있었다. 전문 지식 없는 일반적 유저는 웹 스크랩핑을 위한 코드를 설계할 수 없었다. 실시예들에 따르면, 이러한 웹 스크랩핑 객체를 사용자가 직관적으로 그래픽 유저 인터페이스 기반에서 선택하고, 선택된 객체에 대해 수행할 이벤트를 설정한다. 하나 이상의 객체 각각에 대해 일련의 이벤트를 설정하는 것을 스크랩핑 시나리오 구성이라고 하는데, 실시예들에 따르면 사용자는 직관적으로 쉽게 시나리오를 구성할 수 있다. 그리고 해당 시나리오를 실행할 주기를 설정하면 해당 주기마다 로봇이 동일한 시나리오에 따라 웹 스크랩핑을 자동으로 수행한다. 따라서 사용자는 마치 에디팅(editing) 어플리케이션에서 매크로 서비스를 레코딩 해 두듯이 웹 스크랩핑 시나리오를 생성해 둘 수 있고, 설정된 주기 및/또는 반복 횟수를 정해 놓으면 웹 스크랩핑은 자동으로 수행될 수 있다.Software and / or Web services that perform web scraping have remained in the domain of developers. General users without expertise could not design code for Web scraping. According to embodiments, a user intuitively selects such a web scraping object on a graphical user interface basis, and sets an event to be performed on the selected object. Setting up a series of events for each of one or more objects is referred to as a scrapping scenario configuration, which allows a user to construct scenarios easily and intuitively. Then, if a cycle for executing the scenario is set, the robot automatically scrapes the Web according to the same scenario every cycle. Accordingly, the user can create a web scraping scenario as if he or she recorded a macro service in an editing application. Web scraping can be performed automatically by setting a predetermined period and / or a repetition frequency.

웹 스크랩핑 소프트웨어의 DOM 제어DOM control of Web scraping software

실시예에 따른 웹 스크랩핑 인터페이스에서 이벤트를 적용할 객체가 되는 대상을 문서 객체 모델(Document Object Model, 이하에서는 'DOM'이라고 함)이라고 한다. DOM은 html 및 xml 문서를 처리하는 api(application programming interface)이다. Html은 head, body, table, tr, td 등등 수많은 태그로 이루어진 문서이고, 이 태그들이 모두 이루어져서 유저들이 볼 수 있는 시각적 표현이 만들어진다. DOM은 이 태그로 이루어진 웹 문서 내의 한 부분 부분을 의미하며, 사용자가 유저 인터페이싱 장치 (예시적으로, 키보드, 마우스, 터치스크린 등)로 선택하고, 어떠한 액션 (이를 테면, 키 입력, 마우스 클릭, 드래그, 터치 등. 다만 이에 한정되지 않음)을 할 수 있는 대상이다. 실시예들에 따르면 웹 화면을 별도의 브라우징 프레임인 i-frame 내에서 구현하면서 사용자가 개별 DOM을 선택하고 제어할 수 있도록 제공한다. 특정 DOM이 선택되면 해당 DOM에 적용할 수 있는 복수 개의 이벤트들이 우측 메뉴 화면에 제공되고, 사용자가 그 중 하나 이상의 이벤트를 선택하여 특정 DOM에 적용될 이벤트를 완료하면 해당 이벤트가 시나리오의 일부로서 하단의 시나리오 라인으로 추가된다. 이하에서는 도면들을 참조하여 실시예들을 보다 상세히 설명한다.In the web scraping interface according to the embodiment, an object to be an object to which an event is to be applied is called a Document Object Model (DOM). The DOM is an api (application programming interface) that processes html and xml documents. Html is a document consisting of many tags such as head, body, table, tr, td, etc. These tags are all made to create a visual representation that users can see. The DOM means a part of a web document made up of this tag, and the user can select a user interface device (illustratively, keyboard, mouse, touch screen, etc.) Drag, touch, etc., but not limited to this). According to embodiments, a web screen is implemented in an i-frame, which is a separate browsing frame, so that a user can select and control an individual DOM. When a specific DOM is selected, a plurality of events applicable to the corresponding DOM are provided on the right menu screen. When the user selects one or more events to complete an event to be applied to a specific DOM, It is added as a scenario line. Hereinafter, embodiments will be described in more detail with reference to the drawings.

예시적 시스템 구성Example system configuration

일실시예에 따른 시스템은 도 1과 같이 구성될 수 있다. 웹 데이터 수집 시스템은 웹 데이터 탐색 영역(100) 및 웹 데이터 수집 영역(140)을 포함한다. 웹 데이터 탐색 영역(100)은 타깃 사이트 관리 유닛(110), 데이터 수집 규칙 관리 유닛(120), 제어 서버(130) 및 데이터 수집 로봇(150)을 포함한다. 웹 데이터 수집 영역(140)은 데이터 수집 규칙 생성 유닛(180) 및 타깃 사이트 설정 유닛(190)을 포함한다.The system according to one embodiment may be configured as shown in FIG. The web data collection system includes a web data search area 100 and a web data collection area 140. The web data search area 100 includes a target site management unit 110, a data collection rule management unit 120, a control server 130 and a data collection robot 150. The web data collection area 140 includes a data collection rule creation unit 180 and a target site setting unit 190. [

타깃 사이트 관리 유닛(110)은 웹 데이터 수집 영역(140)의 타깃 사이트 설정 유닛(190)으로부터 요청 신호(170)로서 타깃 사이트에 대한 정보를 제공받아 이를 저장하고, 필요 시에 타깃 사이트에 대한 정보를 제공할 수 있다. 그리고 데이터 수집 규칙 관리 유닛(120)은 웹 데이터 수집 영역(140)의 데이터 수집 규칙 생성 유닛(180)으로부터 요청 신호(170)로서 데이터 수집 규칙에 대한 정보를 제공받아 이를 저장하고, 필요 시에 데이터 수집 규칙에 대한 정보를 제공할 수 있다. 제어 서버(130)는 타깃 사이트 관리 유닛(110)으로부터 타깃 사이트에 대한 정보를 제공 받아, 타깃 사이트로부터 데이터를 다운받을 수 있도록 데이터 수집 절차를 제어할 수 있다. 제어서버(130)에 대해서는 도 2에서 상세히 설명하도록 한다.The target site management unit 110 receives information on the target site as a request signal 170 from the target site setting unit 190 of the web data collection area 140 and stores the information, Can be provided. The data collection rule management unit 120 receives information on a data collection rule as a request signal 170 from the data collection rule creation unit 180 of the web data collection area 140 and stores the information, Information about collection rules can be provided. The control server 130 may receive information on the target site from the target site management unit 110 and may control the data collection procedure so as to download data from the target site. The control server 130 will be described in detail with reference to FIG.

데이터 수집 로봇(150)은 타깃 사이트 관리 유닛(110)으로부터 타깃 사이트에 대한 정보를 제공받고, 데이터 수집 규칙 관리 유닛(120)으로부터 데이터 수집 규칙에 대한 정보를 제공받아 설정된 시간 간격마다 주기적 및/또는 반복적으로 데이터 수집 규칙에 따라 타깃 사이트로부터 타깃 데이터를 수집할 수 있다.The data collection robot 150 receives information on the target site from the target site management unit 110 and receives information on the data collection rules from the data collection rule management unit 120 and periodically and / It is possible to collect target data from the target site repeatedly according to data collection rules.

데이터 수집 규칙 생성 유닛(180)은 사용자가 제공되는 웹 데이터 수집 시스템의 유저 인터페이스를 이용하여 마우스 클릭, 키보드 입력 등을 통해 데이터 수집 규칙을 생성할 수 있다. 데이터 수집 규칙 생성 유닛(180)은 그래픽 유저 인터페이스를 통해 사용자가 선택하는 DOM에 대해 사용자가 지정하는 이벤트를 수신한다. 이러한 이벤트는 하나일 수도 있지만, 바람직하게는 복수 개의 이벤트가 일련의 시흐름을 갖고 시나리오로서 생성될 수 있다. 사용자는 전용 웹 및/또는 앱을 토해 타킷 사이트를 설정할 수도 있는데, 이 경우 타깃 사이트 설정 유닛(190)이 이러한 설정을 처리한다. 유닛(190)은 사용자가 제공되는 웹 데이터 수집 시스템의 유저 인터페이스를 이용하여, 웹 데이터를 수집하고자 하는 타깃 사이트를 설정할 수 있다.The data collection rule generation unit 180 may generate data collection rules through a mouse click, a keyboard input, and the like using the user interface of the web data collection system provided by the user. The data collection rule creation unit 180 receives an event that the user specifies for the DOM selected by the user through the graphical user interface. Such an event may be one, but preferably a plurality of events may be generated as a scenario with a sequence of scenes. The user may also set up a dedicated web and / or an app-to-site site for the app, in which case the target site setting unit 190 handles this setting. The unit 190 can set a target site for collecting web data, using a user interface of the web data collection system provided by the user.

도 1에서 제시되는 블록도는 물리적인 엘리먼트의 구분을 의미하는 것일 수도 있지만, 물리적 구분이 아니라 논리적인 구분을 의미하는 것일 수 있다. 따라서, 하나 이상의 유닛들은 실질적으로 동일한 하드웨어 엘리먼트에 의해 함께 구현되는 것도 가능하다. 따라서, 예시적인 블록도인 도 1에 국한되지 않고, 실질적으로 동일한 기능을 수행하는 구성도 발명이 표상하는 범위에 포함되는 것으로 이해되어야 한다.The block diagram shown in FIG. 1 may refer to the division of a physical element, but may be a logical division, not a physical division. Thus, it is also possible for one or more units to be implemented together by substantially the same hardware element. Therefore, it should be understood that the constitution performing substantially the same function is not limited to FIG. 1 which is an exemplary block diagram but is also included in the scope of the invention.

'i-frame'의 구현Implementation of 'i-frame'

일실시예에 따르면 스크랩핑의 대상이 되는 웹 페이지(이하에서는 '타킷 페이지'라고 할 수 있음)를 범용 웹 브라우저 자체가 아닌 이를 통해 제공되는 별도의 프레임(이를 명세서 전반에 걸처 'i-frame'이라고 함)에서 렌더링한다. i-frame에서 타킷 페이지를 렌더링하고, 여기서 DOM 선택과 제어 이벤트 선택이 가능하도록 하기 위해 웹 데이터 수집 시스템 프레임(200)이 제공된다. 도 2는 일실시예에 따른 웹 데이터 수집 시스템의 구현 프레임(200)을 도시한 도면이다. 이러한 프레임(200)은 실시예들에 따라 사용자가 쉽게 직관적으로 타킷 사이트 및 그에 포함되는 DOM을 선택/제어 하고, 이에 따른 이벤트를 선택하여 웹 데이터 수집 시나리오를 생성/관리할 수 있도록 하는 그래픽 유저 인터페이스의 집합으로서, 웹 기반일 수도 있으나, 이에 국한되는 것은 아니다. 이를테면, 앱(APP) 기반의 전용 프로그램에 의해 프레임(200)이 제공될 수도 있다. 이하에서 별다른 언급이 없더라도 프레임(200)의 형태나 제공 방식에 대해서는 일부 예시된 응용으로 국한하여 이해되어서는 안 된다.According to one embodiment, a web page to be scrapped (hereinafter referred to as a 'target page') may be divided into a separate frame (an 'i-frame' Quot;). A web data collection system frame 200 is provided to render a target page in an i-frame, where DOM selection and control event selection are enabled. 2 is a diagram illustrating an implementation frame 200 of a web data collection system according to one embodiment. Such a frame 200 may include a graphical user interface (GUI) for allowing a user to easily and intuitively select / control a target site and a DOM included therein, and to select an event to create / manage a web data collection scenario Lt; RTI ID = 0.0 > web-based, < / RTI > For example, the frame 200 may be provided by a dedicated program based on an APP (APP). Although there is no mention in the following, the form and the manner of providing the frame 200 should not be construed to be limited to some of the exemplified applications.

그래픽 기반으로 사용자가 웹 데이터 수집을 제공할 수 있도록 하는 상기 프레임(200)은 타깃 사이트 표시부(210), 입력 이벤트 표시부(220) 및 데이터 수집 규칙 표시부(230)를 포함한다. 예시적으로 그러나 한정되지 않게, 타킷 사이트 표시부(210)는 앞서 언급한 i-frame일 수 있다. 웹 데이터 수집 시스템은 그래픽 유저 인터페이스를 기반으로 하고 있다. 타깃 사이트 표시부(210)에는 웹 데이터를 수집하고자 하는 타깃 사이트가 프록시 서버를 통해 변환된 경로로 인식되어 화면에 나타날 수 있다. 프록시 서버 및 이를 이용하는 프록시 사이트에 대해서는 상세히 후술한다. i-frame인 타깃 사이트 표시부(210)는 타킷 사이트를 모사하여 렌더링하면서, 그 타킷 사이트에서 선택 가능한 DOM을 표시하고 구분하여 선택할 수 있는 그래픽을 제공한다. 이러한 그래픽은 이를 테면, 마우스 오버(mouse-over) 시에 해당 DOM을 하일라이트 처리하거나, 외곽선을 표시하는 등의 그래픽을 제공할 수 있다. 선택된 DOM에 대해서는 일시적 또는 다른 DOM이 선택되기까지 지속적으로 다른 것과 구분되는 그래픽 처리를 제공할 수도 있다.The frame 200 that allows a user to provide web data collection on a graphical basis includes a target site display unit 210, an input event display unit 220, and a data collection rule display unit 230. By way of example but not limitation, the target site display unit 210 may be the i-frame mentioned above. The web data collection system is based on a graphical user interface. The target site to which the web data is to be collected may be recognized as a converted path through the proxy server and displayed on the screen. The proxy server and the proxy site using the proxy server will be described later in detail. The target site display unit 210, which is an i-frame, simulates and renders a target site, and provides a graphic that displays a selectable DOM in the target site, and can select and select the target DOM. Such graphics can provide graphics such as highlighting the DOM, or displaying an outline when mouse-over, for example. For a selected DOM, it may provide a graphical process that is persistent and distinct from others until a temporary or other DOM is selected.

입력 이벤트 표시부(220)는 복수 개의 서브 메뉴를 포함하는 메뉴 창일 수 있다. 입력 이벤트 표시부(220)는 사용자가 선택한 DOM에 적용할 수 있는 데이터 수집 규칙 이벤트를 표시해줄 수 있다. 이를테면, 해당하는 마우스 클릭, 드래그, 키보드 입력, 터치 등 입력 이벤트들을 나타낼 수 있다. 선택된 DOM과 무관하게 모든 이벤트들을 제공할 수도 있지만, 바람직하게는 선택된 그 DOM에 적용이 가능한 것만 표시할 수 있다. 또한, 전체 이벤트 메뉴를 표시는 하되, 선택된 DOM에 적용할 수 있는 것만 활성화하여 선택이 가능하도록 하고, 다른 이벤트 메뉴들은 선택되지 않게 비활성화 처리하는 것도 가능하다. 사용자가 타깃 사이트 표시부(210)에 나타나는 특정 이벤트를 선택하면, 이는 선택된 DOM에 그 이벤트를 적용하는 규칙으로 생성되고, 이것은 시나리오의 일부로 반영될 수 있다. 예시적으로, DOM 선택 및 그에 대한 이벤트 선택이 수행되면 시나리오에 하나의 이벤트 라인이 추가될 수 있다. 사용자는 이러한 식으로 DOM을 선택하고 그에 적용할 이벤트를 직관적으로 선택할 수 있고, 그에 대한 실제 코드라인은 자동으로 생성되므로 사용자는 html이나 웹 스크랩핑을 위한 컴퓨팅 코드에 전문 지식이 없더라도 웹 데이터 수집 시나리오를 생성할 수 있다.The input event display unit 220 may be a menu window including a plurality of submenus. The input event display unit 220 may display a data collection rule event applicable to the DOM selected by the user. For example, it can represent input events such as corresponding mouse click, drag, keyboard input, touch. It is possible to provide all events regardless of the selected DOM, but preferably only those that are applicable to the selected DOM can be displayed. In addition, it is also possible to display the entire event menu, to activate only those that can be applied to the selected DOM, to enable selection, and to deactivate other event menus not selected. When a user selects a particular event to appear on the target site display 210, it is created with a rule that applies that event to the selected DOM, which may be reflected as part of the scenario. Illustratively, one event line can be added to the scenario if the DOM selection and event selection for it is performed. The user can select the DOM in this way and intuitively select the events to apply to it, and the actual code line for it is automatically generated, so that even if the user does not have expertise in computing code for html or web scraping, Lt; / RTI >

상기한 바와 같이, 데이터 수집 규칙 표시부(230)는 특정 DOM에 대해 특정 이벤트를 적용하는 개개의 처리의 흐름을 시계열적으로 표시하는 시나리오의 표시부일 수 있다. 사용자가 i-frame에 렌더링되는 타킷 사이트를 보고, 그에 포함되는 DOM을 선택한 뒤 메뉴에서 이벤트를 선택하면 시나리오에 개별 규칙으로 하나씩 추가되는 것이다. 데이터 수집 규칙 표시부(230)에서 표시되는 시나리오는 라인 별 및/또는 관련 라인 그룹 별로 삭제, 추가, 편집, 순서 변경 등 후속 편집이 가능하다. 이러한 편집의 종류는 예시된 것들에 한정되지 않으며, 웹 데이터 스크랩핑을 하는 과정에서의 데이터 수집 효율을 높이기 위해 및/또는 일부 오류를 개선하거나 사용자 니즈가 바뀜에 따라 필요한 것이면 다른 것들도 포함되는 것으로 이해되어야 한다. 실시예들에 따라 제공되는 시나리오 자체의 편집 가능성은 비개발자가 소스 코드를 이해하지 못하더라도 직관적으로 자신이 원하는 웹 데이터 수집 규칙을 바꿀 수 있는 유연성을 제공하므로 큰 이점을 갖는다.As described above, the data collection rule display unit 230 may be a display unit of a scenario in which the flow of individual processes for applying a specific event to a specific DOM is displayed in a time-series manner. When a user views a target site that is rendered in an i-frame, selects the DOM included in the target site, and selects an event from the menu, it is added to the scenario one by one as an individual rule. The scenario displayed in the data collection rule display unit 230 can be subsequently edited such as delete, add, edit, change order, and so on for each line and / or related line group. The type of such editing is not limited to the illustrated ones and may include other things as well as to improve the data collection efficiency in the process of scraping the web data and / or to improve some errors or necessary as the user needs change . The editability of the scenario itself, which is provided in accordance with the embodiments, has great advantages because it provides the flexibility to change the web data collection rules intuitively, even if the non-developer does not understand the source code.

타킷 사이트의 렌더링, 선택된 DOM에 대한 메뉴 처리, 시나리오의 생성이나 편집 등을 후속하는 도면들을 참고하여 더 상세하게 설명한다.Rendering of the target site, menu processing for the selected DOM, creation and editing of the scenario, etc. will be described in more detail with reference to the following drawings.

타킷 사이트의 표시와 DOM의 선택Display of target site and selection of DOM

도 3 내지 도 5 는 일실시예에 따른 웹 데이터 수집 시스템이 사용자에게 제시하는 프레임 레이아웃에서, 사용자가 타킷 사이트 및 그에 포함된 DOM을 보면서 DOM을 선택하고, 그에 적용될 이벤트 규칙을 생성하여 시나리오를 만들어 가는 일련의 과정을 도시한다.FIGS. 3 through 5 illustrate a case where a user selects a DOM while viewing a target site and a DOM included therein, in a frame layout presented by the web data collection system to a user, creates an event rule to be applied thereto, and creates a scenario Shows a series of processes going on.

도 3에서 사용자가 접하게 되는 화면에는 i-frame으로도 불리우는 타깃 사이트 표시부(300), 메뉴 창으로도 불리우는 입력 이벤트 표시부(320) 및 시나리오 창으로 불리우는 데이터 수집 규칙 표시부(330)가 포함된다. 사용자가 타킷 사이트, 이를테면 "http://www.goole.com"을 선택하면, 해당 타킷 사이트가 i-frame 내에서 렌더링된다. 일실시예에 따르면 범용 브라우저 자체로서 실제 타킷 사이트를 브라우징하는 것이 아니라 타킷 사이트를 모사한 프록시 사이트가 렌더링되는 것이다. 이는 후술할 W3C의 동일 출처 정책을 우회하고, 웹 표준을 준수하지 않는 사이트들에 대해서도 사이트 렌더링, DOM 선택 및 데이터 수집 등이 가능하도록 하는 효과가 있다.3 includes a target site display unit 300 called i-frame, an input event display unit 320 also called a menu window, and a data collection rule display unit 330 called a scenario window. When the user selects a target site, for example, "http://www.goole.com", the target site is rendered in the i-frame. According to one embodiment, the general-purpose browser itself does not browse the actual target site, but rather renders the proxy site that simulates the target site. It bypasses the same source policy of W3C, which will be described later, and enables site rendering, DOM selection and data collection for sites that do not comply with web standards.

타킷 사이트에는 복수 개의 DOM이 포함될 수 있다. 이를테면, 텍스트나 이미지, 플래시 등의 형태로 제시되며 하이퍼 링크를 갖는 객체들, 쿼리를 입력할 수 있는 텍스트 입력창 등의 각각 개별 DOM들이 될 수 있다.A target site may contain multiple DOMs. For example, they can be individual DOMs, such as text, images, flash, etc., objects with hyperlinks, and text input windows for entering queries.

사용자가 i-frame인 타깃 사이트 표시부(300)에서 마우스 오버를 하거나, 입력 펜을 호버링하거나, 터치나 클릭을 하는 등, DOM을 선택하기 위한 액션을 취하면, 일실시예에 따른 시스템은 현재 예비 선택된 DOM을 다른 부분과 구분될 수 있도록 그래픽처리 할 수 있다. 이러한 그래픽처리는 상기한 바와 같이 하일라이트 처리, 외곽선의 표시, 색상이나 음영의 변화, 깜빡임 등 다양한 것일 수 있으며, 현재 선택이 된 DOM을 다른 것과 구분할 수 있는 임의의 방식의 그래픽 처리로 이해되어야 한다. 도시된 예에서는 텍스트 쿼리를 입력할 수 있는 텍스트 입력창인 DOM이 선택되었고, 선택된 DOM의 외곽선(310)이 표시되었다. 따라서 사용자는 직관적으로 자기가 어느 DOM을 선택했는지 인식할 수 있다.When a user takes an action to select a DOM, such as mouse-over, target hovering, touching, or clicking, on the target site display unit 300, which is an i-frame, The selected DOM can be graphically processed to distinguish it from other parts. Such graphical processing may be a variety of things, such as highlight processing, outline display, color or shade change, blinking, etc., as described above, and should be understood as any manner of graphical processing that can distinguish the currently selected DOM from the others . In the illustrated example, DOM, which is a text input window for inputting a text query, was selected and the outline 310 of the selected DOM was displayed. Therefore, the user can intuitively recognize which DOM he or she has selected.

선택된 DOM에 적용 가능한 이벤트 메뉴Event menu applicable to selected DOM

도 4에 도시된 바와 같이, i-frame(400)에서 그래픽 처리(410) 되는 텍스트 입력 창 DOM이 선택되는 경우, 메뉴 창인 입력 이벤트 표시부(420)서는 선택된 상기 DOM에 적용 가능한 복수 개의 이벤트 메뉴가 제공된다. 만약 사용자가 도시된 바와 같이 텍스트 입력 이벤트(440)을 선택하면, 해당 DOM에 대해 텍스트를 입력하겠다는 규칙이 생성되어 시나리오 창인 데이터 수집 규칙 표시부(430)에 시나리오 라인(450)이 생성된다. 시나리오 라인에는 해당 개별 이벤트를 삭제할 수 있는 편집 버튼(460)이 제공되어, 사용자가 시나리오 라인 생성을 되돌리기(undo) 할 수 있도록 한다. 뿐만 아니라 도시되지는 않았지만, 시나리오 이벤트들의 순서를 바꾸거나, 특정 이벤트를 복사하여 재생산 하는 등의 편집 버튼들도 제공될 수 있다.4, when a text input window DOM to be graphically processed 410 in the i-frame 400 is selected, the input event display 420, which is a menu window, displays a plurality of event menus applicable to the selected DOM / RTI > If a user selects a text input event 440 as shown, a rule for inputting a text for the corresponding DOM is generated and a scenario line 450 is created in the data collection rule display unit 430, which is a scenario window. The scenario line is provided with an edit button 460 that allows the individual event to be deleted, allowing the user to undo the scenario line creation. In addition, although not shown, edit buttons such as changing the order of the scenario events, copying and reproducing specific events, and the like can also be provided.

시나리오 라인 내의 추가 설정Additional settings within the scenario line

도 5에서 도시되는 바와 같이, 시나리오 창(530)에서 텍스트 입력 시나리오에 대해 사용자가 특정 텍스트를 추가 입력할 수도 있다. 사용자가 선택한 이벤트가 텍스트 입력인 경우, 어떤 텍스트를 넣을지 후속 입력/설정 하는 과정이다. 예시적으로 사용자가 DOM에 텍스트 입력할 내용이 "KBS 9시 뉴스"라고 하면 해당 입력창(540)에 사용자가 이를 입력하면 된다. 그리고 나서 사용자는 i-frame(500)에 있는 검색 아이콘 DOM(510)을 선택한다. 그러면 이번에 선택된 DOM에 적용 가능한 이벤트들이 메뉴(520) 창(520)에 표시되고, 사용자는 '요소 클릭'이라는 특정 이벤트(550)를 선택할 수 있다. 그러면 다시 시나리오 창(530)에 해당 DOM에 대한 시나리오 라인(560)이 추가된다. 이러한 과정을 통해 사용자는 직관적이고 쉽게 웹 데이터 스크랩핑을 위한 시나리오를 구성/편집할 수 있다.As shown in FIG. 5, the user may additionally input specific text for the text input scenario in the scenario window 530. FIG. If the event selected by the user is a text input, it is a process of inputting / setting subsequent to which text to insert. Illustratively, when the user inputs text into the DOM as "KBS 9 o'clock news ", the user can input it into the input window 540. The user then selects the search icon DOM 510 in the i-frame 500. Then, events applicable to the currently selected DOM are displayed in the menu 520 window 520, and the user can select a specific event 550 'click element'. Then, a scenario line 560 for the corresponding DOM is added to the scenario window 530 again. This process allows users to configure / edit scenarios for scrapping Web data intuitively and easily.

W3C의 동일 출처 정책의 극복과 타킷 사이트 렌더링Overcoming the W3C Same Origin Policy and Targeting Site Rendering

일실시예에 따르면 시스템은 타킷 사이트 자체를 i-frame 내에서 브라우징 하지 않고, 그 타킷 사이트를 다운받아 프록시 사이트로 설정하고, 이 프록시 사이트를 i-frame에서 렌더링한다. 이러한 과정에서 사용자는 렌더링되는 페이지가 실제 타킷 페이지인지 모사 페이지인지 구분하지 못할 수 있다. 이러한 의미에서 이러한 처리를 i-frame 내에서의 타킷 사이트 모사라고 할 수 있다.According to one embodiment, the system does not browse the target site itself in the i-frame, downloads the target site, sets it as a proxy site, and renders the proxy site in the i-frame. In this process, the user may not be able to distinguish whether the rendered page is a real target page or a simulated page. In this sense, this process can be called target site simulation in i-frame.

이러한 실시예가 제공되는 이유는 몇 가지가 있다. 먼저, W3C의 동일 출처 정책을 극복하기 위한 것이다. 월드 와이드 웹 컨소시움 (World Wide Web Consortium: W3C)의 동일 출처 정책 (same-origin policy)은, 한 출처(source)에서 로드된 문서나 스크립트는 다른 출처의 자원과 상호작용하지 못하는 제약을 규정하고 있다. 따라서, 웹 스크랩핑을 위한 전용 프레임 제공에는 어려움이 있고, 하이퍼 링크, 플래시나 자바 기반의 스크립팅은 별도의 모사 프레임에서 정상적으로 렌더링되지 않을 수 있다. 또한, 타킷 사이트가 웹 표준을 준수하지 않는 것도 웹 스크랩핑을 위한 프레임에서 타킷 사이트가 정상적으로 모사되지 않는 이유가 될 수 있다. 특히 대한민국에서 서비스되는 웹 사이트 (예를 들어, 포털 사이트나 미디어 컨텐츠 제공사이트 등)은 웹 표준을 준수하지 않는 경우가 많다. 따라서, 기존에 제공되고 있는 웹 크롤러 봇(bot)들은 이러한 웹 사이트들을 모사하고 데이터 수집을 하는 데에 오류를 보이곤 한다. DOM 객체 내에서 자기 참조를 하는 등 루프(loop) 회귀에 걸리는 스크립트가 있는 등도 또 다른 원인이 될 수 있다.There are several reasons why such an embodiment is provided. First, it is to overcome the same source policy of W3C. The same-origin policy of the World Wide Web Consortium (W3C) specifies that documents and scripts loaded from one source are not allowed to interact with resources from other sources . Therefore, it is difficult to provide a dedicated frame for web scraping, and hyperlink, flash, or Java based scripting may not be normally rendered in a separate simulated frame. Also, if the target site does not conform to the web standard, it may be the reason why the target site is not normally copied in the frame for web scraping. In particular, Web sites (for example, portal sites or media content providing sites) that are serviced in the Republic of Korea often do not comply with Web standards. Therefore, existing web crawler bots are often mistaken for collecting data and collecting such websites. Another possible cause is a script that takes a loop loop, such as self-referencing within a DOM object.

여하간의 원인으로 기존 웹 크롤링 서비스들에서는 타킷 사이트가 정상 모사되지 못하고, 또한 DOM들이 모두 표시되지 못했다. 그러나 실시예들에 따른 시스템은 이러한 오류를 방지하도록 프록시 설정을 통해 타킷 사이트를 모사한다. 도 6은 일실시예에 따른 웹 데이터 프록시 경로 설정 및 링크 경로 수정 과정을 도시한다.For some reason, the existing Web crawling services did not properly map the target site, and the DOMs could not be displayed at all. However, the system according to the embodiments simulates the target site through the proxy setting to prevent such error. FIG. 6 illustrates a Web data proxy routing and link path modification process according to an embodiment.

PROXY 사이트/페이지 설정PROXY site / page setup

일실시예에 따르면 도 6에서 도시되는 바와 같이, 제어 서버(620)가 프록시 동적 설정부(624), HTML 다운로더(622), HTML 파서(626) 및 HTML 컨버터(628)를 포함한다. 프록시 동적 설정부(624)는 타깃 사이트로부터 HTML 리소스를 다운받기 위하여 프록시(proxy) 서버(630)와 프록시 동적 설정(635)을 할 수 있다. HTML 다운로더(622)는 타깃 사이트를 웹 데이터 수집 시스템에서 제어하기 위해 필요한 HTML 리소스를 다운로드할 수 있다. 이 다운로드 과정에서 상기한 동일 출처 정책 등 여러 가지 이유로 일부 객체는 다운로드가 되지 않을 수 있다. 후술할 일실시들예에 따르면 다양한 대안을 통해 이러한 다운로드의 불완전성을 극복하고 타킷 페이지를 정확하게 모사한다.6, the control server 620 includes a proxy dynamic setting unit 624, an HTML downloader 622, an HTML parser 626, and an HTML converter 628, as shown in FIG. The proxy dynamic setting unit 624 can perform a proxy dynamic setting 635 with a proxy server 630 to download HTML resources from a target site. The HTML downloader 622 may download the HTML resources required to control the target site in the web data collection system. In this download process, some objects may not be downloaded due to various reasons such as the above-mentioned same source policy. According to one embodiment, which will be described later, various alternatives overcome the incompleteness of such downloads and accurately simulate the target pages.

HTML 파서(parser)(626)는 HTML 리소스의 경로를 파싱(parsing)하여, 다운로드된 HTML 리소스를 웹 데이터 수집 시스템에 원본 그대로 인식시키지 않고, HTML 리소스 상의 리소스 경로를 프록시 서버(630)를 통해 프록시 경로로 변환하여 변환된 경로를 통해 타깃 사이트를 인식하여 화면에 출력되도록 한다. 이를 통해, 웹 데이터 수집 시스템의 출력 화면에 변환된 경로를 통해 인식된 타깃 사이트가 출력된다. 따라서 사용자가 웹 데이터 수집 시스템 내에서 타깃 사이트를 동일하게 보면서 DOM을 선택하고 제어할 수 있는 상태가 제공된다.The HTML parser 626 parses the path of the HTML resource to render the resource path on the HTML resource to the proxy server 630 via the proxy server 630, Path, and recognizes the target site through the converted path and outputs it to the screen. Through this, the target site recognized through the converted path is output to the output screen of the web data collection system. Thus, a state is provided in which the user can select and control the DOM while viewing the target site equally within the web data collection system.

HTML 컨버터(628)는 HTML 리소스 상의 리소스 경로를 프록시 경로로 변환할 수 있다. 프록시 서버를 통한 타깃 페이지의 HTML 리소스 경로 변환에 대해 구체적으로 설명한다. 예시적으로, 그러나 한정되지 않게, 시스템은 타깃 사이트 페이지의 URL을 받아서 해당 호스트에 대해 프록시 서버에 설정하고 key 생성을 진행할 수 있다. 이 key는 해당 URL에 대응하여 새로이 프록시 서버에 설정되는 개별 페이지를 구별하는 식별자(identifier)로서, 프록시 사이트 경로에 key를 붙이면 타깃 사이트 전용 프록시 URL이 생성될 수 있다. 예를 들어, 'http://www.A.com' 이 타깃 사이트일 경우 'http://www.A.com'에 대한 key가 생성될 수 있다. 예를 들어, key가 "abc"라면 'http://proxy.B.com/abc'가 타깃 사이트인 'http://www.A.com'의 전용 프록시 URL이 될 수 있다. 이 때, B는 일실시예에 따른 서비스를 제공하는 웹 데이터 수집 시스템의 호스트일 수 있다.HTML converter 628 may convert the resource path on the HTML resource to a proxy path. The HTML resource path conversion of the target page through the proxy server will be described in detail. Illustratively, but not exclusively, the system can receive the URL of the target site page, set it on the proxy server for that host, and proceed with key generation. This key is an identifier for distinguishing individual pages newly set in the proxy server corresponding to the corresponding URL. If a key is added to the proxy site path, a proxy URL dedicated to the target site can be generated. For example, if 'http://www.A.com' is the target site, a key for 'http://www.A.com' can be generated. For example, if the key is "abc", then 'http://proxy.B.com/abc' can be the dedicated proxy URL of the target site 'http://www.A.com'. In this case, B may be a host of a web data collection system that provides services according to one embodiment.

한편, 웹 데이터의 프록시 경로 수정에 대해 설명한다. 제어 서버(620)의 프록시 동적 설정부(624)가 타깃 사이트로부터 HTML 리소스를 다운받기 위하여 프록시 서버(630)와 프록시 동적 설정(635)을 할 수 있다. HTML 다운로더(620)가 타깃 사이트(660)에 접근(650)하여 타깃 사이트(660)로부터 HTML 리소스를 다운로드(640) 받을 수 있다. 이 다운로드 받은 HTML 리소스를 이용하여 웹 데이터 수집 시스템에서 타깃 사이트를 제어할 수 있다. HTML 파서(630)가 다운로드된 HTML 리소스의 경로를 파싱하여, 다운로드된 HTML 리소스를 웹 데이터 수집 시스템에 원본 그대로 인식시키지 않고, HTML 리소스 상의 리소스 경로를 프록시 서버(630)를 통해 프록시 경로로 변환하여 변환된 경로를 통해 타깃 사이트를 인식하여 웹 데이터 수집 시스템의 화면에 출력되도록 한다. HTML 리소스의 리소스 경로는 HTML 컨버터(628)를 통해 프록시 경로로 변환될 수 있다. 프록시 경로로 변환된 HTML 리소스 경로를 웹 데이터 수집 시스템으로 전송(610)할 수 있다. 웹 데이터 수집 시스템은 프록시 경로로 변환된 HTML 리소스 경로를 통해 타깃 사이트를 인식하여 웹 데이터 수집 시스템 프레임(600)의 타깃 사이트 표시부(605)에 타깃 사이트 화면을 표시하고, 사용자가 웹 데이터 수집 시스템에 접근하도록 할 수 있다.On the other hand, the modification of the proxy path of the web data will be described. The proxy dynamic setting unit 624 of the control server 620 may perform the proxy dynamic setting 635 and the proxy server 630 to download the HTML resource from the target site. The HTML downloader 620 may access 650 the target site 660 and download 640 the HTML resource from the target site 660. The downloaded HTML resource can be used to control the target site in the web data collection system. The HTML parser 630 parses the path of the downloaded HTML resource and converts the resource path on the HTML resource to the proxy path through the proxy server 630 without recognizing the downloaded HTML resource in the web data collection system as it is And the target site is recognized through the converted path so as to be displayed on the screen of the web data collection system. The resource path of the HTML resource may be converted to a proxy path through the HTML converter 628. [ The HTML resource path converted to the proxy path can be transferred 610 to the web data collection system. The web data collection system recognizes the target site through the HTML resource path converted to the proxy path, displays the target site screen on the target site display unit 605 of the web data collection system frame 600, Access.

PROXY 경로의 중복 설정을 방지한 자원 절감PROXY Reduces resources by preventing redundant path setup

한편, 일실시예에 따르면 한 번 생성된 프록시 URL은 재사용될 수 있다. 서로 다른 사용자가 동일한 타킷 URL에 대해 프록시 URL을 각자 생성하게 두는 경우 이는 자원의 효율적 활용에 반할 수 있다. 따라서, 한 번 생성된 프록시 URL에 대해서 key가 할당되면 이는 별도로 관리되어 동일한 타킷 URL에 대해 프록시 설정이 중복으로 되는 것이 방지된다. 예를 들어, 제1 사용자가 'http://www.C.com'을 타깃 사이트로 설정하였고, 이에 대해 key가 "def"로 설정되었다면 이 key가 관리되고, 그 다음에 제2 사용자가 'http://www.C.com'을 타깃 사이트로 설정하는 경우 관리되는 key를 확인하여 제2 사용자의 타킷 사이트는 기 설정된 프록시 URL을 재활용하도록 할 수 있다. 따라서, 이러한 배려를 통해 서버 자원이 크게 절감될 수 있다.Meanwhile, according to an exemplary embodiment, the once generated proxy URL can be reused. If different users are allowed to generate proxy URLs for the same target URLs, this can be counter to the efficient use of resources. Therefore, when a key is assigned to a once generated proxy URL, it is separately managed, thereby preventing duplication of proxy settings for the same target URL. For example, if the first user has set 'http://www.C.com' as the target site and the key is set to 'def', then this key is managed, then the second user is' When http://www.C.com 'is set as the target site, the target user site of the second user can check the managed key to recycle the preset proxy URL. Thus, server resources can be significantly reduced through this consideration.

시나리오 생성을 위한 시스템 동작 흐름(flow)System flow for scenario creation

도 7은 일실시예에 따른 웹 데이터 수집 시스템의 동작 흐름을 도시한다. 웹 데이터 수집 시스템은 타깃 사이트 경로 수정 단계(700), 사용자의 웹 데이터 수집 시스템 제어 단계(720) 및 데이터 수집 단계(740)를 포함한다. 우선, 타깃 사이트 경로 수정 단계(700)의 단계(703)에서 사용자가 웹 데이터 수집 시스템을 통해 데이터를 수집하고자 하는 타깃 사이트에 접근할 수 있고, 타깃 사이트의 URL을 지정할 수 있다. 그러면 단계(706)에서 웹 데이터 수집 시스템의 탐색 영역의 제어 서버가 HTML 다운로더를 통해 사용자가 지정한 타깃 사이트의 HTML 리소스를 다운로드 할 수 있다. 그러면, 단계(709)에서 제어 서버가 프록시 동적 설정 후 다운로드된 HTML 리소스의 경로를 HMTL 파서 및 HTML 컨버터를 이용하여 프록시 경로로 변환할 수 있다.7 illustrates an operational flow of a web data collection system according to one embodiment. The web data collection system includes a target site path modification step 700, a user's web data collection system control step 720, and a data collection step 740. In step 703 of the target site path modification step 700, the user can access the target site for collecting data through the web data collection system and designate the URL of the target site. In step 706, the control server of the search area of the web data collection system can download the HTML resource of the target site designated by the user through the HTML downloader. Then, in step 709, the control server may convert the path of the downloaded HTML resource after proxy dynamic setting to a proxy path using the HMTL parser and HTML converter.

그리고 웹 데이터 수집 시스템 제어 단계(720)의 단계(726)에서 변환된 경로로 인식되는 타깃 사이트를 웹 데이터 수집 시스템 프레임의 타깃 사이트 표시부에 출력하여 사용자가 제어하도록 할 수 있다. 그러면 단계(724)에서 웹 데이터 수집 시스템 프레임은 타깃 사이트 표시부, 입력 이벤트 표시부 및 데이터 수집 규칙 표시부를 통해 사용자가 웹 데이터 수집 규칙을 생성할 수 있는 DOM 이벤트 제어 환경이 제공된다. 그리고 단계(722)에서 사용자는 제공된 DOM 제어 환경에서 유저 인터페이스를 이용하여 DOM을 제어하고 입력 이벤트를 선택하여 데이터 수집 규칙을 생성할 수 있다.Then, in step 726 of the web data collection system control step 720, the target site recognized as the converted path may be output to the target site display unit of the web data collection system frame to be controlled by the user. In step 724, the web data collection system frame is provided with a DOM event control environment in which a user can generate a web data collection rule through a target site display unit, an input event display unit, and a data collection rule display unit. In step 722, the user can control the DOM using the user interface in the provided DOM control environment and select an input event to generate a data collection rule.

다음으로, 데이터 수집 단계(740)의 단계(742)에서 웹 데이터 수집 시스템의 수집 영역은 사용자가 생성한 데이터 수집 규칙에 대해 데이터 수집 규칙 데이터 베이스를 생성한다. 그리고 단계(746)에서 사용자에 의해 생성된 데이터 수집 규칙에 따라 주기적, 반복적으로 데이터를 탐색할 수 있다. 이러한 과정을 거치고 단계(748)에서는 탐색된 데이터에 대한 결과 페이지의 HTML 리소스를 다운로드 받을 수 있다. 그러면 단계(750)에서 다운로드 받은 HTML 리소스에 대해 이미지, css 등의 리소스 들의 각 파일 형태에 따라 HTML 리소스의 경로를 변환할 수 있다.Next, in step 742 of the data collection step 740, the collection area of the web data collection system creates a data collection rule database for the data collection rules generated by the user. In step 746, data can be periodically and repeatedly searched according to the data collection rules generated by the user. In step 748, the HTML resource of the result page for the found data may be downloaded. Then, in step 750, the path of the HTML resource can be converted according to each file type of the resource such as image, css, etc. with respect to the downloaded HTML resource.

그리고, 웹 데이터 수집 시스템 제어 단계(720)의 단계(728)에서 변환된 경로로 결과 페이지를 재현하여 웹 데이터 수집 시스템 프레임에 출력하여 사용자에게 데이터 수집 결과를 제공할 수 있다.Then, in step 728 of the web data collection system control step 720, the result page is reproduced with the converted path and output to the web data collection system frame to provide the data collection result to the user.

데이터 수집 봇(bot)의 동작The behavior of the data collection bot

도 8은 일실시예에 따른 데이터 수집 로봇의 구성을 도시한 도면이다. 데이터 수집 봇(800)은 탐색 수행 로봇(810) 및 데이터 저장소(820)로 구성될 수 있다. 탐색 수행 로봇(810)은 생성되는 데이터 수집 규칙에 따라, 일정 시간 간격마다 주기적, 반복적으로 웹 데이터를 수집할 수 있다. 수집된 웹 데이터는 데이터 저장소(820)에 저장될 수 있다.FIG. 8 is a diagram showing a configuration of a data collecting robot according to an embodiment. The data collection bot 800 may be comprised of a search performing robot 810 and a data repository 820. The search performing robot 810 can periodically and repeatedly collect web data at predetermined time intervals according to the data collection rules to be generated. The collected web data may be stored in the data store 820.

사용자 단말(850)로부터 데이터 출력 요청(840)을 받으면, 그동안 수집되어 데이터 저장소(820)에 저장된 웹 데이터를 즉각 불러와 사용자 단말(850)로 전송(830)할 수 있다.Upon receipt of the data output request 840 from the user terminal 850, the web data collected in the meantime and stored in the data store 820 may be immediately retrieved and transmitted 830 to the user terminal 850.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the apparatus and components described in the embodiments may be implemented within a computer system, such as, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable array (FPA) A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing unit may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more computer readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described with reference to the drawings, various modifications and variations may be made by those skilled in the art. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (18)

웹 데이터 스크랩핑 장치의 동작 방법에 있어서, 상기 장치가:
사용자로부터 지정되는 타킷 사이트를 모사하여 타깃 사이트 표시부에 렌더링하는 단계;
상기 렌더링되는 결과에 포함되는 적어도 하나의 DOM(Document Object Model) 중 사용자가 선택하는 제1 DOM에 대해 다른 객체와 구분되도록 그래픽 처리를 수행하는 단계; 및
상기 제1 DOM에 적용될 수 있는 적어도 하나의 사용자 입력 이벤트를 메뉴 형태로 입력 이벤트 표시부에 디스플레이 하는 단계
를 포함하는 방법.
A method of operating a web data scraping device, the method comprising:
Rendering a target site designated by a user and rendering the target site on a target site display unit;
Performing graphic processing to distinguish a first DOM selected by a user among at least one DOM (Document Object Model) included in the rendered result, from other objects; And
Displaying at least one user input event that can be applied to the first DOM in a form of a menu on an input event display
≪ / RTI >
제1항에 있어서,
상기 디스플레이 되는 적어도 하나의 사용자 입력 이벤트 중, 사용자로부터 선택되는 제1 이벤트를 제1 DOM에 적용하는 규칙에 대응하는 제1 시나리오 라인을 데이터 수집 규칙 표시부에 추가하여 시나리오에 반영하는 단계
를 더 포함하는 방법.
The method according to claim 1,
Adding a first scenario line corresponding to a rule for applying a first event selected by the user to the first DOM among the at least one user input event to be displayed to the data collection rule display unit and reflecting the added first scenario line to the scenario
≪ / RTI >
제2항에 있어서,
상기 제1 시나리오 라인에 대한 추가 입력 인터페이스, 상기 제1 시나리오 라인에 대한 삭제 및 상기 제1 시나리오 라인에 대한 시행 순서 변경 중 적어도 하나의 편집 인터페이스를 데이터 수집 규칙 표시부에 표시하는 단계
를 더 포함하는 방법.
3. The method of claim 2,
Displaying at least one editing interface on a data collection rule display unit, the additional input interface for the first scenario line, the deletion for the first scenario line, and the change of enforcement order for the first scenario line
≪ / RTI >
제1항에 있어서,
상기 타깃 사이트를 제어하기 위해 필요한 HTML 리소스를 다운로드하고, 상기 HTML 리소스 상의 적어도 하나의 리소스 경로를 프록시 서버의 프록시 경로로 변환하여 설정하여, 상기 타킷 사이트에 대응하는 프록시 사이트를 생성하는 프록시 설정 단계
를 더 포함하는 방법.
The method according to claim 1,
A proxy setting step of downloading an HTML resource necessary for controlling the target site, converting at least one resource path on the HTML resource into a proxy path of the proxy server and creating a proxy site corresponding to the target site,
≪ / RTI >
제4항에 있어서,
상기 프록시 설정 단계는, 상기 타킷 사이트의 URL에 대응하는 고유 식별자인 제1 키를 생성하고, 상기 프록시 사이트를 상기 제1 키와 연관지어 관리하는 단계를 포함하는 방법.
5. The method of claim 4,
The proxy setting step includes generating a first key that is a unique identifier corresponding to the URL of the target site and managing the proxy site in association with the first key.
제5항에 있어서,
상기 타킷 사이트에 상기 URL에 대한 또 다른 프록시 설정 요청이 있는 경우, 상기 제1 키를 확인하여 상기 제1 키를 통해 상기 프록시 사이트를 리턴하는 방법.
6. The method of claim 5,
If there is another proxy setting request for the URL in the target site, checking the first key and returning the proxy site through the first key.
사용자가 선택하는 타킷 사이트의 URL을 수신하는 경우, 상기 타킷 사이트 정보를 다운로드 하여 타깃 사이트 표시부에 렌더링하는 타킷 사이트 관리 유닛; 및
상기 렌더링되는 결과에 포함되는 적어도 하나의 DOM(Document Object Model) 중 사용자가 선택하는 제1 DOM에 대해 선택 가능한 적어도 하나의 이벤트를 입력 이벤트 표시부에 디스플레이하고, 사용자가 선택하는 제1 이벤트를 상기 제1 DOM에 적용하는 제1 데이터 수집 규칙으로 생성하는 데이터 수집 규칙 관리 유닛
을 포함하는 웹 데이터 스크랩핑 장치.
A target site managing unit for downloading the target site information and rendering the target site information on the target site display unit when the URL of the target site selected by the user is received; And
Displaying at least one event selectable for a first DOM selected by a user among at least one DOM (Document Object Model) included in the rendered result on an input event display unit, 1 < / RTI > data collection rule management unit < RTI ID = 0.0 >
The web data scraping device comprising:
제7항에 있어서,
상기 데이터 수집 규칙 관리 유닛은 상기 제1 데이터 수집 규칙을 제1 시나리오 라인 형태로 데이터 수집 규칙 표시부에 제공하는 장치.
8. The method of claim 7,
Wherein the data collection rule management unit provides the first data collection rule to a data collection rule display unit in the form of a first scenario line.
제8항에 있어서,
상기 데이터 수집 규칙 관리 유닛은 상기 제1 시나리오 라인을 상기 데이터 수집 규칙 표시부에 표시하면서, 상기 제1 시나리오 라인에 대한 추가 입력 인터페이스, 상기 제1 시나리오 라인에 대한 삭제 및 상기 제1 시나리오 라인에 대한 시행 순서 변경 중 적어도 하나의 편집 인터페이스를 함께 표시하는 장치.
9. The method of claim 8,
Wherein the data collection rule management unit displays the first scenario line on the data collection rule display unit and displays the additional input interface for the first scenario line, the deletion for the first scenario line, and the execution for the first scenario line And displaying at least one editing interface of the change order.
제7항에 있어서,
상기 타깃 사이트를 제어하기 위해 필요한 HTML 리소스를 다운로드하고, 상기 HTML 리소스 상의 적어도 하나의 리소스 경로를 프록시 서버의 프록시 경로로 변환하여 설정하여, 상기 타킷 사이트에 대응하는 프록시 사이트를 생성하는 제어 서버
를 더 포함하는 장치.
8. The method of claim 7,
Downloading an HTML resource required for controlling the target site, converting at least one resource path on the HTML resource to a proxy path of the proxy server, and setting a proxy site corresponding to the target site,
Lt; / RTI >
제10항에 있어서, 상기 제어 서버는:
상기 타깃 사이트로부터 HTML 리소스를 다운받기 위하여 프록시 동적 설정을 수행하는 프록시 동적 설정부;
상기 타깃 사이트를 웹 데이터 수집 시스템에서 제어하기 위해 필요한 HTML 리소스를 다운로드하는 HTML 다운로더;
HTML 리소스의 경로를 파싱parsing)하여, 상기 다운로드된 HTML 리소스 상의 리소스 경로를 프록시 경로로 변환하여 변환된 경로를 통해 상기 타깃 사이트를 인식하여 화면에 출력되도록 하는 HTML 파서(parser); 및
상기 HTML 리소스 상의 상기 리소스 경로를 상기 프록시 경로로 변환하는 HTML 컨버터
를 포함하는 장치.
11. The system of claim 10, wherein the control server comprises:
A proxy dynamic setting unit configured to perform a proxy dynamic setting to download HTML resources from the target site;
An HTML downloader for downloading HTML resources necessary for controlling the target site in a web data collection system;
Parsing the path of the HTML resource), converting the resource path on the downloaded HTML resource into a proxy path, recognizing the target site through the converted path, and outputting it to the screen; And
An HTML converter for converting the resource path on the HTML resource into the proxy path;
/ RTI >
제11항에 있어서,
상기 HTML 컨버터는, 상기 타킷 사이트의 URL에 대응하는 고유 식별자인 제1 키를 생성하고, 상기 프록시 사이트를 상기 제1 키와 연관지어 관리하는 장치.
12. The method of claim 11,
Wherein the HTML converter generates a first key that is a unique identifier corresponding to the URL of the target site and manages the proxy site in association with the first key.
제12항에 있어서,
상기 타킷 사이트에 상기 URL에 대한 또 다른 프록시 설정 요청이 있는 경우, 상기 제1 키를 확인하여 상기 제1 키를 통해 상기 프록시 사이트를 리턴하는 장치.
13. The method of claim 12,
And if there is another proxy setting request for the URL in the target site, checking the first key and returning the proxy site through the first key.
컴퓨터 판독 가능 기록매체에 저장되는 웹 데이터 스크랩핑 서비스 제공 방법을 수행하는 프로그램에 있어서, 상기 방법은:
사용자로부터 지정되는 타킷 사이트를 모사하여 타깃 사이트 표시부에 렌더링하는 단계;
상기 렌더링되는 결과에 포함되는 적어도 하나의 DOM(Document Object Model) 중 사용자가 선택하는 제1 DOM에 대해 다른 객체와 구분되도록 그래픽 처리를 수행하는 단계; 및
상기 제1 DOM에 적용될 수 있는 적어도 하나의 사용자 입력 이벤트를 메뉴 형태로 입력 이벤트 표시부에 디스플레이 하는 단계
를 포함하는 컴퓨터 판독 가능 기록매체.
A program for performing a method of providing a web data scraping service stored on a computer readable recording medium, the method comprising:
Rendering a target site designated by a user and rendering the target site on a target site display unit;
Performing graphical processing so that the first DOM selected by the user is distinguished from other objects among at least one DOM (Document Object Model) included in the rendered result; And
Displaying at least one user input event that can be applied to the first DOM in a form of a menu on an input event display
Readable recording medium.
제14항에 있어서, 상기 방법은,
상기 디스플레이 되는 적어도 하나의 사용자 입력 이벤트 중, 사용자로부터 선택되는 제1 이벤트를 제1 DOM에 적용하는 규칙에 대응하는 제1 시나리오 라인을 데이터 수집 규칙 표시부에 추가하여 시나리오에 반영하는 단계
를 더 포함하는 컴퓨터 판독 가능 기록매체.
15. The method of claim 14,
Adding a first scenario line corresponding to a rule for applying a first event selected by the user to the first DOM among the at least one user input event to be displayed to the data collection rule display unit and reflecting the added first scenario line to the scenario
Further comprising a computer readable medium.
제14항에 있어서, 상기 방법은,
상기 타깃 사이트를 제어하기 위해 필요한 HTML 리소스를 다운로드하고, 상기 HTML 리소스 상의 적어도 하나의 리소스 경로를 프록시 서버의 프록시 경로로 변환하여 설정하여, 상기 타킷 사이트에 대응하는 프록시 사이트를 생성하는 프록시 설정 단계를 더 포함하는 컴퓨터 판독 가능 기록매체.
15. The method of claim 14,
A proxy setting step of downloading an HTML resource necessary for controlling the target site, converting at least one resource path on the HTML resource into a proxy path of the proxy server, and setting a proxy site corresponding to the target site Further comprising:
제16항에 있어서,
상기 프록시 설정 단계는, 상기 타킷 사이트의 URL에 대응하는 고유 식별자인 제1 키를 생성하고, 상기 프록시 사이트를 상기 제1 키와 연관지어 관리하는 단계를 포함하는 컴퓨터 판독 가능 기록매체.
17. The method of claim 16,
Wherein the proxy setting step includes: generating a first key that is a unique identifier corresponding to a URL of the target site, and managing the proxy site in association with the first key.
제17항에 있어서,
상기 타킷 사이트의 상기 URL에 대한 또 다른 프록시 설정 요청이 있는 경우, 상기 제1 키를 확인하여 상기 제1 키를 통해 상기 프록시 사이트를 리턴하는 컴퓨터 판독 가능 기록매체.
18. The method of claim 17,
And if there is another proxy setting request for the URL of the target site, confirms the first key and returns the proxy site via the first key.
KR1020170001345A 2017-01-04 2017-01-04 Apparatus and method for scrapping web data Active KR101913780B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170001345A KR101913780B1 (en) 2017-01-04 2017-01-04 Apparatus and method for scrapping web data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170001345A KR101913780B1 (en) 2017-01-04 2017-01-04 Apparatus and method for scrapping web data

Publications (2)

Publication Number Publication Date
KR20180080535A true KR20180080535A (en) 2018-07-12
KR101913780B1 KR101913780B1 (en) 2018-11-02

Family

ID=62919763

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170001345A Active KR101913780B1 (en) 2017-01-04 2017-01-04 Apparatus and method for scrapping web data

Country Status (1)

Country Link
KR (1) KR101913780B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200079024A (en) * 2018-12-24 2020-07-02 (주)해나소프트 Apparatus and method for scrapping web data
KR102197329B1 (en) * 2020-01-09 2020-12-31 주식회사 카카오뱅크 Scrapping service providing method and application for the same method
CN114117161A (en) * 2020-08-25 2022-03-01 阿里巴巴集团控股有限公司 Display method and device
WO2022220311A1 (en) * 2021-04-12 2022-10-20 카페24 주식회사 Automatic interworking method, device, and system between heterogeneous platforms

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102072066B1 (en) 2020-01-02 2020-01-31 주식회사 유펜솔루션 Software as a service based web crawling system
US11836195B2 (en) * 2020-03-10 2023-12-05 Haenasoft Company, Limited System for selectively importing web data by arbitrarily setting action design
KR102420707B1 (en) 2020-04-10 2022-07-14 (주)해나소프트 Selective importing system of web data through forced submission of target websites
KR102477021B1 (en) 2021-01-12 2022-12-13 (주)해나소프트 System for extracting target data by selectively arraying order of action
KR102420706B1 (en) 2021-01-12 2022-07-15 (주)해나소프트 System accumulating target data by approaching hierarchy of target web page
KR102407246B1 (en) * 2021-06-16 2022-06-10 주식회사 두들린 Method for facilitating collection of data for job search or recruitment and apparatus using the same

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120139955A (en) * 2011-06-20 2012-12-28 인하대학교 산학협력단 System for web data extraction for mobile platform
KR20150085716A (en) * 2014-01-16 2015-07-24 이주현 Setup Method for Web Scraping Data Extraction

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120139955A (en) * 2011-06-20 2012-12-28 인하대학교 산학협력단 System for web data extraction for mobile platform
KR20150085716A (en) * 2014-01-16 2015-07-24 이주현 Setup Method for Web Scraping Data Extraction

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200079024A (en) * 2018-12-24 2020-07-02 (주)해나소프트 Apparatus and method for scrapping web data
KR102197329B1 (en) * 2020-01-09 2020-12-31 주식회사 카카오뱅크 Scrapping service providing method and application for the same method
WO2021141441A1 (en) * 2020-01-09 2021-07-15 주식회사 카카오뱅크 Method for providing scraping-based service and application for performing same
US11768891B2 (en) 2020-01-09 2023-09-26 Kakaobank Corp. Method for providing scraping-based service and application for executing the same
CN114117161A (en) * 2020-08-25 2022-03-01 阿里巴巴集团控股有限公司 Display method and device
WO2022220311A1 (en) * 2021-04-12 2022-10-20 카페24 주식회사 Automatic interworking method, device, and system between heterogeneous platforms

Also Published As

Publication number Publication date
KR101913780B1 (en) 2018-11-02

Similar Documents

Publication Publication Date Title
KR101913780B1 (en) Apparatus and method for scrapping web data
US8640037B2 (en) Graphical overlay related to data mining and analytics
JP4306991B2 (en) Data processing apparatus and method, computer program, and storage medium
US8312383B2 (en) Mashup application processing system
US10242331B2 (en) Supplemental system for business intelligence systems to provide visual identification of meaningful differences
CN110235122B (en) System and method for converting web content into reusable templates and components
US7873946B2 (en) Scalable vector graphics, tree and tab as drag and drop objects
US8713520B2 (en) Web development environment that enables a developer to interact with run-time output presentation of a page
CN102520841B (en) Collection user interface
JP5636521B2 (en) Configuration of web crawler to extract web page information
US9612715B2 (en) Real-time preview of uniform resource identifier addressable dynamic content
US20040215719A1 (en) Method and system for designing, editing and publishing web page content in a live internet session
KR102016161B1 (en) Method and system for simplified knowledge engineering
US20180081982A1 (en) Managing a display of results of a keyword search on a web page by modifying attributes of a dom tree structure
CN108293081A (en) Pass through the program playback deep linking of user interface event to mobile application state
US8713436B2 (en) Reusing data in user run book automation
MacDonald et al. Pro Asp. net 4 in C# 2010
CN107832052A (en) Show the method, apparatus and storage medium and electronic equipment of preview page
CN111679818A (en) Method and system for editing display software
US20090132937A1 (en) Modifying Hover Help for a User Interface
US20210133270A1 (en) Referencing multiple uniform resource locators with cognitive hyperlinks
US20240385951A1 (en) System and methods for characterizing authentic user experiences
WO2024037407A1 (en) Media content publishing method and apparatus and computer-readable storage medium
CN120105438B (en) Security detection method and system based on large language model and retrieval enhancement
US20120216132A1 (en) Embedding User Selected Content In A Web Browser Display

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 5

R17-X000 Change to representative recorded

St.27 status event code: A-5-5-R10-R17-oth-X000

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 6

R17-X000 Change to representative recorded

St.27 status event code: A-5-5-R10-R17-oth-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 7

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 8

U11 Full renewal or maintenance fee paid

Free format text: ST27 STATUS EVENT CODE: A-4-4-U10-U11-OTH-PR1001 (AS PROVIDED BY THE NATIONAL OFFICE)

Year of fee payment: 8