KR20240055224A - Information scraping method and system using hybrid scraping and computer program for the same - Google Patents

Information scraping method and system using hybrid scraping and computer program for the same Download PDF

Info

Publication number
KR20240055224A
KR20240055224A KR1020220135156A KR20220135156A KR20240055224A KR 20240055224 A KR20240055224 A KR 20240055224A KR 1020220135156 A KR1020220135156 A KR 1020220135156A KR 20220135156 A KR20220135156 A KR 20220135156A KR 20240055224 A KR20240055224 A KR 20240055224A
Authority
KR
South Korea
Prior art keywords
information
scraping
data
web browser
module
Prior art date
Application number
KR1020220135156A
Other languages
Korean (ko)
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 KR1020220135156A priority Critical patent/KR20240055224A/en
Publication of KR20240055224A publication Critical patent/KR20240055224A/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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

정보 스크래핑(scraping) 방법은, 데이터 스크래핑 모듈이, 정보 제공 서버에 연결된 제1 통신 세션을 통하여 상기 정보 제공 서버에 정보 스크래핑을 요청하는 단계; 상기 데이터 스크래핑 모듈이, 상기 정보 제공 서버로부터 수신된 응답에 기초하여, 정보 스크래핑을 위해 웹 브라우저(web browser) 정보의 송신 또는 상기 웹 브라우저에 의한 정보 수신이 필요한 것으로 결정하는 단계; 상기 데이터 스크래핑 모듈이, 상기 제1 통신 세션에 상응하는 세션 정보를, 웹 브라우저를 실행 가능한 브라우저 스크래핑 모듈에 전달하는 단계; 및 상기 데이터 스크래핑 모듈이, 상기 웹 브라우저가 상기 세션 정보를 이용하여 상기 정보 제공 서버로부터 스크래핑한 정보 속성 값을 상기 브라우저 스크래핑 모듈로부터 수신하는 단계를 포함할 수 있다. 상기 방법에 의하면 애플리케이션 프로그래밍 인터페이스(Application Programming Interface; API) 등에 기반한 데이터 스크래핑과 웹 브라우저에 의한 스크래핑을 하이브리드(hybrid) 방식으로 이용함으로써, 전체 통신 구간 중 일부에만 브라우저를 사용하여 정보 수집 및 자동화의 성능과 안정성을 동시에 확보할 수 있다. The information scraping method includes the steps of a data scraping module requesting information scraping from the information providing server through a first communication session connected to the information providing server; determining, by the data scraping module, that transmission of web browser information or reception of information by the web browser is necessary for information scraping, based on a response received from the information provision server; transmitting, by the data scraping module, session information corresponding to the first communication session to a browser scraping module executable in a web browser; And the data scraping module may include receiving, from the browser scraping module, an information attribute value scraped by the web browser from the information provision server using the session information. According to the above method, data scraping based on an application programming interface (API) and scraping by a web browser are used in a hybrid method, thereby improving the performance of information collection and automation by using the browser only for a portion of the entire communication section. and stability can be secured at the same time.

Description

하이브리드 스크래핑을 이용한 정보 스크래핑 방법과 시스템 및 이를 위한 컴퓨터 프로그램{INFORMATION SCRAPING METHOD AND SYSTEM USING HYBRID SCRAPING AND COMPUTER PROGRAM FOR THE SAME}Information scraping method and system using hybrid scraping and computer program therefor {INFORMATION SCRAPING METHOD AND SYSTEM USING HYBRID SCRAPING AND COMPUTER PROGRAM FOR THE SAME}

실시예들은 정보 스크래핑(scraping) 방법 및 시스템, 컴퓨팅 장치 및 이를 위한 컴퓨터 프로그램에 대한 것이다. 보다 상세하게는, 실시예들은 전체 통신 구간 중 일부에만 웹 브라우저(web browser)를 사용함으로써 웹 브라우저에 의한 스크래핑과 애플리케이션 프로그래밍 인터페이스(Application Programming Interface; API) 등에 기반한 데이터 스크래핑을 하이브리드(hybrid) 방식으로 이용하여 정보 수집을 자동화하는 기술에 대한 것이다. Embodiments relate to an information scraping method and system, a computing device, and a computer program therefor. More specifically, embodiments use a web browser only for a portion of the entire communication section, so that scraping by a web browser and data scraping based on an application programming interface (API) are performed in a hybrid manner. It is about technology that automates information collection.

정보통신기술이 발전하면서 다양한 정보 원천으로부터 데이터를 수집할 필요성이 증가하고 있다. 외부 기관에 저장된 정보를 사용자의 수작업을 최소화하면서 쉽게 취득하기 위한 기술로 스크래핑(scraping)이 있다. 스크래핑 기술에는 금융기관 등 정보 제공처의 웹 사이트에 접속하여 웹 사이트를 통해 스크린에 표시되는 데이터 중 필요한 것만 추출해 오는 스크린 스크래핑(screen scraping)과, 해당 기관의 정책에 따라 기관 서버 등에 접속하여 기관이 제공하는 정보 중 필요한 것을 파싱(parsing)하여 수신하는 데이터 스크래핑이 있다. As information and communication technology develops, the need to collect data from various information sources is increasing. Scraping is a technology for easily obtaining information stored in external organizations while minimizing the user's manual work. Scraping technology includes screen scraping, which connects to the website of an information provider such as a financial institution and extracts only the necessary data from the data displayed on the screen through the website, and accesses the institution's server, etc. in accordance with the institution's policy and provides There is data scraping, which involves parsing and receiving the necessary information.

스크린 스크래핑은 정보 제공 기관의 웹 사이트에 접속할 수 있는 웹 브라우저(web browser)를 이용하여 수행되는데, 이러한 웹 브라우저 기반의 스크래핑은 단말의 시스템 자원을 많이 차지하고 속도가 느린 단점이 있다. 한편, 데이터 스크래핑은 애플리케이션 프로그래밍 인터페이스(Application Programming Interface; API) 등에 기반한 데이터 통신을 활용하므로 적은 자원으로 빠르게 정보 처리가 가능한 이점이 있다. 예를 들어, 한국등록특허 제10-1815235호는 스케줄링 알고리즘에 따라 스크래핑 작업을 할당하는 데이터 스크래핑 시스템 및 방법을 개시한다.Screen scraping is performed using a web browser that can access the website of an information provider. This web browser-based scraping has the disadvantage of taking up a lot of system resources of the terminal and being slow. Meanwhile, data scraping utilizes data communication based on an application programming interface (API), so it has the advantage of being able to process information quickly with few resources. For example, Korean Patent No. 10-1815235 discloses a data scraping system and method for allocating scraping tasks according to a scheduling algorithm.

그러나, 데이터 스크래핑 방식으로 정보를 취득하기 위해서는 웹 브라우저가 생성하는 값을 스크래핑 엔진의 개발자가 직접 구현하여야 하는 어려움이 있다. 최근에는 금융이상거래 탐지 시스템(Fraud Detection System; FDS) 등 보안 시스템의 사용이 증가하고 있어 금융기관으로부터 정보를 취득하려면 유효한 보안 속성 값을 기관에 전송해야 하는 경우가 많은데, API에 기반한 데이터 스크래핑으로는 이러한 보안 속성 값을 생성하기 어려운 문제가 있다. 또한, 브라우저 지문(browser fingerprinting) 또는 동적 웹 기술 등이 사용된 기관의 경우에는 웹 브라우저를 사용하지 않고 정보를 취득하는 것이 불가능한 한계가 있다. However, in order to acquire information through data scraping, there is a difficulty in that the developer of the scraping engine must directly implement the values generated by the web browser. Recently, the use of security systems such as Fraud Detection System (FDS) has increased, and in order to obtain information from financial institutions, it is often necessary to transmit valid security attribute values to the institution. API-based data scraping There is a problem in that it is difficult to generate these security attribute values. Additionally, in the case of organizations that use browser fingerprinting or dynamic web technology, there is a limitation in that it is impossible to obtain information without using a web browser.

한국등록특허 제10-1815235호Korean Patent No. 10-1815235

본 명세서의 일 측면에 따르면, 전체 통신 구간 중 일부에만 웹 브라우저(web browser)를 사용함으로써 웹 브라우저에 의한 스크래핑과 애플리케이션 프로그래밍 인터페이스(Application Programming Interface; API) 등에 기반한 데이터 스크래핑(scraping)을 하이브리드(hybrid) 방식으로 이용하는 정보 스크래핑 방법 및 시스템을 제공할 수 있다. According to one aspect of the present specification, scraping by a web browser and data scraping based on an application programming interface (API) are hybridized by using a web browser only for a portion of the entire communication section. ) method and system for information scraping can be provided.

본 명세서의 일 측면에 따르면, 데이터 스크래핑에 의한 정보 취득에 있어서 웹 브라우저 기반의 스크래핑이 필요할 경우 로컬(local) 장치 또는 원격 서버를 통해 웹 브라우저를 실행함으로써 웹 브라우저에 의한 스크래핑 방식으로 정보 속성 값을 취득하고 이를 기반으로 정보 제공 서버로부터 정보를 수신할 수 있는 사용자 장치를 제공할 수 있다. According to one aspect of the present specification, when web browser-based scraping is necessary in acquiring information through data scraping, the information attribute value is scraped by the web browser by running the web browser through a local device or remote server. It is possible to provide a user device that can acquire information and receive information from an information provision server based on this information.

본 명세서의 일 측면에 따르면, 데이터 스크래핑 방식으로 정보를 수집하도록 구성된 컴퓨팅 장치로부터 수신되는 요청에 따라, 웹 브라우저를 실행함으로써 정보 제공 서버로부터 웹 브라우저에 의한 스크래핑 방식으로 정보 속성 값을 취득하고 이를 컴퓨팅 장치에 제공할 수 있는 스크래핑 서비스 서버를 제공할 수 있다. According to one aspect of the present specification, in response to a request received from a computing device configured to collect information by a data scraping method, by executing a web browser, information attribute values are acquired from an information provision server by a scraping method by a web browser and computing them. A scraping service server that can be provided to the device can be provided.

나아가 본 명세서의 일 측면에 따르면, 하드웨어와 결합되어 전술한 시스템, 서버 및 장치에 의한 정보 스크래핑 방법을 실행하기 위한 컴퓨터 프로그램을 제공할 수 있다. Furthermore, according to one aspect of the present specification, a computer program may be provided in combination with hardware to execute the information scraping method by the above-described system, server, and device.

본 명세서의 해결하고자 하는 과제는 상술한 바에 한정되지 아니하고, 하기에서 설명하는 발명의 실시예들에 의해 도출될 수 있는 다양한 사항들로 확장될 수 있다.The problem to be solved by this specification is not limited to the above, and can be expanded to various matters that can be derived by the embodiments of the invention described below.

본 명세서의 일 실시예에 따른 정보 스크래핑(scraping) 방법은, 데이터 스크래핑 모듈이, 정보 제공 서버에 연결된 제1 통신 세션을 통하여 상기 정보 제공 서버에 정보 스크래핑을 요청하는 단계; 상기 데이터 스크래핑 모듈이, 상기 정보 제공 서버로부터 수신된 응답에 기초하여, 정보 스크래핑을 위해 웹 브라우저(web browser) 정보의 송신 또는 상기 웹 브라우저에 의한 정보 수신이 필요한 것으로 결정하는 단계; 상기 데이터 스크래핑 모듈이, 상기 제1 통신 세션에 상응하는 세션 정보를, 웹 브라우저를 실행 가능한 브라우저 스크래핑 모듈에 전달하는 단계; 및 상기 데이터 스크래핑 모듈이, 상기 웹 브라우저가 상기 세션 정보를 이용하여 상기 정보 제공 서버로부터 스크래핑한 정보 속성 값을 상기 브라우저 스크래핑 모듈로부터 수신하는 단계를 포함한다. An information scraping method according to an embodiment of the present specification includes the steps of a data scraping module requesting information scraping from the information providing server through a first communication session connected to the information providing server; determining, by the data scraping module, that transmission of web browser information or reception of information by the web browser is necessary for information scraping, based on a response received from the information provision server; transmitting, by the data scraping module, session information corresponding to the first communication session to a browser scraping module executable in a web browser; and receiving, by the data scraping module, an information attribute value scraped by the web browser from the information provision server using the session information from the browser scraping module.

