KR20180080535A - Apparatus and method for scrapping web data - Google Patents
Apparatus and method for scrapping web data Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G06F17/30864—
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
-
- G06F17/30887—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H04L67/28—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning 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
Description
웹 데이터 스크랩핑 장치 및 그 동작 방법에 연관되며, 보다 특정하게는 전문적인 지식이 없는 유저가 쉽게 활용할 수 있는 웹 데이터 스크랩핑 서비스에 연관된다.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.
일측에 따르면, 웹 데이터 스크랩핑 장치의 동작 방법이 제공된다. 방법은: 사용자로부터 지정되는 타킷 사이트를 모사하여 타깃 사이트 표시부에 렌더링하는 단계; 상기 렌더링되는 결과에 포함되는 적어도 하나의 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
타깃 사이트 관리 유닛(110)은 웹 데이터 수집 영역(140)의 타깃 사이트 설정 유닛(190)으로부터 요청 신호(170)로서 타깃 사이트에 대한 정보를 제공받아 이를 저장하고, 필요 시에 타깃 사이트에 대한 정보를 제공할 수 있다. 그리고 데이터 수집 규칙 관리 유닛(120)은 웹 데이터 수집 영역(140)의 데이터 수집 규칙 생성 유닛(180)으로부터 요청 신호(170)로서 데이터 수집 규칙에 대한 정보를 제공받아 이를 저장하고, 필요 시에 데이터 수집 규칙에 대한 정보를 제공할 수 있다. 제어 서버(130)는 타깃 사이트 관리 유닛(110)으로부터 타깃 사이트에 대한 정보를 제공 받아, 타깃 사이트로부터 데이터를 다운받을 수 있도록 데이터 수집 절차를 제어할 수 있다. 제어서버(130)에 대해서는 도 2에서 상세히 설명하도록 한다.The target
데이터 수집 로봇(150)은 타깃 사이트 관리 유닛(110)으로부터 타깃 사이트에 대한 정보를 제공받고, 데이터 수집 규칙 관리 유닛(120)으로부터 데이터 수집 규칙에 대한 정보를 제공받아 설정된 시간 간격마다 주기적 및/또는 반복적으로 데이터 수집 규칙에 따라 타깃 사이트로부터 타깃 데이터를 수집할 수 있다.The
데이터 수집 규칙 생성 유닛(180)은 사용자가 제공되는 웹 데이터 수집 시스템의 유저 인터페이스를 이용하여 마우스 클릭, 키보드 입력 등을 통해 데이터 수집 규칙을 생성할 수 있다. 데이터 수집 규칙 생성 유닛(180)은 그래픽 유저 인터페이스를 통해 사용자가 선택하는 DOM에 대해 사용자가 지정하는 이벤트를 수신한다. 이러한 이벤트는 하나일 수도 있지만, 바람직하게는 복수 개의 이벤트가 일련의 시흐름을 갖고 시나리오로서 생성될 수 있다. 사용자는 전용 웹 및/또는 앱을 토해 타킷 사이트를 설정할 수도 있는데, 이 경우 타깃 사이트 설정 유닛(190)이 이러한 설정을 처리한다. 유닛(190)은 사용자가 제공되는 웹 데이터 수집 시스템의 유저 인터페이스를 이용하여, 웹 데이터를 수집하고자 하는 타깃 사이트를 설정할 수 있다.The data collection
도 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
그래픽 기반으로 사용자가 웹 데이터 수집을 제공할 수 있도록 하는 상기 프레임(200)은 타깃 사이트 표시부(210), 입력 이벤트 표시부(220) 및 데이터 수집 규칙 표시부(230)를 포함한다. 예시적으로 그러나 한정되지 않게, 타킷 사이트 표시부(210)는 앞서 언급한 i-frame일 수 있다. 웹 데이터 수집 시스템은 그래픽 유저 인터페이스를 기반으로 하고 있다. 타깃 사이트 표시부(210)에는 웹 데이터를 수집하고자 하는 타깃 사이트가 프록시 서버를 통해 변환된 경로로 인식되어 화면에 나타날 수 있다. 프록시 서버 및 이를 이용하는 프록시 사이트에 대해서는 상세히 후술한다. i-frame인 타깃 사이트 표시부(210)는 타킷 사이트를 모사하여 렌더링하면서, 그 타킷 사이트에서 선택 가능한 DOM을 표시하고 구분하여 선택할 수 있는 그래픽을 제공한다. 이러한 그래픽은 이를 테면, 마우스 오버(mouse-over) 시에 해당 DOM을 하일라이트 처리하거나, 외곽선을 표시하는 등의 그래픽을 제공할 수 있다. 선택된 DOM에 대해서는 일시적 또는 다른 DOM이 선택되기까지 지속적으로 다른 것과 구분되는 그래픽 처리를 제공할 수도 있다.The
입력 이벤트 표시부(220)는 복수 개의 서브 메뉴를 포함하는 메뉴 창일 수 있다. 입력 이벤트 표시부(220)는 사용자가 선택한 DOM에 적용할 수 있는 데이터 수집 규칙 이벤트를 표시해줄 수 있다. 이를테면, 해당하는 마우스 클릭, 드래그, 키보드 입력, 터치 등 입력 이벤트들을 나타낼 수 있다. 선택된 DOM과 무관하게 모든 이벤트들을 제공할 수도 있지만, 바람직하게는 선택된 그 DOM에 적용이 가능한 것만 표시할 수 있다. 또한, 전체 이벤트 메뉴를 표시는 하되, 선택된 DOM에 적용할 수 있는 것만 활성화하여 선택이 가능하도록 하고, 다른 이벤트 메뉴들은 선택되지 않게 비활성화 처리하는 것도 가능하다. 사용자가 타깃 사이트 표시부(210)에 나타나는 특정 이벤트를 선택하면, 이는 선택된 DOM에 그 이벤트를 적용하는 규칙으로 생성되고, 이것은 시나리오의 일부로 반영될 수 있다. 예시적으로, DOM 선택 및 그에 대한 이벤트 선택이 수행되면 시나리오에 하나의 이벤트 라인이 추가될 수 있다. 사용자는 이러한 식으로 DOM을 선택하고 그에 적용할 이벤트를 직관적으로 선택할 수 있고, 그에 대한 실제 코드라인은 자동으로 생성되므로 사용자는 html이나 웹 스크랩핑을 위한 컴퓨팅 코드에 전문 지식이 없더라도 웹 데이터 수집 시나리오를 생성할 수 있다.The input
상기한 바와 같이, 데이터 수집 규칙 표시부(230)는 특정 DOM에 대해 특정 이벤트를 적용하는 개개의 처리의 흐름을 시계열적으로 표시하는 시나리오의 표시부일 수 있다. 사용자가 i-frame에 렌더링되는 타킷 사이트를 보고, 그에 포함되는 DOM을 선택한 뒤 메뉴에서 이벤트를 선택하면 시나리오에 개별 규칙으로 하나씩 추가되는 것이다. 데이터 수집 규칙 표시부(230)에서 표시되는 시나리오는 라인 별 및/또는 관련 라인 그룹 별로 삭제, 추가, 편집, 순서 변경 등 후속 편집이 가능하다. 이러한 편집의 종류는 예시된 것들에 한정되지 않으며, 웹 데이터 스크랩핑을 하는 과정에서의 데이터 수집 효율을 높이기 위해 및/또는 일부 오류를 개선하거나 사용자 니즈가 바뀜에 따라 필요한 것이면 다른 것들도 포함되는 것으로 이해되어야 한다. 실시예들에 따라 제공되는 시나리오 자체의 편집 가능성은 비개발자가 소스 코드를 이해하지 못하더라도 직관적으로 자신이 원하는 웹 데이터 수집 규칙을 바꿀 수 있는 유연성을 제공하므로 큰 이점을 갖는다.As described above, the data collection
타킷 사이트의 렌더링, 선택된 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
타킷 사이트에는 복수 개의 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
선택된 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-
시나리오 라인 내의 추가 설정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
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
HTML 파서(parser)(626)는 HTML 리소스의 경로를 파싱(parsing)하여, 다운로드된 HTML 리소스를 웹 데이터 수집 시스템에 원본 그대로 인식시키지 않고, HTML 리소스 상의 리소스 경로를 프록시 서버(630)를 통해 프록시 경로로 변환하여 변환된 경로를 통해 타깃 사이트를 인식하여 화면에 출력되도록 한다. 이를 통해, 웹 데이터 수집 시스템의 출력 화면에 변환된 경로를 통해 인식된 타깃 사이트가 출력된다. 따라서 사용자가 웹 데이터 수집 시스템 내에서 타깃 사이트를 동일하게 보면서 DOM을 선택하고 제어할 수 있는 상태가 제공된다.The
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는 일실시예에 따른 서비스를 제공하는 웹 데이터 수집 시스템의 호스트일 수 있다.
한편, 웹 데이터의 프록시 경로 수정에 대해 설명한다. 제어 서버(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
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
그리고 웹 데이터 수집 시스템 제어 단계(720)의 단계(726)에서 변환된 경로로 인식되는 타깃 사이트를 웹 데이터 수집 시스템 프레임의 타깃 사이트 표시부에 출력하여 사용자가 제어하도록 할 수 있다. 그러면 단계(724)에서 웹 데이터 수집 시스템 프레임은 타깃 사이트 표시부, 입력 이벤트 표시부 및 데이터 수집 규칙 표시부를 통해 사용자가 웹 데이터 수집 규칙을 생성할 수 있는 DOM 이벤트 제어 환경이 제공된다. 그리고 단계(722)에서 사용자는 제공된 DOM 제어 환경에서 유저 인터페이스를 이용하여 DOM을 제어하고 입력 이벤트를 선택하여 데이터 수집 규칙을 생성할 수 있다.Then, in
다음으로, 데이터 수집 단계(740)의 단계(742)에서 웹 데이터 수집 시스템의 수집 영역은 사용자가 생성한 데이터 수집 규칙에 대해 데이터 수집 규칙 데이터 베이스를 생성한다. 그리고 단계(746)에서 사용자에 의해 생성된 데이터 수집 규칙에 따라 주기적, 반복적으로 데이터를 탐색할 수 있다. 이러한 과정을 거치고 단계(748)에서는 탐색된 데이터에 대한 결과 페이지의 HTML 리소스를 다운로드 받을 수 있다. 그러면 단계(750)에서 다운로드 받은 HTML 리소스에 대해 이미지, css 등의 리소스 들의 각 파일 형태에 따라 HTML 리소스의 경로를 변환할 수 있다.Next, in
그리고, 웹 데이터 수집 시스템 제어 단계(720)의 단계(728)에서 변환된 경로로 결과 페이지를 재현하여 웹 데이터 수집 시스템 프레임에 출력하여 사용자에게 데이터 수집 결과를 제공할 수 있다.Then, in
데이터 수집 봇(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
사용자 단말(850)로부터 데이터 출력 요청(840)을 받으면, 그동안 수집되어 데이터 저장소(820)에 저장된 웹 데이터를 즉각 불러와 사용자 단말(850)로 전송(830)할 수 있다.Upon receipt of the
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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 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 >
상기 제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 >
상기 타깃 사이트를 제어하기 위해 필요한 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 >
상기 프록시 설정 단계는, 상기 타킷 사이트의 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.
상기 타킷 사이트에 상기 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.
상기 렌더링되는 결과에 포함되는 적어도 하나의 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:
상기 데이터 수집 규칙 관리 유닛은 상기 제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.
상기 데이터 수집 규칙 관리 유닛은 상기 제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.
상기 타깃 사이트를 제어하기 위해 필요한 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 >
상기 타깃 사이트로부터 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 >
상기 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.
상기 타킷 사이트에 상기 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.
상기 디스플레이 되는 적어도 하나의 사용자 입력 이벤트 중, 사용자로부터 선택되는 제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.
상기 타깃 사이트를 제어하기 위해 필요한 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:
상기 프록시 설정 단계는, 상기 타킷 사이트의 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.
상기 타킷 사이트의 상기 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.
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)
| 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)
| 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)
| 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 |
-
2017
- 2017-01-04 KR KR1020170001345A patent/KR101913780B1/en active Active
Patent Citations (2)
| 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)
| 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 |