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

Apparatus and method for scrapping web data Download PDF

Info

Publication number
KR102191458B1
KR102191458B1 KR1020180168480A KR20180168480A KR102191458B1 KR 102191458 B1 KR102191458 B1 KR 102191458B1 KR 1020180168480 A KR1020180168480 A KR 1020180168480A KR 20180168480 A KR20180168480 A KR 20180168480A KR 102191458 B1 KR102191458 B1 KR 102191458B1
Authority
KR
South Korea
Prior art keywords
event
dom
web
data collection
user
Prior art date
Application number
KR1020180168480A
Other languages
Korean (ko)
Other versions
KR20200079024A (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 KR1020180168480A priority Critical patent/KR102191458B1/en
Publication of KR20200079024A publication Critical patent/KR20200079024A/en
Application granted granted Critical
Publication of KR102191458B1 publication Critical patent/KR102191458B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents

Abstract

웹 데이터 스크랩핑 시스템 및 그 동작 방법이 제공된다. 시스템은 사용자가 지정하는 타킷 사이트를 모사하여 별도의 프레임에 렌더링한다. 이 과정에서 웹 표준을 준수하지 않는 사이트도 프록시 설정을 통해 정확히 모사될 수 있다. 사용자는 해당 프레임에서 DOM을 직관적이고 쉽게 선택하고, 이를 제어하는 이벤트를 데이터 수집 규칙으로 생성할 수 있다. 이는 시나리오에 반영되어, 자동 반복 수행 등 웹 스크랩핑 서비스가 제공될 수 있다.A web data scraping system and its operation method are provided. The system simulates the target site designated by the user and renders it in a separate frame. In this process, even sites that do not comply with web standards can be accurately simulated through proxy settings. Users can intuitively and easily select DOM in the frame and create events that control them as data collection rules. This is reflected in the scenario, and web scraping services such as automatic repetition can be provided.

Description

웹 데이터 수집 장치 및 방법{APPARATUS AND METHOD FOR SCRAPPING WEB DATA}Web data collection device and method {APPARATUS AND METHOD FOR SCRAPPING WEB DATA}

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

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

한편, 월드 와이드 웹 컨소시움 (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 or scripts loaded from one source are restricted from interacting with resources from other sources. It is difficult to provide a dedicated frame for ping.

또한, 웹 스크랩핑 과정에서 OS 커널에서의 물리적 키보드 및 마우스 이벤트등의 표준입출력을 웹브라우저에 주입할 수 없는 한계가 있다. 기존 입력방식은 엘리먼트를 관리하는 HTML5 기반의 특정 태그를 Javascript의 Selector 또는 XPath를 통해서 자원권한을 획득한 후 Javascript 이벤트를 강제로 주입하는 기능을 사용한다. 그러나, 해당 기능을 악의적으로 사용할 경우 불법적인 방법으로 트래픽을 과다하게 발생시킬 수 있고 웹 매크로와 같은 형식으로 구동되어 웹사이트에 피해를 줄 수 있다. 따라서, 최근 개발되고 있는 대형 포털 및 보안이 뛰어난 웹 서비스의 경우 Javascript 모듈 또는 서버 프로그램에서의 필터링을 통해 이벤트를 강제로 주입하는 방법을 차단하고 있다.In addition, there is a limitation in that standard input/output such as physical keyboard and mouse events in the OS kernel cannot be injected into the web browser during the web scraping process. The existing input method uses the function of forcibly injecting a Javascript event after acquiring resource permission through a Javascript Selector or XPath for a HTML5-based specific tag that manages elements. However, if the function is used maliciously, it may generate excessive traffic in an illegal way, and it may be driven in the same format as a web macro and damage the website. Therefore, in the case of recently developed large portals and web services with excellent security, the method of forcibly injecting events through filtering in a Javascript module or server program is blocked.

대한민국 등록특허 10-1125083호 (공고일자 2012년3월21일)Korean Patent Registration No. 10-1125083 (announcement date March 21, 2012) 미국 등록특허 US 7,647,351호 (공고일자 2010년1월12일)US registered patent US 7,647,351 (announced date January 12, 2010)

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

일실시예에 따르면 방법은 상기 디스플레이 되는 적어도 하나의 OS영역 물리적 입력 이벤트 중, 사용자로부터 선택되는 제1 물리적 이벤트를 제1 DOM에 적용하는 규칙에 대응하는 제1 시나리오 라인을 데이터 수집 규칙 표시부에 추가하여 시나리오에 반영하는 단계를 더 포함할 수 있다.According to an embodiment, the method adds a first scenario line corresponding to a rule for applying a first physical event selected by a user to the first DOM among the displayed physical input events of the at least one OS area to the data collection rule display unit. It may further include a step of reflecting in the scenario.

또한, 방법은 상기 작성된 시나리오 중 OS 영역 물리적 입력 이벤트를 실행하는 경우, 상기 중계 모듈을 통해 OS 영역보다 상위 어플리케이션에서 물리적 입력 이벤트를 발생하는 시나리오 실행 단계를 더 포함할 수 있다.In addition, the method may further include a scenario execution step of generating a physical input event in an application higher than the OS area through the relay module when executing a physical input event in the OS area among the created scenarios.

한편, 상기 시나리오 작성 또는 실행 단계에서 상기 OS 영역 물리적 입력 이벤트의 DOM 좌표에 대응되는 DOM이 상기 중계 모듈을 통해 제어 가능한 객체인지 여부를 판별하는 것을 포함할 수 있다.Meanwhile, in the scenario creation or execution step, it may include determining whether the DOM corresponding to the DOM coordinates of the physical input event of the OS area is an object controllable through the relay module.

일실시예에 따르면 방법은 상기 상위 어플리케이션은 웹 브라우저나 빅데이터 수집 프로그램인 것을 포함할 수 있다.According to an embodiment, the method may include that the upper application is a web browser or a big data collection program.

도 1은 일실시예에 따른 웹 데이터 수집 시스템의 구성을 도시한 블록도이다.
도 2는 일실시예에 따른 웹 데이터 수집 시스템이 사용자에게 제공하는 화면 구성을 도시한다.
도 3은 일실시예에 따른 웹 데이터 수집 시스템에서 DOM이 선택되는 과정을 설명하기 위한 도면이다.
도 4는 일실시예에 따라 선택된 DOM에 대응하는 이벤트 메뉴가 제공되는 과정을 설명하기 위한 도면이다.
도 5는 일실시예에 따른 시나리오의 설정과 편집을 설명하기 위한 도면이다.
도 6은 일실시예에 따라 선택된 DOM에 대응하는 이벤트 메뉴에 물리적 텍스트 입력 이벤트로 제공되는 과정을 설명하기 위한 도면이다.
도 7은 일실시예에 따라 선택된 DOM에 대응하는 이벤트 메뉴에 물리적 요소 추가 이벤트로 제공되는 과정을 설명하기 위한 도면이다.
도 8은 일실시예에 따른 웹 데이터 프록시 설정 및 경로 수정 과정을 도시한 도면이다.
도 9은 일실시예에 따른 웹 데이터 수집 시스템의 동작 흐름을 도시한 도면이다.
도 10은 일실시예에 따른 데이터 수집 로봇의 구성을 설명하기 위한 도면이다.
도 11은 일실시예에 따른 물리적 입력을 통한 이벤트를 상위 어플리케이션에 제공되는 과정을 설명하기 위한 도면이다.
1 is a block diagram showing the configuration of a web data collection system according to an embodiment.
2 is a diagram illustrating a screen configuration provided to a user by a web data collection system according to an embodiment.
3 is a diagram illustrating a process of selecting a DOM in a web data collection system according to an exemplary embodiment.
4 is a diagram illustrating a process of providing an event menu corresponding to a selected DOM according to an embodiment.
5 is a diagram for explaining setting and editing of a scenario according to an embodiment.
6 is a diagram for describing a process of providing a physical text input event to an event menu corresponding to a selected DOM according to an embodiment.
7 is a diagram illustrating a process of providing a physical element addition event to an event menu corresponding to a selected DOM according to an embodiment.
8 is a diagram illustrating a process of setting a web data proxy and modifying a path according to an embodiment.
9 is a diagram illustrating an operation flow of a web data collection system according to an embodiment.
10 is a diagram illustrating a configuration of a data collection robot according to an embodiment.
11 is a diagram for describing a process of providing an event through a physical input to a higher level application 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. The same reference numerals in each drawing indicate the same members.

아래 설명에서 사용되는 용어는, 연관되는 기술 분야에서 일반적이고 보편적인 것으로 선택되었으나, 기술의 발달 및/또는 변화, 관례, 기술자의 선호 등에 따라 다른 용어가 있을 수 있다. 따라서, 아래 설명에서 사용되는 용어는 기술적 사상을 한정하는 것으로 이해되어서는 안 되며, 실시예들을 설명하기 위한 예시적 용어로 이해되어야 한다.The terms used in the description below have been selected as general and universal in the related technology field, but there may be other terms depending on the development and/or change of technology, customs, preferences of technicians, and the like. Therefore, terms used in the following description should not be understood as limiting the technical idea, but should be understood as exemplary terms for describing embodiments.

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

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

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

웹 스크랩핑 소프트웨어의 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 applied to an event is referred to as a document object model (hereinafter referred to as'DOM'). DOM is an application programming interface (API) that processes html and xml documents. Html is a document composed of numerous tags such as head, body, table, tr, td, etc., and all of these tags are made to create a visual representation that users can see. DOM refers to a part of a web document made up of this tag, and the user selects it with a user interfacing device (eg, keyboard, mouse, touch screen, etc.), and selects some action (e.g., keystroke, mouse click, Drag, touch, etc., but are not limited thereto). According to embodiments, a web screen is implemented in an i-frame, which is a separate browsing frame, while providing a user to select and control an individual DOM. When a specific DOM is selected, multiple events that can be applied to the DOM are provided on the menu screen on the right, and when the user selects one or more of them and completes the event to be applied to a specific DOM, the event is 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 an embodiment may be configured as shown in FIG. 1. 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 generation 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 it, and when necessary, the information on the target site Can provide. In addition, the data collection rule management unit 120 receives information about the data collection rule as a request signal 170 from the data collection rule generation unit 180 of the web data collection area 140 and stores it, and when necessary, You can provide information about collection rules. The control server 130 may receive information on a target site from the target site management unit 110 and control a data collection procedure to download data from the target site. The control server 130 will be described in detail in FIG. 2.

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

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

도 1에서 제시되는 블록도는 물리적인 엘리먼트의 구분을 의미하는 것일 수도 있지만, 물리적 구분이 아니라 논리적인 구분을 의미하는 것일 수 있다. 따라서, 하나 이상의 유닛들은 실질적으로 동일한 하드웨어 엘리먼트에 의해 함께 구현되는 것도 가능하다. 따라서, 예시적인 블록도인 도 1에 국한되지 않고, 실질적으로 동일한 기능을 수행하는 구성도 발명이 표상하는 범위에 포함되는 것으로 이해되어야 한다.The block diagram shown in FIG. 1 may mean classification of physical elements, but may mean logical division rather than physical division. Accordingly, 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 exemplary block diagram is not limited to FIG. 1, and configurations that perform substantially the same function are included in the scope represented by the invention.

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

일실시예에 따르면 스크랩핑의 대상이 되는 웹 페이지(이하에서는 '타킷 페이지'라고 할 수 있음)를 범용 웹 브라우저 자체가 아닌 이를 통해 제공되는 별도의 프레임(이를 명세서 전반에 걸처 'i-frame'이라고 함)에서 렌더링한다. i-frame에서 타킷 페이지를 렌더링하고, 여기서 DOM 선택과 제어 이벤트 선택이 가능하도록 하기 위해 웹 데이터 수집 시스템 프레임(200)이 제공된다. 도 2는 일실시예에 따른 웹 데이터 수집 시스템의 구현 프레임(200)을 도시한 도면이다. 이러한 프레임(200)은 실시예들에 따라 사용자가 쉽게 직관적으로 타킷 사이트 및 그에 포함되는 DOM을 선택/제어 하고, 이에 따른 이벤트를 선택하여 웹 데이터 수집 시나리오를 생성/관리할 수 있도록 하는 그래픽 유저 인터페이스의 집합으로서, 웹 기반일 수도 있으나, 이에 국한되는 것은 아니다. 이를테면, 앱(APP) 기반의 전용 프로그램에 의해 프레임(200)이 제공될 수도 있다. 이하에서 별다른 언급이 없더라도 프레임(200)의 형태나 제공 방식에 대해서는 일부 예시된 응용으로 국한하여 이해되어서는 안 된다.According to an embodiment, a web page to be scrapped (hereinafter, it may be referred to as a'target page') is not a general-purpose web browser itself, but a separate frame provided through it (the'i-frame' throughout the specification. Rendered in). A web data collection system frame 200 is provided in order to render a target page in an i-frame and enable DOM selection and control event selection. 2 is a diagram illustrating an implementation frame 200 of a web data collection system according to an embodiment. The frame 200 is a graphical user interface that allows a user to easily and intuitively select/control a target site and a DOM included therein, and select an event accordingly to create/manage a web data collection scenario according to embodiments. As a set of, it may be web-based, but is not limited thereto. For example, the frame 200 may be provided by an app-based dedicated program. Even if there is no particular mention in the following, the form or provision method of the frame 200 is limited to some exemplified applications and should not be understood.

그래픽 기반으로 사용자가 웹 데이터 수집을 제공할 수 있도록 하는 상기 프레임(200)은 타깃 사이트 표시부(210), 입력 이벤트 표시부(220) 및 데이터 수집 규칙 표시부(230)를 포함한다. 예시적으로 그러나 한정되지 않게, 타킷 사이트 표시부(210)는 앞서 언급한 i-frame일 수 있다. 웹 데이터 수집 시스템은 그래픽 유저 인터페이스를 기반으로 하고 있다. 타깃 사이트 표시부(210)에는 웹 데이터를 수집하고자 하는 타깃 사이트가 프록시 서버를 통해 변환된 경로로 인식되어 화면에 나타날 수 있다. 프록시 서버 및 이를 이용하는 프록시 사이트에 대해서는 상세히 후술한다. i-frame인 타깃 사이트 표시부(210)는 타킷 사이트를 모사하여 렌더링하면서, 그 타킷 사이트에서 선택 가능한 DOM을 표시하고 구분하여 선택할 수 있는 그래픽을 제공한다. 이러한 그래픽은 이를 테면, 마우스 오버(mouse-over) 시에 해당 DOM을 하일라이트 처리하거나, 외곽선을 표시하는 등의 그래픽을 제공할 수 있다. 선택된 DOM에 대해서는 일시적 또는 다른 DOM이 선택되기까지 지속적으로 다른 것과 구분되는 그래픽 처리를 제공할 수도 있다.The frame 200, which enables a user to provide web data collection based on a graphic, 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 limited to, the target site display unit 210 may be the aforementioned i-frame. The web data collection system is based on a graphical user interface. The target site display unit 210 may recognize a target site for collecting web data as a converted path through a proxy server and appear on the screen. A proxy server and a proxy site using the same will be described in detail later. The target site display unit 210, which is an i-frame, simulates and renders a target site, displays a DOM selectable from the target site, and provides a graphic that can be classified and selected. Such a graphic may provide a graphic such as highlighting a corresponding DOM or displaying an outline when a mouse-over is performed, for example. For the selected DOM, it is also possible to provide graphical processing that is distinct from the others temporarily or continuously until another 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 sub-menus. The input event display unit 220 may display data collection rule events applicable to the DOM selected by the user. For example, input events such as a corresponding mouse click, drag, keyboard input, and touch may be indicated. In addition, it can include clicking on physical elements and entering physical text. It is possible to provide all events regardless of the selected DOM, but preferably only those applicable to the selected DOM can be displayed. In addition, it is possible to display the entire event menu, but enable selection by activating only applicable to the selected DOM, and inactivating other event menus so that they are not selected. When the user selects a specific event appearing on the target site display unit 210, this is generated as a rule that applies the event to the selected DOM, and this may be reflected as part of a scenario. For example, when DOM selection and event selection are performed, one event line may be added to the scenario. In this way, the user can select the DOM and intuitively select the event to be applied to it, and the actual code line for it is automatically generated, so even if the user does not have expertise in html or computing code for web scraping, the web data collection scenario Can be created.

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

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

타킷 사이트의 표시와 DOM의 선택Target site display and DOM selection

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

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

타킷 사이트에는 복수 개의 DOM이 포함될 수 있다. 이를테면, 텍스트나 이미지, 플래시 등의 형태로 제시되며 하이퍼 링크를 갖는 객체들, 쿼리를 입력할 수 있는 텍스트 입력창 등의 각각 개별 DOM들이 될 수 있다.The target site can contain multiple DOMs. For example, individual DOMs, such as objects that are presented in the form of text, image, or flash, have hyperlinks, and text input windows for inputting queries.

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

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

도 4에 도시된 바와 같이, i-frame(400)에서 그래픽 처리(410) 되는 텍스트 입력 창 DOM이 선택되는 경우, 메뉴 창인 입력 이벤트 표시부(420)서는 선택된 상기 DOM에 적용 가능한 복수 개의 이벤트 메뉴가 제공된다. 만약 사용자가 도시된 바와 같이 텍스트 입력 이벤트(440)을 선택하면, 해당 DOM에 대해 텍스트를 입력하겠다는 규칙이 생성되어 시나리오 창인 데이터 수집 규칙 표시부(430)에 시나리오 라인(450)이 생성된다. 시나리오 라인에는 해당 개별 이벤트를 삭제할 수 있는 편집 버튼(460)이 제공되어, 사용자가 시나리오 라인 생성을 되돌리기(undo) 할 수 있도록 한다. 뿐만 아니라 도시되지는 않았지만, 시나리오 이벤트들의 순서를 바꾸거나, 특정 이벤트를 복사하여 재생산 하는 등의 편집 버튼들도 제공될 수 있다.As shown in FIG. 4, when the text input window DOM to be graphic processed 410 is selected in the i-frame 400, the input event display unit 420, which is a menu window, displays a plurality of event menus applicable to the selected DOM. Is provided. If the user selects the text input event 440 as shown, a rule to input text for the DOM is generated, and a scenario line 450 is generated on the data collection rule display unit 430 which is a scenario window. An edit button 460 for deleting a corresponding individual event is provided in the scenario line, so that the user can undo the creation of the scenario line. In addition, although not shown, editing buttons such as changing the order of scenario events or copying and reproducing specific events may 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 illustrated in FIG. 5, in the scenario window 530, a user may additionally input specific text for a text input scenario. If the event selected by the user is text input, this is the process of subsequent input/setting of what text to put. For example, if the user inputs text to the DOM as "KBS 9 o'clock news", the user can input it in the corresponding input window 540. Then, the user selects the search icon DOM 510 in the i-frame 500. Then, events applicable to the selected DOM are displayed on the menu 520 window 520, and the user can select a specific event 550 called'element click'. Then, the scenario line 560 for the DOM is added to the scenario window 530 again. Through this process, the user can intuitively and easily compose/edit the scenario for web data scraping.

OS영역 물리적 요소 추가 설정OS area physical element additional setting

도 6, 7에서 도시되는 것과 같이, OS영역에서 물리적 입력으로 시나리오를 추가할 수 도 있다. 상기 도4, 5의 요소 클릭, 텍스트 입력등은 DOM을 관리하는 HTML5 기반의 특정 태그를 Javascript의 Selector 또는 XPath를 통해 자원권한을 획득한 후 이벤트를 강제로 주입하는 기능을 사용한 것이다. 이는 OS 영역에서 사용자가 입력하는 것이 아닌, OS 커널보다 상위 어플리케이션인 웹 브라우저에서 상기 이벤트를 실행시키는 것으로 상기 물리적 입력의 방식과 차이가 있다. 상기 일반적인 요소 클릭, 텍스트 입력등으로 이벤트를 실행시키는 방법은 최근 보안이 우수한 웹 서비스에서는 상기 방법의 이벤트 실행을 차단하고 있는 추세이다. 다만, 상기 물리적 요소 클릭, 텍스트 입력의 방법은 웹 브라우저의 입력이 아닌 OS 영역의 입력으로, 상기 웹 서비스에서는 차단할 수 없다. 물리적 입력으로 시나리오를 추가, 실행하는 방법은 도11에서 상세히 서술하도록 하겠다.As shown in FIGS. 6 and 7, it is also possible to add a scenario through a physical input in the OS area. The element click and text input of Figs. 4 and 5 use a function of forcibly injecting an event after acquiring resource rights through a selector or XPath of Javascript for a HTML5-based specific tag that manages the DOM. This is different from the physical input method in that the event is executed in a web browser that is an application higher than the OS kernel, not input by a user in the OS area. As for the method of executing an event by clicking on a general element or inputting text, web services with excellent security have recently blocked the execution of the event. However, the method of clicking a physical element and inputting text is an input of an OS area, not an input of a web browser, and cannot be blocked in the web service. A method of adding and executing a scenario through physical input will be described in detail in FIG. 11.

도6에서 도시한 바와 같이, i-frame(600)에서 그래픽 처리(610) 되는 텍스트 입력 창 DOM이 물리적으로 선택되는 경우, 메뉴 창인 입력 이벤트 표시부(620)에서는 선택된 상기 DOM에 적용 가능한 복수 개의 이벤트 메뉴가 제공된다. 사용자가 도시된 바와 같이 물리적 텍스트 입력 이벤트(640)을 선택하면, 해당 DOM에 대해 텍스트를 입력하겠다는 규칙이 생성되어 시나리오 창인 데이터 수집 규칙 표시부(630)에 시나리오 라인(650)이 생성된다. 시나리오 라인에는 해당 개별 이벤트를 삭제할 수 있는 편집 버튼(660)이 제공되어, 사용자가 시나리오 라인 생성을 되돌리기(undo) 할 수 있도록 한다. 뿐만 아니라 도시되지는 않았지만, 시나리오 이벤트들의 순서를 바꾸거나, 특정 이벤트를 복사하여 재생산 하는 등의 편집 버튼들도 제공될 수 있다.As shown in Fig. 6, when the text input window DOM that is graphic processed 610 in the i-frame 600 is physically selected, the input event display unit 620, which is a menu window, displays a plurality of events applicable to the selected DOM. A menu is provided. When the user selects the physical text input event 640 as shown, a rule to input text for the corresponding DOM is generated, and a scenario line 650 is generated on the data collection rule display unit 630 which is a scenario window. An edit button 660 for deleting a corresponding individual event is provided in the scenario line, so that the user can undo the creation of the scenario line. In addition, although not shown, editing buttons such as changing the order of scenario events or copying and reproducing specific events may be provided.

도 7에서 도시되는 바와 같이, 시나리오 창(730)에서 텍스트 입력 시나리오에 대해 사용자가 특정 텍스트를 추가 입력할 수도 있다. 사용자가 선택한 이벤트가 텍스트 입력인 경우, 어떤 텍스트를 넣을지 후속 입력/설정하는 과정이다. 예시적으로 사용자가 DOM에 텍스트 입력할 내용이 "KBS 9시 뉴스"라고 하면 해당 입력창(740)에 사용자가 이를 입력하면 된다. 그리고 나서 사용자는 i-frame(700)에 있는 검색 아이콘 DOM(710)을 선택한다. 그러면 이번에 선택된 DOM에 적용 가능한 이벤트들이 메뉴(720) 창(720)에 표시되고, 사용자는 '물리적 요소 클릭'이라는 특정 이벤트(750)를 선택할 수 있다. 그러면 다시 시나리오 창(730)에 해당 DOM에 대한 시나리오 라인(760)이 추가된다. 이러한 과정을 통해 사용자는 직관적이고 쉽게 웹 데이터 스크랩핑을 위한 시나리오를 구성/편집할 수 있다.As illustrated in FIG. 7, in the scenario window 730, a user may additionally input specific text for a text input scenario. If the event selected by the user is text input, this is a process of subsequent input/setting of what text to put. For example, if the user inputs text into the DOM as "KBS 9 o'clock news", the user can input it into the corresponding input window 740. Then, the user selects the search icon DOM 710 in the i-frame 700. Then, events applicable to the selected DOM are displayed on the menu 720 window 720, and the user can select a specific event 750 called'clicking a physical element'. Then, a scenario line 760 for the DOM is added to the scenario window 730 again. Through this process, the user can intuitively and easily compose/edit the scenario for web data scraping.

W3C의 동일 출처 정책의 극복과 타킷 사이트 렌더링Overcoming W3C's same-origin policy and rendering target sites

일실시예에 따르면 시스템은 타킷 사이트 자체를 i-frame 내에서 브라우징 하지 않고, 그 타킷 사이트를 다운받아 프록시 사이트로 설정하고, 이 프록시 사이트를 i-frame에서 렌더링한다. 이러한 과정에서 사용자는 렌더링되는 페이지가 실제 타킷 페이지인지 모사 페이지인지 구분하지 못할 수 있다. 이러한 의미에서 이러한 처리를 i-frame 내에서의 타킷 사이트 모사라고 할 수 있다.According to an 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 an actual target page or a copy page. In this sense, this processing can be referred to as a target site simulation within an i-frame.

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

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

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

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

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

HTML 컨버터(828)는 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는 일실시예에 따른 서비스를 제공하는 웹 데이터 수집 시스템의 호스트일 수 있다.The HTML converter 828 may convert a resource path on an HTML resource into a proxy path. It describes in detail the conversion of the HTML resource path of the target page through the proxy server. By way of example, but not limitation, the system may receive the URL of the target site page, set it in the proxy server for the corresponding host, and proceed with key generation. This key is an identifier that identifies individual pages newly set in the proxy server corresponding to the corresponding URL, and when a key is attached to the proxy site path, a proxy URL dedicated to the target site can be generated. For example, when'http://www.A.com' is a target site, a key for'http://www.A.com' may be generated. For example, if the key is "abc", then "http://proxy.B.com/abc" may be a dedicated proxy URL for the target site "http://www.A.com". In this case, B may be a host of a web data collection system that provides a service according to an embodiment.

한편, 웹 데이터의 프록시 경로 수정에 대해 설명한다. 제어 서버(820)의 프록시 동적 설정부(824)가 타깃 사이트로부터 HTML 리소스를 다운받기 위하여 프록시 서버(830)와 프록시 동적 설정(835)을 할 수 있다. HTML 다운로더(820)가 타깃 사이트(860)에 접근(850)하여 타깃 사이트(860)로부터 HTML 리소스를 다운로드(840) 받을 수 있다. 이 다운로드 받은 HTML 리소스를 이용하여 웹 데이터 수집 시스템에서 타깃 사이트를 제어할 수 있다. HTML 파서(830)가 다운로드된 HTML 리소스의 경로를 파싱하여, 다운로드된 HTML 리소스를 웹 데이터 수집 시스템에 원본 그대로 인식시키지 않고, HTML 리소스 상의 리소스 경로를 프록시 서버(830)를 통해 프록시 경로로 변환하여 변환된 경로를 통해 타깃 사이트를 인식하여 웹 데이터 수집 시스템의 화면에 출력되도록 한다. HTML 리소스의 리소스 경로는 HTML 컨버터(828)를 통해 프록시 경로로 변환될 수 있다. 프록시 경로로 변환된 HTML 리소스 경로를 웹 데이터 수집 시스템으로 전송(810)할 수 있다. 웹 데이터 수집 시스템은 프록시 경로로 변환된 HTML 리소스 경로를 통해 타깃 사이트를 인식하여 웹 데이터 수집 시스템 프레임(800)의 타깃 사이트 표시부(805)에 타깃 사이트 화면을 표시하고, 사용자가 웹 데이터 수집 시스템에 접근하도록 할 수 있다.Meanwhile, correction of the proxy path of web data will be described. The proxy dynamic setting unit 824 of the control server 820 may perform a proxy dynamic setting 835 with the proxy server 830 in order to download HTML resources from a target site. The HTML downloader 820 may access the target site 860 850 and download 840 HTML resources from the target site 860. This downloaded HTML resource can be used to control the target site in the web data collection system. The HTML parser 830 parses the path of the downloaded HTML resource, does not recognize the downloaded HTML resource in the web data collection system as it is, and converts the resource path on the HTML resource into a proxy path through the proxy server 830 The target site is recognized through the converted path and displayed on the screen of the web data collection system. The resource path of the HTML resource may be converted into a proxy path through the HTML converter 828. The HTML resource path converted to the proxy path may be transmitted to the web data collection system (810). 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 805 of the web data collection system frame 800, and allows the user to enter the web data collection system. You can make it accessible.

PROXY 경로의 중복 설정을 방지한 자원 절감Resource saving by preventing duplicate setting of PROXY path

한편, 일실시예에 따르면 한 번 생성된 프록시 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 embodiment, the proxy URL generated once may be reused. If different users create each proxy URL for the same target URL, this may be counter to the efficient use of resources. Therefore, if a key is assigned to a proxy URL that has been created once, it is managed separately to prevent duplicate proxy settings for the same target URL. For example, if the first user sets'http://www.C.com' as the target site and the key is set to "def" for this, this key is managed, and then the second user is' When'http://www.C.com' is set as the target site, the managed key is checked so that the target site of the second user can recycle the preset proxy URL. Therefore, server resources can be greatly reduced through such consideration.

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

도 9은 일실시예에 따른 웹 데이터 수집 시스템의 동작 흐름을 도시한다. 웹 데이터 수집 시스템은 타깃 사이트 경로 수정 단계(900), 사용자의 웹 데이터 수집 시스템 제어 단계(920) 및 데이터 수집 단계(940)를 포함한다. 우선, 타깃 사이트 경로 수정 단계(900)의 단계(903)에서 사용자가 웹 데이터 수집 시스템을 통해 데이터를 수집하고자 하는 타깃 사이트에 접근할 수 있고, 타깃 사이트의 URL을 지정할 수 있다. 그러면 단계(906)에서 웹 데이터 수집 시스템의 탐색 영역의 제어 서버가 HTML 다운로더를 통해 사용자가 지정한 타깃 사이트의 HTML 리소스를 다운로드 할 수 있다. 그러면, 단계(909)에서 제어 서버가 프록시 동적 설정 후 다운로드된 HTML 리소스의 경로를 HMTL 파서 및 HTML 컨버터를 이용하여 프록시 경로로 변환할 수 있다.9 is a flowchart illustrating an operation of a web data collection system according to an embodiment. The web data collection system includes a target site path correction step 900, a user's web data collection system control step 920, and a data collection step 940. First, in step 903 of the target site path correction step 900, a user may access a target site for which data is to be collected through a web data collection system, and a URL of the target site may be designated. Then, in step 906, the control server of the search area of the web data collection system may download the HTML resource of the target site designated by the user through the HTML downloader. Then, in step 909, after the control server dynamically sets the proxy, the downloaded HTML resource path may be converted into a proxy path using an HMTL parser and an HTML converter.

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

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

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

데이터 수집 봇(bot)의 동작Data collection bot behavior

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

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

OS 영역의 물리적 입력을 통한 이벤트 발생Event occurrence through physical input of OS area

도11은 OS영역의 모니터, 키보드등의 물리적 입력이 웹 브라우저로 이벤트 실행되는 과정을 도시화한 도면이다. 우선 웹 브라우저 상 물리적 입력이 발생되면 중계 모듈(1130)로 이벤트 발생 좌표 및 이벤트 종류가 전송된다(1160). 상기 중계 모듈은 OS와 상위 어플리케이션인 웹 브라우저가 통신으로 서로 제어하는 기능을 한다. 중계 모듈에서 응용프로그램(1140)으로 전송되면 응용프로그램 내의 표준 입출력 이벤트 발생 모듈(1150)에 시스템 콜을 활용하여 상기 물리적 입력에 따른 이벤트 발생을 요청한다. 그 후 상기 표준 입출력 이벤트 발생 모듈에 전송된 상기 이벤트 발생 좌표로 이벤트를 발생시킨다(1170). OS영역에서 물리적 입력 이벤트가 실행되면 이벤트 제어 모듈(1120)에서 상기 물리적 입력 이벤트의 타입을 선별하고 이벤트에 대응되는 DOM이 제어 가능한지 확인하는 단계를 더 포함할 수 있다.11 is a diagram showing a process in which a physical input such as a monitor or a keyboard in an OS area is executed by a web browser. First, when a physical input is generated on the web browser, the event occurrence coordinates and the event type are transmitted to the relay module 1130 (1160). The relay module functions to control each other through communication between the OS and a web browser, which is an upper application. When transmitted from the relay module to the application program 1140, the standard input/output event generating module 1150 in the application program requests the occurrence of an event according to the physical input by using a system call. Thereafter, an event is generated based on the event occurrence coordinates transmitted to the standard input/output event generation module (1170). When a physical input event is executed in the OS area, the event control module 1120 may further include selecting a type of the physical input event and checking whether a DOM corresponding to the event is controllable.

상기 중계 모듈을 통한 이벤트 발생 과정은 웹 브라우저를 키고 OS레벨에서만 입력되던 공지된 매크로 프로그램과 유사하나, 공지된 매크로 프로그램은 특정 좌표를 기반으로 동작하므로 저장된 좌표를 이용하여야 한다. 반면, 상기 이벤트 발생 과정은 중계 모듈을 통해 OS와 웹 브라우저를 제어하여 브라우저 상 태그되는 DOM의 좌표값을 정확히 인지하고 해당 좌표에 물리적 이벤트 값을 강제로 주입할 수 있다는 점에서 차이가 있다. 또한 고정된 좌표를 이용하는 방법이 아니라 시나리오에 따라 매번 다른 동적좌표를 사용한다는 점에서 다양한 시나리오에 다양한 이벤트 값을 입력할 수 있다.The process of generating an event through the relay module is similar to the known macro program that was input only at the OS level by turning on the web browser, but the known macro program operates based on specific coordinates, so the stored coordinates must be used. On the other hand, the event generation process is different in that the OS and the web browser are controlled through the relay module in that the coordinate values of the DOM tagged on the browser can be accurately recognized and a physical event value can be forcibly injected into the corresponding coordinates. In addition, it is not a method of using fixed coordinates, but because different dynamic coordinates are used each time depending on the scenario, it is possible to input various event values in various scenarios.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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 a hardware component and a software component. For example, the devices and components described in the embodiments include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable array (FPA), It can be implemented using one or more general purpose computers or special purpose computers, such as 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 executed on the operating system. In addition, the processing device may access, store, manipulate, process, and generate data in response to the execution of software. For the convenience of understanding, although it is sometimes described that one processing device is used, one of ordinary skill in the art, the processing device is a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it may include. For example, the processing device may include a plurality of processors or one processor and one controller. In addition, other processing configurations are 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 these, configuring the processing unit to behave as desired or processed independently or collectively. You can command the device. Software and/or data may be interpreted by a processing device or to provide instructions or data to a processing device, of any type of machine, component, physical device, virtual equipment, computer storage medium or device. , Or may be permanently or temporarily embodyed in a transmitted signal wave. The software may be distributed over networked computer systems and stored or executed in a distributed manner. 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 the embodiment may be implemented in the form of program instructions 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 recorded on the medium may be specially designed and configured for the embodiment, or may be known and usable to those skilled in 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. -A hardware device specially configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of the program instructions include not only machine language codes such as those produced by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operation of the embodiment, and vice versa.

실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described by the limited drawings, various modifications and variations are possible from the above description to those of ordinary skill in the art. For example, the described techniques are performed in a different order from the described method, and/or components such as a system, structure, device, circuit, etc. described are combined or combined in a form different from the described method, or other components Alternatively, even if substituted or substituted by an equivalent, an appropriate result can be achieved.

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

Claims (5)

웹 데이터 스크랩핑 장치의 동작 방법에 있어서, 상기 장치가:
사용자로부터 지정되는 타킷 사이트를 모사하여 타깃 사이트 표시부에 렌더링하는 단계;
상기 렌더링되는 결과에 포함되는 적어도 하나의 DOM(Document Object Model) 중 사용자가 선택하는 제1 DOM에 대해 다른 객체와 구분되도록 그래픽 처리를 수행하는 단계; 및
상기 제1 DOM에 적용될 수 있는 적어도 하나의 OS영역 물리적 입력 이벤트를 상기 OS영역 보다 상위 어플리케이션인 웹 브라우저에 전달하는 중계 모듈을 통해 메뉴 형태로 입력 이벤트 표시부에 디스플레이 하는 단계
를 포함하고,
상기 디스플레이 하는 단계는,
상기 웹 브라우저에 물리적 입력이 발생되는 경우에 응답하여, 상기 중계 모듈로 이벤트 발생 좌표를 전송하는 단계;
상기 중계 모듈로부터 상기 OS 영역 내의 응용프로그램으로 상기 이벤트 발생 좌표가 전송되면, 상기 응용프로그램 내의 표준 입출력 이벤트 발생 모듈에 시스템 콜(System call)을 활용하여 상기 물리적 입력에 따른 이벤트 발생을 요청하는 단계; 및
상기 표준 입출력 이벤트 발생 모듈에 전송된 상기 이벤트 발생 좌표로 물리적 입력 이벤트를 발생시키는 단계
를 포함하는
방법.
In the method of operating a web data scraping device, the device:
Simulating a target site designated by a user and rendering it on a target site display unit;
Performing graphic processing on a first DOM selected by a user among at least one Document Object Model (DOM) included in the rendered result to be distinguished from other objects; And
Displaying on the input event display unit in the form of a menu through a relay module that transmits at least one OS area physical input event applicable to the first DOM to a web browser that is an application higher than the OS area
Including,
The displaying step,
Transmitting coordinates of event occurrence to the relay module in response to a physical input being generated in the web browser;
Requesting the occurrence of an event according to the physical input by using a system call to a standard input/output event generation module in the application program when the event occurrence coordinates are transmitted from the relay module to an application program in the OS area; And
Generating a physical input event using the event occurrence coordinates transmitted to the standard input/output event generation module
Including
Way.
제1항에 있어서,
상기 디스플레이 되는 적어도 하나의 OS영역 물리적 입력 이벤트 중, 사용자로부터 선택되는 제1 물리적 이벤트를 제1 DOM에 적용하는 규칙에 대응하는 제1 시나리오 라인을 데이터 수집 규칙 표시부에 추가하여 시나리오에 반영하는 단계
를 더 포함하는 방법.
The method of claim 1,
Adding a first scenario line corresponding to a rule for applying a first physical event selected by a user to a first DOM among the displayed at least one physical input event of the OS area to the data collection rule display unit and reflecting it to the scenario
How to further include.
제2항에 있어서,
작성된 상기 시나리오 중 OS 영역 물리적 입력 이벤트를 실행하는 경우, 상기 중계 모듈을 통해 OS 영역보다 상위 어플리케이션에서 물리적 입력 이벤트를 발생하는 시나리오 실행 단계
를 더 포함하는 방법.
The method of claim 2,
In the case of executing a physical input event in the OS area among the created scenarios, a scenario execution step of generating a physical input event in an application higher than the OS area through the relay module
How to further include.
제3항에 있어서,
상기 시나리오 실행 단계는,
상기 OS 영역 물리적 입력 이벤트의 DOM 좌표에 대응되는 DOM이 상기 중계 모듈을 통해 제어 가능한 객체인지 여부를 판별하는 단계
를 포함하는 방법.
The method of claim 3,
The scenario execution step,
Determining whether the DOM corresponding to the DOM coordinates of the OS area physical input event is an object controllable through the relay module
How to include.
제4항에 있어서,
상기 상위 어플리케이션은 웹 브라우저나 빅데이터 수집 프로그램을 포함하는 방법.
The method of claim 4,
The upper application method includes a web browser or a big data collection program.
KR1020180168480A 2018-12-24 2018-12-24 Apparatus and method for scrapping web data KR102191458B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180168480A KR102191458B1 (en) 2018-12-24 2018-12-24 Apparatus and method for scrapping web data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180168480A KR102191458B1 (en) 2018-12-24 2018-12-24 Apparatus and method for scrapping web data

Publications (2)

Publication Number Publication Date
KR20200079024A KR20200079024A (en) 2020-07-02
KR102191458B1 true KR102191458B1 (en) 2020-12-15

Family

ID=71599752

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180168480A KR102191458B1 (en) 2018-12-24 2018-12-24 Apparatus and method for scrapping web data

Country Status (1)

Country Link
KR (1) KR102191458B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102407246B1 (en) * 2021-06-16 2022-06-10 주식회사 두들린 Method for facilitating collection of data for job search or recruitment and apparatus using the same

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7647351B2 (en) 2006-09-14 2010-01-12 Stragent, Llc Web scrape template generation
KR101125083B1 (en) 2009-09-03 2012-03-21 황찬호 System for scrap of web contents and method thereof
KR101913780B1 (en) * 2017-01-04 2018-11-02 (주)해나소프트 Apparatus and method for scrapping web data

Also Published As

Publication number Publication date
KR20200079024A (en) 2020-07-02

Similar Documents

Publication Publication Date Title
KR101913780B1 (en) Apparatus and method for scrapping web data
CN110235122B (en) System and method for converting web content into reusable templates and components
US8312383B2 (en) Mashup application processing system
US20230036518A1 (en) System and method for smart interaction between website components
US20190303269A1 (en) Methods and systems for testing visual aspects of a web page
JP7420911B2 (en) Systems and methods for smart interactions between website components
CN113391808A (en) Page configuration method and device and electronic equipment
US20120216132A1 (en) Embedding User Selected Content In A Web Browser Display
KR102191458B1 (en) Apparatus and method for scrapping web data
KR20150099318A (en) A recording media recognized by computer for providing an application developing environment program
KR101987183B1 (en) Apparatus, method and server for app development supporting front-end development using app development utility
KR20150097190A (en) A system for providing an application developing environment
Strack Concrete5 Cookbook
KR20150097223A (en) A recording media recognized by computer for providing an application developing environment program
KR20150097243A (en) A recording media specialized for an application developing environment program recording recognized by computer
KR20150097229A (en) A recording media recognized by computer for providing an application developing environment program
KR20150097221A (en) A recording media recognized by computer for providing an application developing environment program
KR20150097224A (en) A recording media recognized by computer for providing an application developing environment program
KR20150097218A (en) A recording media recognized by computer for providing an application developing environment program
KR20150097231A (en) A recording media recognized by computer for providing an application developing environment program
KR20150097236A (en) A recording media specialized for an application developing environment program recording recognized by computer
KR20150098762A (en) A recording media recognized by computer for providing an application developing environment program
KR20150098837A (en) A recording media recognized by computer for providing an application developing environment program
KR20150098768A (en) A recording media recognized by computer for providing an application developing environment program
KR20150098764A (en) A recording media recognized by computer for providing an application developing environment program

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