일 실시예에 따른 정보 스크래핑 방법은, 상기 브라우저 스크래핑 모듈이 상기 세션 정보를 이용하여 상기 웹 브라우저를 실행함으로써 상기 정보 제공 서버로부터 상기 정보 속성 값을 스크래핑하는 단계를 더 포함한다. The information scraping method according to one embodiment further includes the step of the browser scraping module scraping the information attribute value from the information provision server by executing the web browser using the session information.

일 실시예에서, 상기 정보 속성 값은, 쿠키 데이터, 저장소 식별 데이터, 웹 사용자 인터페이스 구성요소 데이터 및 렌더링 결과 데이터 중 하나 이상을 포함한다. In one embodiment, the information attribute value includes one or more of cookie data, storage identification data, web user interface component data, and rendering result data.

일 실시예에서, 상기 정보 속성 값을 스크래핑하는 단계는, 상기 웹 브라우저가 상기 정보 제공 서버로부터 수신한 데이터를 상기 정보 속성 값으로 렌더링하는 단계를 포함한다. In one embodiment, the step of scraping the information attribute value includes rendering, by the web browser, data received from the information provision server as the information attribute value.

일 실시예에서, 상기 정보 속성 값을 스크래핑하는 단계는, 상기 웹 브라우저가 상기 웹 브라우저의 식별 정보를 상기 정보 제공 서버에 전송하는 단계를 더 포함한다. In one embodiment, the step of scraping the information attribute value further includes the step of the web browser transmitting identification information of the web browser to the information provision server.

일 실시예에 따른 정보 스크래핑 방법은, 상기 데이터 스크래핑 모듈이 상기 정보 속성 값을 이용하여 상기 정보 제공 서버와 연결된 제2 통신 세션을 생성하는 단계; 및 상기 데이터 스크래핑 모듈이 상기 제2 통신 세션을 통하여 상기 정보 제공 서버로부터 정보 스크래핑 요청에 대한 응답 값을 수신하는 단계를 더 포함한다. The information scraping method according to one embodiment includes the steps of the data scraping module creating a second communication session connected to the information providing server using the information attribute value; and the data scraping module receiving a response value to the information scraping request from the information providing server through the second communication session.

일 실시예에서, 상기 제1 통신 세션 및 상기 제2 통신 세션은, 상기 정보 제공 서버에 대해 미리 설정된 애플리케이션 프로그래밍 인터페이스(Application Programming Interface; API)를 이용하여 생성된다. In one embodiment, the first communication session and the second communication session are created using an application programming interface (API) preset for the information providing server.

본 명세서의 일 실시예에 따른 컴퓨팅 장치는, 프로그램 명령이 저장된 메모리; 데이터 스크래핑 모듈을 포함하는 통신 모듈; 및 상기 명령을 실행함으로써 상기 메모리 및 상기 통신 모듈을 제어하도록 구성된 프로세서를 포함한다. A computing device according to an embodiment of the present specification includes a memory storing program instructions; a communication module including a data scraping module; and a processor configured to control the memory and the communication module by executing the instructions.

상기 프로세서는, 정보 제공 서버에 연결된 제1 통신 세션을 통하여 상기 정보 제공 서버에 데이터 스크래핑을 요청하며, 상기 정보 제공 서버로부터 수신된 응답에 기초하여, 정보 스크래핑을 위해 웹 브라우저 정보의 송신 또는 상기 웹 브라우저에 의한 정보 수신이 필요한 것으로 결정하고, 상기 제1 통신 세션에 상응하는 세션 정보를 웹 브라우저를 실행 가능한 브라우저 스크래핑 모듈에 전달하며, 상기 웹 브라우저가 상기 세션 정보를 이용하여 상기 정보 제공 서버로부터 스크래핑한 정보 속성 값을 상기 브라우저 스크래핑 모듈로부터 수신하도록 상기 데이터 스크래핑 모듈을 제어하도록 구성된다. The processor requests data scraping from the information provision server through a first communication session connected to the information provision server, and based on the response received from the information provision server, transmits web browser information or uses the web browser for information scraping. It is determined that information reception by a browser is necessary, and session information corresponding to the first communication session is transmitted to a browser scraping module executable in a web browser, and the web browser scrapes from the information provision server using the session information. and configured to control the data scraping module to receive an information attribute value from the browser scraping module.

일 실시예에서, 상기 프로세서는, 상기 정보 속성 값을 이용하여 상기 정보 제공 서버와 연결된 제2 통신 세션을 생성하고, 상기 제2 통신 세션을 통하여 상기 정보 제공 서버로부터 정보 스크래핑 요청에 대한 응답 값을 수신하도록 상기 데이터 스크래핑 모듈을 제어하도록 더 구성된다. In one embodiment, the processor creates a second communication session connected to the information provision server using the information attribute value, and sends a response value to the information scraping request from the information provision server through the second communication session. and control the data scraping module to receive data.

일 실시예에서, 상기 통신 모듈은 상기 브라우저 스크래핑 모듈을 더 포함하며, 상기 프로세서는, 상기 세션 정보를 이용하여 상기 웹 브라우저를 실행함으로써 상기 정보 제공 서버로부터 상기 정보 속성 값을 스크래핑하도록 상기 브라우저 스크래핑 모듈을 제어하도록 더 구성된다.In one embodiment, the communication module further includes the browser scraping module, wherein the processor executes the web browser using the session information to scrape the information attribute value from the information provision server. It is further configured to control.

본 명세서의 일 실시예에 따른 정보 스크래핑 시스템은, 데이터 스크래핑 모듈을 포함하며, 정보 제공 서버에 연결된 제1 통신 세션을 통하여 상기 정보 제공 서버에 데이터 스크래핑을 요청하고, 상기 정보 제공 서버로부터 수신된 응답에 기초하여, 정보 스크래핑을 위해 웹 브라우저 정보의 송신 또는 상기 웹 브라우저에 의한 정보 수신이 필요한 것으로 결정하도록 구성된 사용자 장치; 및 웹 브라우저를 실행 가능한 브라우저 스크래핑 모듈을 포함하는 스크래핑 서비스 서버를 포함한다. The information scraping system according to an embodiment of the present specification includes a data scraping module, requests data scraping to the information providing server through a first communication session connected to the information providing server, and receives a response from the information providing server. a user device configured to determine that transmission of information to or receipt of information by a web browser is necessary for information scraping; and a scraping service server including a browser scraping module capable of executing a web browser.

상기 사용자 장치는, 상기 제1 통신 세션에 상응하는 세션 정보를 상기 스크래핑 서비스 서버에 전송하도록 더 구성된다. 또한 상기 스크래핑 서비스 서버는, 상기 세션 정보를 이용하여 상기 웹 브라우저를 실행함으로써 상기 정보 제공 서버로부터 정보 속성 값을 스크래핑하고, 상기 정보 속성 값을 상기 사용자 장치에 전송하도록 더 구성된다. The user device is further configured to transmit session information corresponding to the first communication session to the scraping service server. In addition, the scraping service server is further configured to scrape information attribute values from the information provision server by executing the web browser using the session information and transmit the information attribute values to the user device.

일 실시예에서, 상기 사용자 장치는, 상기 정보 속성 값을 이용하여 상기 정보 제공 서버와 연결된 제2 통신 세션을 생성하고, 상기 제2 통신 세션을 통하여 상기 정보 제공 서버로부터 정보 스크래핑 요청에 대한 응답 값을 수신하도록 더 구성된다. In one embodiment, the user device creates a second communication session connected to the information provision server using the information attribute value, and receives a response value for an information scraping request from the information provision server through the second communication session. It is further configured to receive.

본 명세서의 일 실시예에 따른 컴퓨터 프로그램은, 하드웨어와 결합되어 전술한 실시예들에 따른 정보 스크래핑 방법을 실행하도록 컴퓨터로 판독 가능한 매체에 저장될 수 있다. A computer program according to an embodiment of the present specification may be combined with hardware and stored in a computer-readable medium to execute the information scraping method according to the above-described embodiments.

본 명세서의 개시에 따르면, 전체 통신 구간 중 일부에만 웹 브라우저(web browser)를 사용함으로써 웹 브라우저에 의한 스크래핑과 애플리케이션 프로그래밍 인터페이스(Application Programming Interface; API) 등에 기반한 데이터 스크래핑을 하이브리드(hybrid) 방식으로 이용하여 정보 수집을 자동화할 수 있는 이점이 있다. According to the disclosure of this specification, scraping by a web browser and data scraping based on an application programming interface (API) are used in a hybrid manner by using a web browser only for a portion of the entire communication section. This has the advantage of automating information collection.

이러한 하이브리드 방식의 스크래핑을 통하여, 웹 브라우저에 의해서만 처리 가능한 보안 속성 값, 브라우저 지문(browser fingerprinting), 동적 웹 등을 사용하는 정보 제공 기관으로부터 용이하게 정보를 취득할 수 있는 이점이 있다. 또한, 전체 통신 구간 중 웹 브라우저에 의한 정보 송수신이 요구되는 일부 구간에만 웹 브라우저를 사용함으로써, 스크래핑을 실행하는 컴퓨팅 장치의 자원 사용량을 줄이고 성능과 안정성을 동시에 확보할 수 있는 이점이 있다. Through this hybrid scraping method, there is an advantage in easily obtaining information from information providing organizations using security attribute values that can only be processed by a web browser, browser fingerprinting, and the dynamic web. In addition, by using a web browser only for a portion of the entire communication section that requires information transmission and reception by a web browser, there is an advantage in reducing resource usage of the computing device performing scraping and ensuring performance and stability at the same time.

본 명세서의 효과는 위 기재된 사항에 한정되지 아니하며, 아래 발명의 실시예들에 대한 상세한 설명으로부터 도출될 수 있는 다양한 내용들로 확장될 수 있음이 이해되어야 한다.It should be understood that the effect of the present specification is not limited to the matters described above, and can be expanded to various contents that can be derived from the detailed description of the embodiments of the invention below.

도 1은 본 명세서의 일 실시예에 따른 정보 스크래핑 시스템의 동작 환경의 예를 도시한 도면이다.
도 2는 본 명세서의 일 실시예에 따른 정보 스크래핑 방법의 각 단계를 나타내는 순서도이다.
도 3은 본 명세서의 일 실시예에 있어서 컴퓨팅 장치의 내부 구성을 설명하기 위한 블록도이다.
도 4는 본 명세서의 다른 실시예에 따른 정보 스크래핑 방법의 각 단계를 나타내는 순서도이다.
도 5는 본 명세서의 또 다른 실시예에 따른 정보 스크래핑 방법의 각 단계를 나타내는 순서도이다.
FIG. 1 is a diagram illustrating an example of the operating environment of an information scraping system according to an embodiment of the present specification.
Figure 2 is a flowchart showing each step of the information scraping method according to an embodiment of the present specification.
Figure 3 is a block diagram for explaining the internal configuration of a computing device according to an embodiment of the present specification.
Figure 4 is a flowchart showing each step of the information scraping method according to another embodiment of the present specification.
Figure 5 is a flowchart showing each step of the information scraping method according to another embodiment of the present specification.

본 명세서의 실시예를 설명함에 있어서 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 실시예의 요지를 흐릴 수 있다고 판단되는 경우에는 그에 대한 상세한 설명은 생략한다. 그리고, 도면에서 본 명세서의 실시예에 대한 설명과 관계없는 부분은 생략하였으며, 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. In describing the embodiments of the present specification, if it is determined that a detailed description of a known configuration or function may obscure the gist of the embodiments of the present specification, the detailed description thereof will be omitted. In addition, in the drawings, parts that are not related to the description of the embodiments of the present specification are omitted, and similar parts are given similar reference numerals.

본 명세서의 실시예에 있어서, 어떤 구성요소가 다른 구성요소와 "연결", "결합" 또는 "접속"되어 있다고 할 때, 이는 직접적인 연결관계뿐만 아니라, 그 중간에 또 다른 구성요소가 존재하는 간접적인 연결관계도 포함할 수 있다. 또한 어떤 구성요소가 다른 구성요소를 "포함한다" 또는 "가진다"고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 배제하는 것이 아니라 또 다른 구성요소를 더 포함할 수 있는 것을 의미한다. In the embodiments of the present specification, when a component is said to be “connected,” “coupled,” or “connected” to another component, this refers not only to a direct connection relationship, but also to an indirect relationship where another component exists in between. Connection relationships may also be included. In addition, when a component is said to “include” or “have” another component, this does not mean excluding the other component, but may further include another component, unless specifically stated to the contrary. .

본 명세서의 실시예에 있어서, 제1, 제2 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용되며, 특별히 언급되지 않는 한 구성요소들간의 순서 또는 중요도 등을 한정하지 않는다. 따라서, 본 명세서의 실시예의 범위 내에서 실시예에서의 제1 구성요소는 다른 실시예에서 제2 구성요소라고 칭할 수도 있고, 마찬가지로 실시예에서의 제2 구성요소를 다른 실시예에서 제1 구성요소라고 칭할 수도 있다. In the embodiments of this specification, terms such as first, second, etc. are used only for the purpose of distinguishing one component from other components, and do not limit the order or importance of components unless specifically mentioned. No. Therefore, within the scope of the embodiments of the present specification, the first component in an embodiment may be referred to as a second component in other embodiments, and similarly, the second component in the embodiment may be referred to as the first component in other embodiments. It may also be called.

본 명세서의 실시예에 있어서, 서로 구별되는 구성요소들은 각각의 특징을 명확하게 설명하기 위함이며, 구성요소들이 반드시 분리되는 것을 의미하지는 않는다. 즉, 복수의 구성요소가 통합되어 하나의 하드웨어 또는 소프트웨어 단위로 이루어질 수도 있고, 하나의 구성요소가 분산되어 복수의 하드웨어 또는 소프트웨어 단위로 이루어질 수도 있다. 따라서, 별도로 언급하지 않더라도 이와 같이 통합된 또는 분산된 실시예도 본 명세서의 실시예의 범위에 포함된다. In the embodiments of the present specification, distinct components are intended to clearly explain each feature, and do not necessarily mean that the components are separated. That is, a plurality of components may be integrated to form one hardware or software unit, or one component may be distributed to form a plurality of hardware or software units. Therefore, even if not specifically mentioned, such integrated or distributed embodiments are also included in the scope of the embodiments of the present specification.

본 명세서에서 네트워크는 유무선 네트워크를 모두 포함하는 개념일 수 있다. 이때, 네트워크는 장치와 시스템 및 장치 상호 간의 데이터 교환이 수행될 수 있는 통신망을 의미할 수 있으며, 특정 네트워크로 한정되는 것은 아니다. In this specification, a network may be a concept that includes both wired and wireless networks. At this time, the network may refer to a communication network in which data exchange between devices, systems, and devices can be performed, and is not limited to a specific network.

본 명세서에 기술된 실시예는 전적으로 하드웨어이거나, 부분적으로 하드웨어이고 부분적으로 소프트웨어이거나, 또는 전적으로 소프트웨어인 측면을 가질 수 있다. 본 명세서에서 "부(unit)", "장치" 또는 "시스템" 등은 하드웨어, 하드웨어와 소프트웨어의 조합, 또는 소프트웨어 등 컴퓨터 관련 엔티티(entity)를 지칭한다. 예를 들어, 본 명세서에서 부, 모듈, 장치 또는 시스템 등은 실행중인 프로세스, 프로세서, 객체(object), 실행 파일(executable), 실행 스레드(thread of execution), 프로그램(program), 및/또는 컴퓨터(computer)일 수 있으나, 이에 제한되는 것은 아니다. 예를 들어, 컴퓨터에서 실행중인 애플리케이션(application) 및 컴퓨터의 양쪽이 모두 본 명세서의 부, 모듈, 장치 또는 시스템 등에 해당할 수 있다. Embodiments described herein may have aspects that are entirely hardware, partly hardware and partly software, or entirely software. In this specification, “unit,” “device,” or “system” refers to computer-related entities such as hardware, a combination of hardware and software, or software. For example, in this specification, a part, module, device, or system refers to a running process, processor, object, executable, thread of execution, program, and/or computer. It may be a (computer), but is not limited thereto. For example, both an application running on a computer and the computer may correspond to a part, module, device, or system in the present specification.

또한, 본 명세서에서 컴퓨팅 장치는 스마트폰(smartphone), 태블릿(tablet) 컴퓨터, 웨어러블(wearable) 장치 및 HMD(Head Mounted Display)와 같이 모바일 장치일 수 있고, 또는 PC나 디스플레이 기능을 구비한 가전처럼 고정된 장치일 수 있다. 또한, 일 예로, 컴퓨팅 장치는 차량 내 클러스터 또는 IoT (Internet of Things) 장치일 수 있다. 즉, 본 명세서에서 컴퓨팅 장치는 애플리케이션 동작이 가능한 기기들을 지칭할 수 있으며, 특정 타입으로 한정되지 않는다. 하기에서는 설명의 편의를 위해 애플리케이션이 동작하는 기기를 컴퓨팅 장치로 지칭한다.Additionally, in this specification, the computing device may be a mobile device such as a smartphone, tablet computer, wearable device, and HMD (Head Mounted Display), or a home appliance with a PC or display function. It may be a fixed device. Additionally, as an example, the computing device may be an in-vehicle cluster or an Internet of Things (IoT) device. That is, in this specification, computing devices may refer to devices capable of operating applications, and are not limited to a specific type. In the following, for convenience of explanation, the device on which the application runs is referred to as a computing device.

본 명세서에 있어서 네트워크의 통신 방식은 제한되지 않으며, 각 구성요소간 연결이 동일한 네트워크 방식으로 연결되지 않을 수도 있다. 네트워크는, 통신망(일례로, 이동통신망, 유선 인터넷, 무선 인터넷, 방송망, 위성망 등)을 활용하는 통신 방식뿐만 아니라 기기들간의 근거리 무선 통신 역시 포함될 수 있다. 예를 들어, 네트워크는, 객체와 객체가 네트워킹 할 수 있는 모든 통신 방법을 포함할 수 있으며, 유선 통신, 무선 통신, 3G, 4G, 5G, 혹은 그 이외의 방법으로 제한되지 않는다. 예를 들어, 유선 및/또는 네트워크는 LAN(Local Area Network), MAN(Metropolitan Area Network), GSM(Global System for Mobile Network), EDGE(Enhanced Data GSM Environment), HSDPA(High Speed Downlink Packet Access), W-CDMA(Wideband Code Division Multiple Access), CDMA(Code Division Multiple Access), TDMA(Time Division Multiple Access), 블루투스(Bluetooth), 지그비(Zigbee), 와이-파이(Wi-Fi), VoIP(Voice over Internet Protocol), LTE Advanced, IEEE802.16m, WirelessMAN-Advanced, HSPA+, 3GPP Long Term Evolution (LTE), Mobile WiMAX (IEEE 802.16e), UMB (formerly EV-DO Rev. C), Flash-OFDM, iBurst and MBWA (IEEE 802.20) systems, HIPERMAN, Beam-Division Multiple Access (BDMA), Wi-MAX(World Interoperability for Microwave Access) 및 초음파 활용 통신으로 이루어진 군으로부터 선택되는 하나 이상의 통신 방법에 의한 통신 네트워크를 지칭할 수 있으나, 이에 한정되는 것은 아니다.In this specification, the network communication method is not limited, and connections between each component may not be connected through the same network method. The network may include not only a communication method using a communication network (for example, a mobile communication network, wired Internet, wireless Internet, broadcasting network, satellite network, etc.), but also short-range wireless communication between devices. For example, a network can include objects and any communication method through which they can network, and is not limited to wired communication, wireless communication, 3G, 4G, 5G, or other methods. For example, wired and/or networks include Local Area Network (LAN), Metropolitan Area Network (MAN), Global System for Mobile Network (GSM), Enhanced Data GSM Environment (EDGE), High Speed Downlink Packet Access (HSDPA), W-CDMA (Wideband Code Division Multiple Access), CDMA (Code Division Multiple Access), TDMA (Time Division Multiple Access), Bluetooth, Zigbee, Wi-Fi, VoIP (Voice over Internet Protocol), LTE Advanced, IEEE802.16m, WirelessMAN-Advanced, HSPA+, 3GPP Long Term Evolution (LTE), Mobile WiMAX (IEEE 802.16e), UMB (formerly EV-DO Rev. C), Flash-OFDM, iBurst and It may refer to a communication network using one or more communication methods selected from the group consisting of MBWA (IEEE 802.20) systems, HIPERMAN, Beam-Division Multiple Access (BDMA), Wi-MAX (World Interoperability for Microwave Access), and ultrasonic communication. However, it is not limited to this.

다양한 실시예에서 설명하는 구성요소들이 반드시 필수적인 구성요소들은 의미하는 것은 아니며, 일부는 선택적인 구성요소일 수 있다. 따라서, 실시예에서 설명하는 구성요소들의 부분집합으로 구성되는 실시예도 본 명세서의 실시예의 범위에 포함된다. 또한, 다양한 실시예에서 설명하는 구성요소들에 추가적으로 다른 구성요소를 포함하는 실시예도 본 명세서의 실시예의 범위에 포함된다.Components described in various embodiments do not necessarily mean essential components, and some may be optional components. Accordingly, embodiments consisting of a subset of the elements described in the embodiments are also included in the scope of the embodiments of the present specification. In addition, embodiments that include other components in addition to the components described in the various embodiments are also included in the scope of the embodiments of the present specification.

이하에서, 도면을 참조하여 본 명세서의 실시예들에 대하여 상세히 살펴본다.Hereinafter, embodiments of the present specification will be examined in detail with reference to the drawings.

도 1은 본 명세서의 일 실시예에 따른 정보 스크래핑(scraping) 시스템의 동작 환경의 예를 도시한 도면이다.1 is a diagram illustrating an example of the operating environment of an information scraping system according to an embodiment of the present specification.

도 1을 참조하면, 일 실시예에 따른 정보 스크래핑 시스템은 유선 및/또는 무선 네트워크를 통하여 정보 제공 서버(3)에 통신 가능하게 연결된 컴퓨팅 장치를 포함할 수 있다. 이때 컴퓨팅 장치는 하나 이상의 사용자 장치(2)일 수도 있고, 또는 스크래핑 서비스 서버(1)일 수도 있다. 도 1은 발명의 설명을 위한 일례로 장치의 수나 서버의 수가 도 1과 같이 한정되는 것은 아니다.Referring to FIG. 1, an information scraping system according to an embodiment may include a computing device communicatively connected to the information providing server 3 through a wired and/or wireless network. At this time, the computing device may be one or more user devices (2), or may be a scraping service server (1). Figure 1 is an example for explaining the invention, and the number of devices or servers is not limited as in Figure 1.

하나 이상의 사용자 장치(2)는 컴퓨터 시스템으로 구현되는 고정형 단말이거나 이동형 단말일 수 있다. 하나 이상의 사용자 장치(2)는 예를 들면, 스마트폰(smartphone), 휴대폰, 내비게이션, 컴퓨터, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 태블릿 PC, 게임 콘솔(game console), 웨어러블 장치(wearable device), IoT(internet of things) 장치, VR(virtual reality) 장치, AR(augmented reality) 장치 등이 있다. 일례로 실시예들에서 사용자 장치(2)는 실질적으로 무선 또는 유선 통신 방식을 이용하여 네트워크를 통해 스크래핑 서비스 서버(1) 및 정보 제공 서버(3)와 통신할 수 있는 다양한 물리적인 컴퓨터 시스템들 중 하나를 의미할 수 있다.One or more user devices 2 may be a stationary terminal implemented as a computer system or a mobile terminal. One or more user devices (2) include, for example, a smartphone, mobile phone, navigation, computer, laptop, digital broadcasting terminal, PDA (Personal Digital Assistants), PMP (Portable Multimedia Player), tablet PC, game console ( There are game consoles, wearable devices, IoT (internet of things) devices, VR (virtual reality) devices, and AR (augmented reality) devices. For example, in embodiments, the user device 2 is one of various physical computer systems capable of communicating with the scraping service server 1 and the information provision server 3 over a network, substantially using a wireless or wired communication method. It can mean one thing.

스크래핑 서비스 서버(1)는 하나 이상의 사용자 장치(2)와 유선 및/또는 무선 네트워크를 통해 통신하여 명령, 코드, 파일, 콘텐츠, 서비스 등을 제공하는 컴퓨팅 장치 또는 복수의 컴퓨팅 장치들로 구현될 수 있다. 예를 들어, 스크래핑 서비스 서버(1)는 네트워크를 통해 접속한 하나 이상의 사용자 장치(2)로 각각의 서비스를 제공하는 시스템일 수 있다. 보다 구체적인 예로, 스크래핑 서비스 서버(1)는 하나 이상의 사용자 장치(2)에 설치되어 구동되는 컴퓨터 프로그램으로서의 애플리케이션을 통해, 해당 애플리케이션이 목적하는 서비스(즉, 정보 스크래핑)를 하나 이상의 사용자 장치(2)로 제공할 수 있다. 다른 예로, 스크래핑 서비스 서버(1)는 상술한 애플리케이션의 설치 및 구동을 위한 파일을 하나 이상의 사용자 장치(2)로 배포하고 사용자 입력 정보를 수신해 대응하는 서비스를 제공할 수 있다.The scraping service server 1 may be implemented as a computing device or a plurality of computing devices that communicate with one or more user devices 2 through a wired and/or wireless network to provide commands, codes, files, content, services, etc. there is. For example, the scraping service server 1 may be a system that provides each service to one or more user devices 2 connected through a network. As a more specific example, the scraping service server (1) provides the service (i.e. information scraping) targeted by the application to one or more user devices (2) through an application as a computer program installed and running on one or more user devices (2). It can be provided as . As another example, the scraping service server 1 may distribute files for installing and running the above-described application to one or more user devices 2, receive user input information, and provide a corresponding service.

도 2는 본 명세서의 일 실시예에 따른 정보 스크래핑 방법의 각 단계를 나타내는 순서도이다. 설명의 편의를 위하여, 도 1 및 도 2를 참조하여 실시예들에 따른 정보 스크래핑 방법에 대하여 설명한다. Figure 2 is a flowchart showing each step of the information scraping method according to an embodiment of the present specification. For convenience of explanation, information scraping methods according to embodiments will be described with reference to FIGS. 1 and 2.

먼저, 사용자 장치(2)의 사용자는 정보 제공 서버(3)에 스크래핑 방식으로 데이터를 요청할 수 있다(S101). 예를 들어, 사용자 장치(2)는 사용자의 개입 없이 정보 제공 서버(3)로부터 정보를 스크래핑하기 위한 스크래핑 모듈이 설치되어 있는 스마트폰, 노트북 컴퓨터, PC 등 컴퓨팅 장치일 수 있다. 또한, 정보 제공 서버(3)는 사용자가 취득하고자 하는 정보를 보유하고 있는 임의의 기관의 서버로서, 은행, 카드사 등 금융기관의 서버일 수 있으나, 이에 한정되는 것은 아니다. 예를 들어, 정보 제공 서버(3)는 은행 등 금융기관이 소비자에 대한 서비스를 위하여 개설한 웹 사이트를 제공하는 웹 서버일 수도 있다. First, the user of the user device 2 can request data from the information providing server 3 by scraping (S101). For example, the user device 2 may be a computing device, such as a smartphone, laptop computer, or PC, on which a scraping module is installed to scrape information from the information provision server 3 without user intervention. In addition, the information provision server 3 is a server of any institution that holds information that the user wishes to obtain, and may be a server of a financial institution such as a bank or credit card company, but is not limited thereto. For example, the information provision server 3 may be a web server that provides a website opened by a financial institution such as a bank to provide services to consumers.

사용자 장치(2)에 설치된 스크래핑 모듈은, 애플리케이션 프로그래밍 인터페이스(Application Programming Interface; API) 등 정보 제공 서버(3)에 사전에 규약되어 있는 송수신 데이터 및 통신 방식에 따라 정보 제공 서버(3)로부터 정보를 자동으로 수집하도록 구성되며, 본 명세서에서는 이러한 동작을 수행하기 위한 하드웨어 및/또는 소프트웨어 수단이 "데이터 스크래핑 모듈"로 지칭된다. 예를 들어, 데이터 스크래핑 모듈은 사용자 장치(2)에 저장되거나 사용자 장치(2)상에서 실행되는 소프트웨어 애플리케이션의 형태로 구현될 수 있다. The scraping module installed in the user device (2) receives information from the information provision server (3) according to the transmission and reception data and communication method previously stipulated in the information provision server (3), such as an application programming interface (API). It is configured to automatically collect data, and the hardware and/or software means for performing this operation are referred to herein as “data scraping modules.” For example, the data scraping module may be implemented in the form of a software application stored on or running on the user device 2.

그러나, 정보 제공 서버(3)로부터 정보를 수집하기 위하여 웹 브라우저(web browser) 정보의 수신 또는 송신이 필요한 경우가 있으며, 본 명세서에서 사용자 장치(2)는 이러한 경우 해당 구간에서 웹 브라우저를 사용하여 정보를 스크래핑하도록 구성된다. 먼저, 사용자 장치(2)에서 실행되는 데이터 스크래핑 모듈은, 정보 제공 서버(3)와 데이터 통신을 수행함에 있어서 웹 브라우저 정보의 수신 또는 송신이 필요한지 여부를 결정할 수 있다(S102). However, in order to collect information from the information provision server 3, there are cases where reception or transmission of web browser information is necessary, and in this specification, the user device 2 uses a web browser in the corresponding section. It is configured to scrape information. First, the data scraping module running on the user device 2 may determine whether reception or transmission of web browser information is necessary when performing data communication with the information provision server 3 (S102).

본 명세서에서 웹 브라우저 정보의 수신이 필요한 경우란, HTTP 프로토콜을 통한 통신상의 정보만으로 브라우저에서 렌더링(rendering)될 정보를 예측하기 어렵기 때문에 웹 브라우저의 실행을 통해 정보 확인이 필요한 경우를 의미한다. 예를 들어, 웹 브라우저 정보의 수신이 필요한 경우에는, 정보 제공 서버(3)가 동적 웹 사이트를 통하여 정보를 제공하는 경우, 정보 수집을 위해 사용자 장치(2)의 화면 캡처가 필요한 경우, 정보 제공 서버(3)가 제공하는 정보가 베이스64(based 64), XOR 인코딩 등 공지된 난독화 알고리즘에 의하여 난독화되어 있는 경우 등이 있다. In this specification, a case in which reception of web browser information is necessary refers to a case in which information must be confirmed through execution of a web browser because it is difficult to predict information to be rendered in the browser using only information in communication through the HTTP protocol. For example, when it is necessary to receive web browser information, when the information provision server 3 provides information through a dynamic website, and when screen capture of the user device 2 is required to collect information, information is provided. There are cases where the information provided by the server 3 is obfuscated by known obfuscation algorithms such as base 64 and XOR encoding.

또한, 본 명세서에서 웹 브라우저 정보의 송신이 필요한 경우란, 정보 제공 서버(3)가 정보를 제공하기에 앞서 또는 정보를 제공하는 과정의 일부로서 사용자 측의 웹 브라우저의 식별 정보를 필요로 하는 경우를 의미한다. 예를 들어, 웹 브라우저 정보의 송신이 필요한 경우로, 정보 제공 서버(3)가 보안 토큰(token)과 같이 웹 브라우저를 통해서만 생성 가능한 보안 속성 값을 요구하는 경우가 있다. 금융기관들은 비정상적인 정보 접근을 차단하기 위한 이상거래탐지시스템(Fraud Detection System; FDS)을 운영하는 경우가 많은데, FDS에서는 분산 서비스 거부 공격(Distributed Denial of Service attack; DDoS)과 같은 네트워크 공격을 대비하기 위해 브라우저 지문(browser fingerprinting) 방식으로 생성된 보안 속성 값을 요구할 수 있다.In addition, in this specification, the case where transmission of web browser information is necessary means when the information provision server 3 requires identification information of the user's web browser prior to providing information or as part of the process of providing information. means. For example, in cases where transmission of web browser information is necessary, the information providing server 3 may request a security attribute value, such as a security token, that can only be created through a web browser. Financial institutions often operate a Fraud Detection System (FDS) to block abnormal access to information, and FDS is used to prepare for network attacks such as Distributed Denial of Service attacks (DDoS). For this purpose, security attribute values generated by browser fingerprinting can be requested.

정보 스크래핑을 위하여 웹 브라우저에 의한 정보의 수신 또는 송신이 필요한 것으로 결정되면, 사용자 장치(2)의 데이터 스크래핑 모듈은 정보 제공 서버(3)와의 통신을 위한 세션 정보를 웹 브라우저에 전달할 수 있다(S103). 일 실시예에서, 웹 브라우저는 전술한 데이터 스크래핑 모듈과 마찬가지로 사용자 장치(2) 내에 저장되거나 구현되며 사용자 장치(2)를 통해 실행되는 것일 수 있다. 그러나 다른 실시예에서는, 사용자 장치(2)는 데이터 스크래핑 방식으로만 정보를 수집할 수 있도록 구성되며, 웹 브라우저는 사용자 장치(2)가 아닌 스크래핑 서비스 서버(1)를 통하여 실행되도록 구성될 수도 있다. If it is determined that reception or transmission of information by a web browser is necessary for information scraping, the data scraping module of the user device 2 may transmit session information for communication with the information provision server 3 to the web browser (S103 ). In one embodiment, the web browser, like the data scraping module described above, may be stored or implemented within the user device 2 and executed through the user device 2. However, in another embodiment, the user device 2 is configured to collect information only by data scraping, and the web browser may be configured to run through the scraping service server 1 rather than the user device 2. .

사용자 장치(2) 또는 스크래핑 서비스 서버(1)에 구비된 것으로서, 웹 브라우저를 실행 가능한 브라우저 스크래핑 모듈은, 데이터 스크래핑 모듈로부터 전달받은 세션 정보를 이용하여 웹 브라우저를 실행함으로써, 웹 브라우저가 정보 제공 서버(3)에 대한 접속 및 사용자 인증 등을 자동으로 수행하도록 한다(S104). 이를 통하여, 사용자 장치(2) 또는 스크래핑 서비스 서버(1)에서 실행되는 웹 브라우저는 사용자에 의한 별도의 조작 없이 정보 제공 서버(3)가 제공하는 웹 사이트 등에 자동으로 접속하여 사용자가 요청한 정보 또는 사용자가 요청한 정보를 획득하기 위하여 요구되는 정보 속성 값을 수신할 수 있다. The browser scraping module, which is provided in the user device (2) or the scraping service server (1) and capable of executing a web browser, executes the web browser using the session information received from the data scraping module, so that the web browser acts as an information provision server. (3) Connection and user authentication are performed automatically (S104). Through this, the web browser running on the user device (2) or the scraping service server (1) automatically connects to the website provided by the information provision server (3) without any separate operation by the user and provides information requested by the user or the user. The information attribute value required to obtain the requested information can be received.

이상의 동작은, 사용자 장치(2) 또는 스크래핑 서비스 서버(1)에서 웹 자동화 프레임워크인 웹 드라이버(web driver)를 실행하는 방식으로 수행될 수 있다. 이때, 웹 드라이버는 사용자 장치(2)의 데이터 스크래핑 모듈과 세션 정보를 공유하기 위하여 자바스크립트(Java script), 세션 스토리지(session storage), 쿠키(cookie) 데이터, 문서객체모델(Document Object Model; DOM) 데이터 등을 데이터 스크래핑 모듈과 주고받을 수 있도록 구성된다. The above operation can be performed by executing a web driver, a web automation framework, on the user device (2) or the scraping service server (1). At this time, the web driver uses Java script, session storage, cookie data, and Document Object Model (DOM) to share session information with the data scraping module of the user device (2). ) It is configured to exchange data, etc. with the data scraping module.

웹 드라이버는 하나 이상의 운영체제에 상응하는 가상화된 환경을 구성하고 상기 운영체제 상에서 동작하는 웹 브라우저를 실행할 수 있도록 하는 기능을 한다. 예컨대, 서로 동일 또는 상이한 운영체제 상에서 동작하는 복수의 웹 브라우저가 웹 드라이버를 통하여 하나의 컴퓨팅 장치(사용자 장치(2) 또는 스크래핑 서비스 서버(1))에서 실행될 수 있다. 따라서, 스크래핑이 실행되는 장치의 운영체제별로 별도의 스크래핑 모듈을 개발할 필요 없이, 웹 드라이버의 구동이 가능하며 플랫폼에 독립적인 하나의 스크립트를 개발하면 임의의 웹 브라우저 환경을 구현하여 정보의 스크래핑이 가능한 이점이 있다.The web driver functions to configure a virtualized environment corresponding to one or more operating systems and execute a web browser running on the operating systems. For example, a plurality of web browsers operating on the same or different operating systems can be executed on one computing device (user device 2 or scraping service server 1) through a web driver. Therefore, without the need to develop a separate scraping module for each operating system of the device on which scraping is performed, the web driver can be driven and by developing a platform-independent script, the advantage is that information can be scraped by implementing an arbitrary web browser environment. There is.

일 실시예에서, 웹 드라이버는 사용자 장치(2)에 의하여 실행되며, 사용자 장치(2) 내에서 데이터 스크래핑 모듈로부터 웹 드라이버에 의해 생성된 가상화된 웹 환경으로 세션 정보가 전달됨으로써 웹 브라우저에 의한 스크래핑이 이루어진다.In one embodiment, the web driver is executed by the user device 2, and session information is passed from the data scraping module within the user device 2 to the virtualized web environment created by the web driver, thereby preventing scraping by the web browser. This comes true.

그러나 다른 실시예에서, 웹 드라이버는 스크래핑 서비스 서버(1)에 의하여 실행되며, 스크래핑 서비스 서버(1)는 가상화된 환경 내에서 웹 브라우저를 이용하여 정보를 스크래핑할 수 있다. 또는, 스크래핑 서비스 서버(1)에 의하여 실행된 가상 웹 환경에 상응하는 화면 데이터가 사용자 장치(2)에 전송되어, 사용자 장치(2)에 웹 드라이버가 직접 설치되지 있지 않더라도 사용자가 사용자 장치(2)를 통하여 스크래핑 서비스 서버(1) 내의 웹 환경을 모니터링 또는 원격 제어하는 것도 가능하다. However, in another embodiment, the web driver is executed by the scraping service server 1, and the scraping service server 1 can scrape information using a web browser within a virtualized environment. Alternatively, screen data corresponding to the virtual web environment executed by the scraping service server 1 is transmitted to the user device 2, so that the user can use the user device 2 even if the web driver is not directly installed on the user device 2. It is also possible to monitor or remotely control the web environment within the scraping service server (1) through ).

일 실시예에서, 웹 브라우저를 이용한 정보 수집은 데이터 스크래핑 방식으로 정보를 수집하는 과정의 일 부분으로 포함될 수 있다. 예를 들면, 이미지, 오디오 등 미디어 컨텐츠에 상응하는 보안 속성 값을 요구하는 reCAPTCHA의 경우, 미디어 컨텐츠의 통신을 웹 브라우저가 수행하여 일회성 인증을 위한 미디어 컨텐츠를 수신하면(S105), 웹 브라우저는 획득한 미디어 컨텐츠를 정보 속성 값으로서 데이터 스크래핑 모듈에 전달할 수 있다. 미디어 컨텐츠를 취득한 데이터 스크래핑 모듈은 이를 이용하여 보안 토큰 값의 추출 및 전송 등을 수행함으로써 정보 제공 서버(3)와 연결된 데이터 스크래핑 세션을 생성하고(S106), 정보 제공 서버(3)로부터 필요한 정보를 수신하여 사용자의 정보 스크래핑 요청에 대한 응답 값을 생성할 수 있다. In one embodiment, information collection using a web browser may be included as part of the process of collecting information through data scraping. For example, in the case of reCAPTCHA, which requires security attribute values corresponding to media content such as images and audio, when a web browser performs communication of media content and receives media content for one-time authentication (S105), the web browser obtains One media content can be passed to the data scraping module as an information attribute value. The data scraping module that acquires the media content uses it to extract and transmit the security token value, thereby creating a data scraping session connected to the information provision server (3) (S106) and collecting the necessary information from the information provision server (3). By receiving it, a response value for the user's information scraping request can be generated.

이상에서 설명한 실시예에 따르면, 사용자 장치(2)에서 실행되는 데이터 스크래핑 모듈과 정보 제공 기관(3) 사이의 통신의 특성에 따라, 보안 토큰값의 생성 등 웹 브라우저의 기능이 요구되는 일부 구간에서는 웹 브라우저에 의한 스크래핑이 이루어지고 나머지 구간에서는 데이터 스크래핑 모듈에 의하여 기능이 구현됨으로써 정보 스크래핑의 성능과 안정성을 동시에 확보할 수 있다. According to the embodiment described above, depending on the nature of communication between the data scraping module running on the user device 2 and the information providing organization 3, in some sections where the function of a web browser is required, such as generating a security token value. Scraping is performed by a web browser, and in the remaining sections, the function is implemented by a data scraping module, thereby ensuring the performance and stability of information scraping at the same time.

한편 다른 실시예에서, 데이터 스크래핑 모듈은 사용자로부터 웹 브라우저에 기반한 작업 요청이 별도로 수신되는 것에 대한 응답으로, 웹 브라우저에 의한 정보의 수신 또는 송신이 필요한 것으로 결정할 수도 있다(S102). 예를 들어, 데이터가 시간 순으로 반영되지 않는 정보, 조회 횟수가 제한되어 있는 정보, 또는 사용자 반응형 인터페이스를 통해 제공되는 정보의 경우, 사용자가 이러한 정보의 조회를 요청하는 것에 대한 응답으로 해당 정보의 조회를 위한 웹 환경을 브라우저 실행함으로써 사용자가 웹 브라우저를 이용하여 추가 업무를 하도록 도울 수 있다. 예를 들어, 사용자가 수행하는 추가 업무에는 데이터 스크래핑 내역과 실제 화면 내역의 대조, 금융인증서 등 보안에 민감한 정보의 처리 등이 있으나, 이에 한정되는 것은 아니다. Meanwhile, in another embodiment, the data scraping module may determine that reception or transmission of information by the web browser is necessary in response to separately receiving a web browser-based task request from the user (S102). For example, if the data is not reflected in chronological order, the number of views is limited, or information is provided through a user-responsive interface, the information is provided in response to a user requesting to view such information. By running a web environment for inquiry in the browser, you can help users do additional work using the web browser. For example, additional tasks performed by users include, but are not limited to, comparing data scraping details with actual screen details, and processing security-sensitive information such as financial certificates.

도 3은 본 명세서의 일실시예에 있어서 컴퓨팅 장치의 내부 구성을 설명하기 위한 블록도이다. 도 3에 도시된 컴퓨팅 장치(200)는 도 1을 참조하여 상술한 하나 이상의 사용자 장치(2) 또는 스크래핑 서비스 서버(1) 중 임의의 장치에 적용될 수 있으며, 각 장치와 서버들은 일부 구성요소를 더 하거나 제외하여 구성됨으로써 동일하거나 유사한 내부 구성을 가질 수 있다. Figure 3 is a block diagram for explaining the internal configuration of a computing device according to an embodiment of the present specification. The computing device 200 shown in FIG. 3 may be applied to any of the one or more user devices 2 or the scraping service server 1 described above with reference to FIG. 1, and each device and server may include some components. It can have the same or similar internal configuration by adding or excluding it.

도 1 및 도 3을 참조하면, 컴퓨팅 장치(200)는 메모리(210), 프로세서(220), 통신 모듈(230) 그리고 입출력부(240)를 포함할 수 있다. 메모리(210)는 비-일시적인 컴퓨터 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory), 디스크 드라이브, SSD(solid state drive), 플래시 메모리(flash memory) 등과 같은 비소멸성 대용량 저장 장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM, SSD, 플래시 메모리, 디스크 드라이브 등과 같은 비소멸성 대용량 저장 장치는 메모리(210)와는 구분되는 별도의 영구 저장 장치로서 상술한 장치나 서버에 포함될 수도 있다. Referring to FIGS. 1 and 3 , the computing device 200 may include a memory 210, a processor 220, a communication module 230, and an input/output unit 240. The memory 210 is a non-transitory computer-readable recording medium, and is a non-perishable large capacity device such as random access memory (RAM), read only memory (ROM), disk drive, solid state drive (SSD), flash memory, etc. It may include a permanent mass storage device. Here, non-perishable mass storage devices such as ROM, SSD, flash memory, disk drive, etc. may be included in the above-mentioned device or server as a separate persistent storage device that is distinct from the memory 210.

또한, 메모리(210)에는 운영체제와 적어도 하나의 프로그램 코드(일례로 사용자 장치(2) 등에 설치되어 구동되는 스크래핑 모듈이나 특정 서비스의 제공을 위해 사용자 장치(2) 등에 설치된 애플리케이션 등을 위한 코드)가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(210)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. In addition, the memory 210 includes an operating system and at least one program code (for example, a scraping module installed and driven on the user device 2, etc., or code for an application installed on the user device 2, etc. to provide a specific service). It can be saved. These software components may be loaded from a computer-readable recording medium separate from the memory 210. Such separate computer-readable recording media may include computer-readable recording media such as floppy drives, disks, tapes, DVD/CD-ROM drives, and memory cards.

다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신 모듈(230)을 통해 메모리(210)에 로딩될 수도 있다. 예를 들어, 적어도 하나의 프로그램은 개발자들 또는 애플리케이션의 설치 파일을 배포하는 파일 배포 시스템(일례로, 스크래핑 서비스 서버(1))이 네트워크를 통해 제공하는 파일들에 의해 설치되는 컴퓨터 프로그램에 기반하여 메모리(210)에 로딩될 수 있다.In another embodiment, software components may be loaded into the memory 210 through the communication module 230 rather than a computer-readable recording medium. For example, at least one program is based on a computer program installed by files provided over a network by developers or a file distribution system that distributes the installation file of the application (e.g., scraping service server 1). It may be loaded into memory 210.

프로세서(220)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(210) 또는 통신 모듈(230)에 의해 프로세서(220)로 제공될 수 있다. 예를 들어 프로세서(220)는 메모리(210)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.The processor 220 may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input/output operations. Commands may be provided to the processor 220 by the memory 210 or the communication module 230. For example, processor 220 may be configured to execute received instructions according to program code stored in a recording device such as memory 210.

통신 모듈(230)은 네트워크를 통해 사용자 장치(2)가 스크래핑 서비스 서버(1) 및/또는 정보 제공 서버(3)와 통신하기 위한 기능을 제공할 수 있다. 또한, 스크래핑 서비스 서버(1)가 도 3에 도시된 컴퓨팅 장치(200)의 형태로 구현되는 경우, 통신 모듈(230)은 스크래핑 서비스 서버(1)가 정보 제공 서버(3)와 통신하기 위한 기능을 제공할 수 있다. 즉, 통신 모듈(230)은 메모리(210)를 참조하는 프로세서(220)에 의하여 그 기능이 제어됨으로써, 도 2를 참조하여 전술한 데이터 스크래핑 모듈 및/또는 브라우저 스크래핑 모듈을 실현하는 부분이다. The communication module 230 may provide a function for the user device 2 to communicate with the scraping service server 1 and/or the information provision server 3 through a network. In addition, when the scraping service server 1 is implemented in the form of the computing device 200 shown in FIG. 3, the communication module 230 has a function for the scraping service server 1 to communicate with the information providing server 3. can be provided. That is, the communication module 230 is a part that realizes the data scraping module and/or browser scraping module described above with reference to FIG. 2 by having its function controlled by the processor 220 that refers to the memory 210.

입출력부(240)는 외부 입력/출력장치(미도시)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 외부 입력장치는 키보드, 마우스, 마이크로폰, 카메라 등의 장치를, 그리고 외부 출력 장치는 디스플레이, 스피커, 햅틱 피드백 장치(haptic feedback device) 등과 같은 장치를 포함할 수 있다. 다른 예로 입출력부(240)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. The input/output unit 240 may be a means for interfacing with an external input/output device (not shown). For example, external input devices may include devices such as a keyboard, mouse, microphone, and camera, and external output devices may include devices such as a display, speaker, and haptic feedback device. As another example, the input/output unit 240 may be a means for interfacing with a device that integrates input and output functions into one, such as a touch screen.

또한, 다른 실시예들에서 컴퓨팅 장치(200)는 적용되는 장치의 성질에 따라서 도 3의 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다. 예를 들어, 컴퓨팅 장치(200)가 사용자 장치(2)에 적용되는 경우 상술한 입출력 장치 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), GPS(Global Positioning System) 모듈, 카메라, 각종 센서, 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다. 보다 구체적인 예로, 사용자 장치가 스마트폰인 경우, 일반적으로 스마트폰이 포함하고 있는 가속도 센서나 자이로 센서, 카메라 모듈, 각종 물리적인 버튼, 터치패널을 이용한 버튼, 입출력 포트, 진동을 위한 진동기 등의 다양한 구성요소들이 더 포함되도록 구현될 수 있다.Additionally, in other embodiments, computing device 200 may include more components than those of FIG. 3 depending on the nature of the device to which it is applied. For example, when the computing device 200 is applied to the user device 2, it is implemented to include at least some of the above-described input/output devices, or a transceiver, a Global Positioning System (GPS) module, a camera, various sensors, It may further include other components such as a database, etc. As a more specific example, if the user device is a smartphone, the smartphone generally includes various devices such as acceleration sensors, gyro sensors, camera modules, various physical buttons, buttons using a touch panel, input/output ports, and vibrators for vibration. It can be implemented to include more components.

이하에서 설명하는 정보 스크래핑 방법은, 도 3을 참조하여 전술한 컴퓨팅 장치의 형태로 구현된 사용자 장치(2) 및/또는 스크래핑 서비스 서버(1)에 의하여 수행될 수 있다. 일 예로, 정보 스크래핑 서비스는 사용자 장치(2) 및/또는 스크래핑 서비스 서버(1)에 기초하여 동작하는 애플리케이션, 소프트웨어 및 그 밖의 프로그램 중 적어도 어느 하나에 기초하여 사용자에게 제공될 수 있다. 일 예로, 사용자는 사용자 장치(2)에 정보 스크래핑을 요청할 수 있다. 사용자 장치(2)는, 사용자 장치(2)에 탑재된 데이터 스크래핑 모듈 및 브라우저 스크래핑 모듈을 하이브리드(hybrid) 방식으로 구동시키거나, 또는 데이터 스크래핑을 수행하되 웹 브라우저에 의한 스크래핑이 필요한 구간에 대해서는 스크래핑 서비스 서버(1)를 호출하는 방식으로 하이브리드 방식의 데이터 스크래핑을 수행할 수 있다. 이와 같이 하이브리드 방식의 데이터 스크래핑을 통해 획득된 정보는, 사용자의 스크래핑 요청에 상응하는 응답 값으로 사용자에게 제공될 수 있다. 예를 들어, 응답 값은 사용자 장치(2)의 디스플레이 상에 표시되거나 또는 사용자 장치(2)로부터 다른 장치에 전송될 수 있다. The information scraping method described below may be performed by the user device 2 and/or the scraping service server 1 implemented in the form of the computing device described above with reference to FIG. 3. As an example, the information scraping service may be provided to the user based on at least one of an application, software, and other programs that operate based on the user device 2 and/or the scraping service server 1. As an example, the user may request information scraping from the user device 2. The user device 2 operates the data scraping module and the browser scraping module mounted on the user device 2 in a hybrid method, or performs data scraping, but scrapes only the sections requiring scraping by a web browser. Hybrid data scraping can be performed by calling the service server (1). In this way, information obtained through hybrid data scraping can be provided to the user as a response value corresponding to the user's scraping request. For example, the response value may be displayed on a display of the user device 2 or transmitted from the user device 2 to another device.

도 4는 본 명세서의 다른 실시예에 따른 정보 스크래핑 방법의 각 단계를 나타내는 순서도이다. Figure 4 is a flowchart showing each step of the information scraping method according to another embodiment of the present specification.

도 4를 참조하면, 본 실시예에서 사용자 장치(2)는 데이터 스크래핑 모듈(231) 및 브라우저 스크래핑 모듈(232)을 모두 포함한다. 데이터 스크래핑 모듈(231)은 API 등 정보 제공 서버(3)와 사전에 규약된 방식으로 정보 제공 서버(3)와 통신함으로써 정보 제공 서버(3)로부터 정보를 수신하도록 구성된다. 본 명세서에서, 이때 데이터 스크래핑 모듈(231)과 정보 제공 서버(3)의 통신 세션은 제1 통신 세션으로도 지칭된다. Referring to FIG. 4, in this embodiment, the user device 2 includes both a data scraping module 231 and a browser scraping module 232. The data scraping module 231 is configured to receive information from the information provision server 3 by communicating with the information provision server 3 in a pre-defined manner, such as an API. In this specification, the communication session between the data scraping module 231 and the information providing server 3 at this time is also referred to as a first communication session.

한편, 브라우저 스크래핑 모듈(232)은 웹 브라우저를 실행하여 정보 제공 서버(3)가 제공하는 웹 사이트에 접속하는 방식으로 정보 제공 서버(3)로부터 정보를 수신하도록 구성된다. 사용자 장치(2)는 도 3을 참조하여 전술한 것과 같은 컴퓨팅 장치(200)로 구현될 수 있으며, 데이터 스크래핑 모듈(231)은 브라우저 스크래핑 모듈(232)은 통신 모듈(230)의 일부를 구성할 수 있다. Meanwhile, the browser scraping module 232 is configured to receive information from the information provision server 3 by executing a web browser and accessing a website provided by the information provision server 3. The user device 2 may be implemented as a computing device 200 as described above with reference to FIG. 3, and the data scraping module 231 and the browser scraping module 232 may form part of the communication module 230. You can.

본 실시예에서, 데이터 스크래핑 모듈(231)은 제1 통신 세션을 통하여 정보 제공 서버(3)에 API 등에 기반한 데이터 스크래핑을 요청할 수 있다(S201). 다음으로, 데이터 스크래핑 모듈(231)은 요청에 대한 정보 제공 서버(3)의 응답을 수신하고(S202), 정보 제공 서버(3)의 응답이 웹 브라우저의 식별 정보를 요청하는 것이거나 또는 웹 브라우저를 통해 수신하지 않고는 정보의 확인이 어려운 것일 경우, 데이터 스크래핑을 위한 세션 정보를 브라우저 스크래핑 모듈(232)에 공유할 수 있다. In this embodiment, the data scraping module 231 may request data scraping based on API or the like from the information providing server 3 through the first communication session (S201). Next, the data scraping module 231 receives the response of the information provision server 3 to the request (S202), and the response of the information provision server 3 is a request for identification information of the web browser or the web browser. If it is difficult to confirm the information without receiving it through , session information for data scraping can be shared with the browser scraping module 232.

이때 공유되는 세션 정보란, 별도의 사용자 입력이 없이 웹 브라우저가 바로 필요한 업무 화면으로 이동할 수 있도록 웹 브라우저에서 읽어들이거나 로드(load) 가능한 정보를 의미하는 것으로, 예를 들어 정보 제공 서버(3)에 대한 URL(Uniform Resource Locator) 등 접속 정보 및/또는 쿠키 데이터 등일 수 있으나 이에 한정되는 것은 아니다. At this time, the shared session information refers to information that can be read or loaded by the web browser so that the web browser can immediately move to the required work screen without separate user input. For example, the information provision server (3) It may be access information such as URL (Uniform Resource Locator) and/or cookie data, but is not limited to this.

브라우저 스크래핑 모듈(232)에서는 세션 정보를 이용하여 웹 사이트를 실행하고 정보 제공 서버(3)에 접속함으로써, 정보 제공 서버(3)가 웹 사이트를 통해 제공하는 정보를 방식으로 수신하고(S204), 수신한 정보 속성 값을 데이터 스크래핑 모듈(231)에 전달할 수 있다(S205). 예를 들어, 브라우저 스크래핑 모듈(232)은 스크린 스크래핑(screen scraping) 방식으로 정보 제공 서버(3)로부터 정보를 수신할 수도 있다. The browser scraping module 232 executes a website using session information and connects to the information provision server 3, thereby receiving information provided by the information provision server 3 through the website (S204). The received information attribute value may be transmitted to the data scraping module 231 (S205). For example, the browser scraping module 232 may receive information from the information provision server 3 using a screen scraping method.

일 실시예에서, 브라우저 스크래핑 모듈(232)이 웹 브라우저를 실행함으로써 이루어지는 스크래핑 과정은 사용자 장치(2)의 사용자가 확인할 수 있도록 사용자 장치(2)의 디스플레이 등에 표시되는 상태에서 이루어질 수 있다. 그러나 이는 예시적인 것으로, 다른 실시예에서 브라우저 스크래핑 모듈(232)은 웹 브라우저의 실행 상태를 사용자 인터페이스에 노출하지 않은 상태로 백그라운드에서 웹 브라우저를 실행함으로써 정보를 스크래핑하는 것도 가능하다. In one embodiment, the scraping process performed by the browser scraping module 232 executing a web browser may be performed while being displayed on the display of the user device 2 so that the user of the user device 2 can check it. However, this is an example, and in another embodiment, the browser scraping module 232 may scrape information by running a web browser in the background without exposing the execution state of the web browser to the user interface.

웹 브라우저에 의한 스크래핑을 통해 수신되는 정보 속성 값은, 사용자가 요청한 정보를 정보 제공 서버(3)로부터 획득하기 위해 요구되는 쿠키 데이터, 로컬 저장소의 특정 키(key) 및/또는 값, 웹 사용자 인터페이스 구성요소의 값 또는 미디어(이미지, 사운드 등) 컨텐츠 내용, 또는 정보 제공 서버(3)가 제공하는 데이터를 웹 브라우저에서 렌더링한 결과 생성되는 데이터(예컨대, 화면 데이터) 등일 수 있다. Information attribute values received through scraping by a web browser include cookie data required to obtain the information requested by the user from the information provision server (3), a specific key and/or value of local storage, and the web user interface. It may be the value of a component or media (image, sound, etc.) content, or data (e.g., screen data) generated as a result of rendering data provided by the information provision server 3 in a web browser.

데이터 스크래핑 모듈(231)은, 웹 브라우저로부터 전달받은 정보 속성 값을 정보 제공 서버(3)에 전송하여(S206), 사용자가 요청한 정보를 정보 제공 서버(3)로부터 데이터 스크래핑 방식으로 수신할 수 있다(S207). 본 명세서에서, 이와 같이 정보 속성 값을 이용하여 생성되는 데이터 스크래핑 모듈(231)과 정보 제공 서버(3) 사이의 통신 세션은 제2 통신 세션으로도 지칭된다. 이때, 정보 제공 서버(3)에 전송되는 정보 속성 값은 FDS 인증을 위한 보안 토큰 값 등일 수 있으나, 이에 한정되는 것은 아니다. The data scraping module 231 transmits the information attribute value received from the web browser to the information providing server 3 (S206), and can receive the information requested by the user from the information providing server 3 through data scraping. (S207). In this specification, the communication session between the data scraping module 231 and the information providing server 3 created using the information attribute value in this way is also referred to as a second communication session. At this time, the information attribute value transmitted to the information providing server 3 may be a security token value for FDS authentication, but is not limited thereto.

도 5는 본 명세서의 또 다른 실시예에 따른 정보 스크래핑 방법의 각 단계를 나타내는 순서도이다. 도 4를 참조하여 전술한 실시예와 달리, 도 5에 도시된 실시예에서 사용자 장치(2)에는 데이터 스크래핑 모듈(231)만이 탑재된다. 한편, 웹 브라우저를 실행 가능한 브라우저 스크래핑 모듈(100)이 탑재된 스크래핑 서비스 서버(1)가 사용자 장치(2)와 통신 가능하게 구성된다. Figure 5 is a flowchart showing each step of the information scraping method according to another embodiment of the present specification. Unlike the embodiment described above with reference to FIG. 4, in the embodiment shown in FIG. 5, only the data scraping module 231 is mounted on the user device 2. Meanwhile, a scraping service server 1 equipped with a browser scraping module 100 capable of executing a web browser is configured to communicate with the user device 2.

도 5를 참조하면, 사용자 장치(2)는 데이터 스크래핑 모듈(231)을 통하여 정보 제공 서버(3)에 정보를 요청하고(S301), 정보 제공 서버(3)로부터 수신된 응답(S302)이 웹 브라우저의 식별 정보를 요청하는 것이거나 또는 웹 브라우저를 통해 수신하지 않고는 정보의 확인이 어려운 것일 경우, 데이터 스크래핑을 위한 세션 정보를 스크래핑 서비스 서버(1)에 전송할 수 있다(S303). 스크래핑 서비스 서버(1)는 웹 브라우저를 실행하여 정보 제공 서버(3)로부터 정보 속성 값을 취득하며(S304), 취득한 정보 속성 값을 사용자 장치(2)에 전송할 수 있다(S305). Referring to FIG. 5, the user device 2 requests information from the information provision server 3 through the data scraping module 231 (S301), and the response received from the information provision server 3 (S302) is web If identification information of the browser is requested or the information is difficult to confirm without receiving it through a web browser, session information for data scraping can be transmitted to the scraping service server 1 (S303). The scraping service server 1 executes a web browser to acquire information attribute values from the information provision server 3 (S304), and transmits the acquired information attribute values to the user device 2 (S305).

일 실시예에서, 사용자 장치(2)는 스크래핑 서비스 서버(1)의 웹 브라우저를 제어하기 위한 사용자 인터페이스를 데이터 스크래핑 모듈(231)의 사용자 인터페이스 내에서 노출시킬 수 있다. 예를 들어, 사용자는 데이터 스크래핑을 위한 소프트웨어 애플리케이션 내에서 별도의 창(window) 또는 팝업(pop-up) 등의 형태로 제공되는 제어 인터페이스를 통하여 웹 브라우저를 통한 스크래핑 상태를 확인하거나 또는 직접 웹 브라우저를 제어할 수 있다. In one embodiment, the user device 2 may expose a user interface for controlling the web browser of the scraping service server 1 within the user interface of the data scraping module 231. For example, the user can check the scraping status through a web browser through a control interface provided in the form of a separate window or pop-up within the software application for data scraping, or directly through the web browser. can be controlled.

다음으로, 일 실시예에서 사용자 장치(2)는 스크래핑 서비스 서버(1)로부터 수신한 정보 속성 값을 정보 제공 서버(3)에 전송함으로써 사용자가 요청한 정보를 정보 제공 서버(3)로부터 데이터 스크래핑 방식으로 수신할 수 있다(S306, S307). Next, in one embodiment, the user device 2 transmits the information attribute value received from the scraping service server 1 to the information provision server 3 to obtain the information requested by the user from the information provision server 3 through a data scraping method. It can be received (S306, S307).

도 5에 도시된 실시예에서, 데이터 스크래핑 모듈(231)에 의한 정보 수신과 이에 의해 호출되는 브라우저 스크래핑 모듈(100)에 의한 정보 수신은 서로 순차적으로 이루어지는 것으로 설명되었다. 그러나 이는 예시적인 것으로, 다른 실시예에서는 API 등을 통한 데이터 스크래핑과 웹 브라우저를 통한 스크래핑이 서로 동시에 수행되는 것도 가능하다. In the embodiment shown in FIG. 5, the reception of information by the data scraping module 231 and the reception of information by the browser scraping module 100 called by the data scraping module 231 have been described as being sequentially performed. However, this is an example, and in other embodiments, data scraping through an API, etc. and scraping through a web browser can be performed simultaneously.

예를 들어, 본 실시예에서 데이터 스크래핑 모듈(231)은 사용자가 요청한 데이터를 API 등 데이터 스크래핑을 통해 수집 가능한 제1 데이터 및 웹 브라우저를 통해 수집 가능한 제2 데이터로 분류하고, 제1 데이터에 대해서는 데이터 스크래핑 모듈(231)이 정보 제공 서버(3)로부터 정보를 수신하되, 제2 데이터에 대해서는 스크래핑 서비스 서버(1)를 호출하는 방식으로 정보 수신을 요청할 수 있다. 이때 스크래핑 서비스 서버(1)는 사용자 장치(2)의 동작 상태와 독립적으로 웹 브라우저를 실행함으로써 정보 제공 서버(3)로부터 제2 데이터를 수집하여 사용자 장치(2)에 전달할 수 있다. 사용자 장치(2)에서는, 사용자 장치(2)가 직접 수신한 제1 데이터와 스크래핑 서비스 서버(1)로부터 수신한 제2 데이터를 결합함으로써 사용자에게 제공되기 위한 응답 값을 생성할 수 있다. For example, in this embodiment, the data scraping module 231 classifies the data requested by the user into first data that can be collected through data scraping such as API and second data that can be collected through a web browser, and for the first data The data scraping module 231 may receive information from the information providing server 3, but may request to receive information by calling the scraping service server 1 for the second data. At this time, the scraping service server 1 can collect the second data from the information providing server 3 and transmit it to the user device 2 by running a web browser independently of the operating state of the user device 2. The user device 2 may generate a response value to be provided to the user by combining the first data directly received by the user device 2 and the second data received from the scraping service server 1.

또한 일 실시예에서, 스크래핑 서비스 서버(1)는 웹 브라우저에 의한 정보 스크래핑을 통해 생성된 정보 속성 값, 예컨대, 쿠키 데이터 등을 미리 설정된 시간 동안 저장할 수 있다. 이는 근시일 내에 사용자 장치(2)로부터 동일한 정보 제공 서버(3)로부터 정보 수집이 요청되는 경우, 웹 브라우저를 다시 실행할 필요 없이 기존에 생성된 정보 속성 값을 사용자 장치(2)에 다시 전송하는 방식으로 빠른 응답을 가능하게 하기 위한 것이다. 예를 들어, 스크래핑 서비스 서버(1)는 하나 이상의 웹 사이트에 대한 사용자 인증을 통하여 생성된 쿠키 데이터를 각각의 웹 사이트별로 저장하고 있으며, 사용자 장치(2)로부터 특정 웹 사이트로부터의 정보 수집이 요청되는 경우 사전에 저장된 쿠키 데이터를 정보 속성 값으로서 전달할 수 있다.Additionally, in one embodiment, the scraping service server 1 may store information attribute values, such as cookie data, generated through information scraping by a web browser for a preset time. This is a method of transmitting previously created information attribute values back to the user device (2) without the need to re-run the web browser when information collection is requested from the same information provision server (3) from the user device (2) in the near future. This is to enable a quick response. For example, the scraping service server (1) stores cookie data generated through user authentication for one or more websites for each website, and the user device (2) requests information collection from a specific website. If possible, pre-stored cookie data can be transmitted as an information attribute value.

이상에서 설명한 실시예들은 적어도 부분적으로 컴퓨터 프로그램으로 구현되고 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다. 실시예들을 구현하기 위한 프로그램이 기록되고 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터에 의하여 읽혀 질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 광 데이터 저장장치 등이 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다. 또한, 본 실시예를 구현하기 위한 기능적인 프로그램, 코드 및 코드 세그먼트(segment)들은 본 실시예가 속하는 기술 분야의 통상의 기술자에 의해 용이하게 이해될 수 있을 것이다.The embodiments described above can be implemented at least partially as a computer program and recorded on a computer-readable recording medium. Computer-readable recording media on which programs for implementing embodiments are recorded include all types of recording devices that store data that can be read by a computer. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, and optical data storage devices. Additionally, computer-readable recording media may be distributed across computer systems connected to a network, and computer-readable codes may be stored and executed in a distributed manner. Additionally, functional programs, codes, and code segments for implementing this embodiment can be easily understood by those skilled in the art to which this embodiment belongs.

이상에서 살펴본 본 명세서는 도면에 도시된 실시예들을 참고로 하여 설명하였으나 이는 예시적인 것에 불과하며 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 실시예의 변형이 가능하다는 점을 이해할 것이다. 그러나, 이와 같은 변형은 본 명세서의 기술적 보호범위 내에 있다고 보아야 한다. 따라서, 본 명세서의 진정한 기술적 보호범위는 첨부된 청구범위의 기술적 사상에 의해서 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 포함하도록 정해져야 할 것이다.Although the above-described specification has been described with reference to the embodiments shown in the drawings, these are merely illustrative examples, and those skilled in the art will understand that various modifications and modifications of the embodiments are possible therefrom. However, such modifications should be considered within the scope of technical protection of this specification. Therefore, the true technical protection scope of the present specification should be determined to include other implementations, other embodiments, and those equivalent to the claims according to the technical spirit of the appended claims.

Claims (15)

데이터 스크래핑 모듈이, 정보 제공 서버에 연결된 제1 통신 세션을 통하여 상기 정보 제공 서버에 정보 스크래핑을 요청하는 단계;
상기 데이터 스크래핑 모듈이, 상기 정보 제공 서버로부터 수신된 응답에 기초하여, 정보 스크래핑을 위해 웹 브라우저 정보의 송신 또는 상기 웹 브라우저에 의한 정보 수신이 필요한 것으로 결정하는 단계;
상기 데이터 스크래핑 모듈이, 상기 제1 통신 세션에 상응하는 세션 정보를, 웹 브라우저를 실행 가능한 브라우저 스크래핑 모듈에 전달하는 단계; 및
상기 데이터 스크래핑 모듈이, 상기 웹 브라우저가 상기 세션 정보를 이용하여 상기 정보 제공 서버로부터 스크래핑한 정보 속성 값을 상기 브라우저 스크래핑 모듈로부터 수신하는 단계를 포함하는 정보 스크래핑 방법.
A data scraping module requesting information scraping from the information provision server through a first communication session connected to the information provision server;
determining, by the data scraping module, that transmission of web browser information or reception of information by the web browser is necessary for information scraping, based on a response received from the information provision server;
transmitting, by the data scraping module, session information corresponding to the first communication session to a browser scraping module executable in a web browser; and
An information scraping method comprising receiving, by the data scraping module, an information attribute value scraped by the web browser from the information providing server using the session information from the browser scraping module.
제1항에 있어서,
상기 브라우저 스크래핑 모듈이 상기 세션 정보를 이용하여 상기 웹 브라우저를 실행함으로써 상기 정보 제공 서버로부터 상기 정보 속성 값을 스크래핑하는 단계를 더 포함하는 정보 스크래핑 방법.
According to paragraph 1,
The information scraping method further includes the step of the browser scraping module scraping the information attribute value from the information provision server by executing the web browser using the session information.
제2항에 있어서,
상기 정보 속성 값은, 쿠키 데이터, 저장소 식별 데이터, 웹 사용자 인터페이스 구성요소 데이터 및 렌더링 결과 데이터 중 하나 이상을 포함하는 정보 스크래핑 방법.
According to paragraph 2,
The information attribute value includes one or more of cookie data, storage identification data, web user interface component data, and rendering result data.
제2항에 있어서,
상기 정보 속성 값을 스크래핑하는 단계는, 상기 웹 브라우저가 상기 정보 제공 서버로부터 수신한 데이터를 상기 정보 속성 값으로 렌더링하는 단계를 포함하는 정보 스크래핑 방법.
According to paragraph 2,
The step of scraping the information attribute value includes rendering data received from the information provision server by the web browser as the information attribute value.
제2항에 있어서,
상기 정보 속성 값을 스크래핑하는 단계는, 상기 웹 브라우저가 상기 웹 브라우저의 식별 정보를 상기 정보 제공 서버에 전송하는 단계를 더 포함하는 정보 스크래핑 방법.
According to paragraph 2,
The scraping of the information attribute value further includes the step of the web browser transmitting identification information of the web browser to the information provision server.
제1항에 있어서,
상기 데이터 스크래핑 모듈이 상기 정보 속성 값을 이용하여 상기 정보 제공 서버와 연결된 제2 통신 세션을 생성하는 단계; 및
상기 데이터 스크래핑 모듈이 상기 제2 통신 세션을 통하여 상기 정보 제공 서버로부터 정보 스크래핑 요청에 대한 응답 값을 수신하는 단계를 더 포함하는 정보 스크래핑 방법.
According to paragraph 1,
generating, by the data scraping module, a second communication session connected to the information provision server using the information attribute value; and
The information scraping method further comprising the step of the data scraping module receiving a response value to the information scraping request from the information providing server through the second communication session.
제6항에 있어서,
상기 제1 통신 세션 및 상기 제2 통신 세션은, 상기 정보 제공 서버에 대해 미리 설정된 애플리케이션 프로그래밍 인터페이스를 이용하여 생성되는 정보 스크래핑 방법.
According to clause 6,
The first communication session and the second communication session are created using an application programming interface preset for the information providing server.
하드웨어와 결합되어 제1항 내지 제7항 중 어느 한 항에 따른 정보 스크래핑 방법을 실행하도록 컴퓨터로 판독 가능한 매체에 저장된 컴퓨터 프로그램.
A computer program stored on a computer-readable medium coupled with hardware to execute the information scraping method according to any one of claims 1 to 7.
프로그램 명령이 저장된 메모리;
데이터 스크래핑 모듈을 포함하는 통신 모듈; 및
상기 명령을 실행함으로써 상기 메모리 및 상기 통신 모듈을 제어하도록 구성된 프로세서를 포함하되,
상기 프로세서는,
정보 제공 서버에 연결된 제1 통신 세션을 통하여 상기 정보 제공 서버에 데이터 스크래핑을 요청하며,
상기 정보 제공 서버로부터 수신된 응답에 기초하여, 정보 스크래핑을 위해 웹 브라우저 정보의 송신 또는 상기 웹 브라우저에 의한 정보 수신이 필요한 것으로 결정하고,
상기 제1 통신 세션에 상응하는 세션 정보를 웹 브라우저를 실행 가능한 브라우저 스크래핑 모듈에 전달하며,
상기 웹 브라우저가 상기 세션 정보를 이용하여 상기 정보 제공 서버로부터 스크래핑한 정보 속성 값을 상기 브라우저 스크래핑 모듈로부터 수신하도록 상기 데이터 스크래핑 모듈을 제어하도록 구성된 컴퓨팅 장치.
Memory where program instructions are stored;
a communication module including a data scraping module; and
A processor configured to control the memory and the communication module by executing the command,
The processor,
Requesting data scraping from the information provision server through a first communication session connected to the information provision server,
Based on the response received from the information provision server, determining that transmission of web browser information or reception of information by the web browser is necessary for information scraping,
transmitting session information corresponding to the first communication session to a browser scraping module executable in a web browser;
A computing device configured to control the data scraping module so that the web browser receives information attribute values scraped from the information provision server using the session information from the browser scraping module.
제9항에 있어서,
상기 프로세서는,
상기 정보 속성 값을 이용하여 상기 정보 제공 서버와 연결된 제2 통신 세션을 생성하고,
상기 제2 통신 세션을 통하여 상기 정보 제공 서버로부터 정보 스크래핑 요청에 대한 응답 값을 수신하도록 상기 데이터 스크래핑 모듈을 제어하도록 더 구성된 컴퓨팅 장치.
According to clause 9,
The processor,
Creating a second communication session connected to the information provision server using the information attribute value,
The computing device is further configured to control the data scraping module to receive a response value for an information scraping request from the information providing server through the second communication session.
제9항에 있어서,
상기 통신 모듈은 상기 브라우저 스크래핑 모듈을 더 포함하며,
상기 프로세서는, 상기 세션 정보를 이용하여 상기 웹 브라우저를 실행함으로써 상기 정보 제공 서버로부터 상기 정보 속성 값을 스크래핑하도록 상기 브라우저 스크래핑 모듈을 제어하도록 더 구성된 컴퓨팅 장치.
According to clause 9,
The communication module further includes the browser scraping module,
The computing device is further configured to control the browser scraping module to scrape the information attribute value from the information provision server by executing the web browser using the session information.
데이터 스크래핑 모듈을 포함하며, 정보 제공 서버에 연결된 제1 통신 세션을 통하여 상기 정보 제공 서버에 데이터 스크래핑을 요청하고, 상기 정보 제공 서버로부터 수신된 응답에 기초하여, 정보 스크래핑을 위해 웹 브라우저 정보의 송신 또는 상기 웹 브라우저에 의한 정보 수신이 필요한 것으로 결정하도록 구성된 사용자 장치; 및
웹 브라우저를 실행 가능한 브라우저 스크래핑 모듈을 포함하는 스크래핑 서비스 서버를 포함하되,
상기 사용자 장치는, 상기 제1 통신 세션에 상응하는 세션 정보를 상기 스크래핑 서비스 서버에 전송하도록 더 구성되며,
상기 스크래핑 서비스 서버는, 상기 세션 정보를 이용하여 상기 웹 브라우저를 실행함으로써 상기 정보 제공 서버로부터 정보 속성 값을 스크래핑하고, 상기 정보 속성 값을 상기 사용자 장치에 전송하도록 더 구성된 정보 스크래핑 시스템.
Comprising a data scraping module, requesting data scraping from the information providing server through a first communication session connected to the information providing server, and transmitting web browser information for information scraping based on a response received from the information providing server. or a user device configured to determine that receipt of information by the web browser is necessary; and
Includes a scraping service server that includes a browser scraping module capable of executing a web browser,
the user device is further configured to transmit session information corresponding to the first communication session to the scraping service server,
The scraping service server is further configured to scrape information attribute values from the information provision server by executing the web browser using the session information, and transmit the information attribute values to the user device.
제12항에 있어서,
상기 정보 속성 값은, 쿠키 데이터, 저장소 식별 데이터, 웹 사용자 인터페이스 구성요소 데이터 및 렌더링 결과 데이터 중 하나 이상을 포함하는 정보 스크래핑 시스템.
According to clause 12,
The information attribute value includes one or more of cookie data, storage identification data, web user interface component data, and rendering result data.
제12항에 있어서,
상기 사용자 장치는, 상기 정보 속성 값을 이용하여 상기 정보 제공 서버와 연결된 제2 통신 세션을 생성하고, 상기 제2 통신 세션을 통하여 상기 정보 제공 서버로부터 정보 스크래핑 요청에 대한 응답 값을 수신하도록 더 구성된 정보 스크래핑 시스템.
According to clause 12,
The user device is further configured to create a second communication session connected to the information provision server using the information attribute value, and to receive a response value for an information scraping request from the information provision server through the second communication session. Information scraping system.
제14항에 있어서,
상기 제1 통신 세션 및 상기 제2 통신 세션은 상기 정보 제공 서버에 대해 미리 설정된 애플리케이션 프로그래밍 인터페이스를 이용하여 생성되는 정보 스크래핑 시스템.
According to clause 14,
An information scraping system in which the first communication session and the second communication session are created using an application programming interface preset for the information providing server.
KR1020220135156A 2022-10-19 2022-10-19 Information scraping method and system using hybrid scraping and computer program for the same KR20240055224A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220135156A KR20240055224A (en) 2022-10-19 2022-10-19 Information scraping method and system using hybrid scraping and computer program for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220135156A KR20240055224A (en) 2022-10-19 2022-10-19 Information scraping method and system using hybrid scraping and computer program for the same

Publications (1)

Publication Number Publication Date
KR20240055224A true KR20240055224A (en) 2024-04-29

Family

ID=90883734

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220135156A KR20240055224A (en) 2022-10-19 2022-10-19 Information scraping method and system using hybrid scraping and computer program for the same

Country Status (1)

Country Link
KR (1) KR20240055224A (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101815235B1 (en) 2015-12-30 2018-01-08 주식회사쿠콘 System, method and computer program for data scrapping

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101815235B1 (en) 2015-12-30 2018-01-08 주식회사쿠콘 System, method and computer program for data scrapping

Similar Documents

Publication Publication Date Title
EP2734949B1 (en) Trust level activation
JP5952307B2 (en) System, method and medium for managing ambient adaptability of web applications and web services
US20160301739A1 (en) Endpoint management system providing an application programming interface proxy service
EP2867820B1 (en) Devices, systems, and methods for monitoring and asserting trust level using persistent trust log
US8196137B2 (en) Remote auto provisioning and publication of applications
KR20190107299A (en) Custom optimization of web pages
US10375072B2 (en) Dashboard as remote computing services
US11647086B2 (en) System and method for maintaining user session continuity across multiple devices and/or multiple platforms
US11481508B2 (en) Data access monitoring and control
US20130074160A1 (en) Method of controlling information processing system, computer-readable recording medium storing program for controlling apparatus
US11356433B2 (en) System and method for detecting unauthorized activity at an electronic device
CN111737687A (en) Access control method, system, electronic device and medium for webpage application system
Wilkinson et al. QMachine: commodity supercomputing in web browsers
CN108293047B (en) System and method for accessing resources by a user across multiple distributed computing networks
US10719456B2 (en) Method and apparatus for accessing private data in physical memory of electronic device
US10237364B2 (en) Resource usage anonymization
US9871873B2 (en) Adapter for communication between web applications within a browser
Celesti et al. Evaluating alternative daas solutions in private and public openstack clouds
KR20240055224A (en) Information scraping method and system using hybrid scraping and computer program for the same
KR101024444B1 (en) Web application platform in terminal unit and method for operating web application platform
Zhang et al. A webpage offloading framework for smart devices
US11019089B1 (en) Performing security assessments based on user credentials
KR20160122959A (en) System and method for managing cloud infrastructure
US10389795B2 (en) Distributed extension execution in computing systems
US20180341717A1 (en) Providing instant preview of cloud based file