KR102340474B1 - System, method and computer program for data scrapping using script engine - Google Patents

System, method and computer program for data scrapping using script engine Download PDF

Info

Publication number
KR102340474B1
KR102340474B1 KR1020190004557A KR20190004557A KR102340474B1 KR 102340474 B1 KR102340474 B1 KR 102340474B1 KR 1020190004557 A KR1020190004557 A KR 1020190004557A KR 20190004557 A KR20190004557 A KR 20190004557A KR 102340474 B1 KR102340474 B1 KR 102340474B1
Authority
KR
South Korea
Prior art keywords
scraping
data
information
institution
engine unit
Prior art date
Application number
KR1020190004557A
Other languages
Korean (ko)
Other versions
KR20190124630A (en
Inventor
정재원
백청석
Original Assignee
주식회사쿠콘
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020180047729A external-priority patent/KR101982085B1/en
Application filed by 주식회사쿠콘 filed Critical 주식회사쿠콘
Priority to KR1020190004557A priority Critical patent/KR102340474B1/en
Publication of KR20190124630A publication Critical patent/KR20190124630A/en
Application granted granted Critical
Publication of KR102340474B1 publication Critical patent/KR102340474B1/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • 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/31User authentication
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • 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/31User authentication
    • G06F21/33User authentication using certificates
    • 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
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

데이터 스크래핑(data scrapping) 시스템은, 스크래핑이 필요한 조회 또는 수행을 호출하는 서비스 프로그램을 구비하며, 스크래핑을 위한 사용자 정보를 수신하고, 내부 스케줄 알고리즘을 사용하여 사용자 정보와 작업을 할당하는 관리 모듈; 및 상기 관리 모듈에 의해 할당된 사용자 정보와 작업에 기초하여, 서로 상이한 복수의 기관에 통신 가능하게 연결되어 상기 복수의 기관으로부터 호출된 조회 또는 수행에 대응되는 데이터를 스크래핑하도록 구성된 스크래핑 모듈을 포함한다. 상기 스크래핑 모듈은, 스크래핑될 데이터 항목을 지정하는 메타 데이터베이스(meta database)를 포함하며, 상기 기관이 제공하는 데이터 셋으로부터 상기 메타 데이터베이스에 기반하여 스크래핑할 데이터를 추출하도록 구성된다. 상기 데이터 스크래핑 시스템에 의하면, 모바일 컴퓨팅 장치 등 다양한 플랫폼에서 데이터 스크래핑이 동작될 수 있으며, 다중의 스크래핑 정보를 보안 모듈의 제약사항 없이 하나의 장치에서 수집할 수 있다. A data scrapping system includes: a management module having a service program that calls an inquiry or execution requiring scraping, receiving user information for scraping, and allocating user information and tasks using an internal schedule algorithm; and a scraping module communicatively connected to a plurality of different organizations to scrape data corresponding to an inquiry or execution called from the plurality of organizations based on the user information and tasks assigned by the management module. . The scraping module includes a meta database that specifies a data item to be scraped, and is configured to extract data to be scraped from a data set provided by the institution based on the meta database. According to the data scraping system, data scraping may be operated on various platforms such as a mobile computing device, and multiple pieces of scraping information may be collected in one device without restrictions of the security module.

Figure R1020190004557
Figure R1020190004557

Description

스크립트 엔진을 이용한 데이터 스크래핑 시스템, 방법 및 컴퓨터 프로그램{SYSTEM, METHOD AND COMPUTER PROGRAM FOR DATA SCRAPPING USING SCRIPT ENGINE}SYSTEM, METHOD AND COMPUTER PROGRAM FOR DATA SCRAPPING USING SCRIPT ENGINE

실시예들은 데이터 스크래핑(data scrapping) 시스템, 방법 및 컴퓨터 프로그램에 관한 것으로, 보다 구체적으로는, 스크래핑에 대한 환경 정보가 저장된 스크립트 엔진(script engine)을 탑재하도록 스크래핑 모듈을 개발함으로써 다양한 운영체제에서의 스크래핑을 하나의 스크래핑 모듈에서 처리하는 기술에 대한 것이다. The embodiments relate to a data scraping system, a method, and a computer program, and more specifically, scraping in various operating systems by developing a scraping module to mount a script engine in which environmental information for scraping is stored. It is about the technology of processing in one scraping module.

일반적으로, 스크린 스크래핑(screen scraping)은 스크린에 보이는 데이터 중 필요한 것만 추출해 주는 소프트웨어로서, 자동으로 시스템에 접속해 데이터를 화면에 나타나게 한 후 필요한 자료만을 추출해 가져오는 기술이다. 웹 사이트에 있는 정보를 끄집어내 다른 사이트나 데이터베이스에 저장하기 때문에 웹 스크래핑(web scraping)이라고도 한다. 데이터를 저장하므로 필요에 따라 수시로 조회가 가능하며, 저장된 데이터를 가공하여 비교분석 자료로 활용할 수도 있다. 특히 인터넷 뱅킹에 필수적인 프로그램으로 각 금융기관에서 활발하게 운영 중이며, 호텔과 항공사·렌터카·주유소 등의 마일리지와 같은 보상프로그램, 전자우편 통합조회, 뉴스·채팅·날씨 등 사용자가 클릭해 정보를 얻을 수 있는 곳이라면 어디에도 사용할 수 있다. In general, screen scraping is a software that extracts only necessary data from the data displayed on the screen, and is a technology that automatically connects to the system, displays the data on the screen, and extracts only the necessary data. It is also called web scraping because it extracts information from a web site and stores it in another site or database. Since the data is stored, it can be inquired at any time as needed, and the stored data can be processed and used as comparative analysis data. In particular, it is an essential program for Internet banking and is actively being operated by each financial institution. Users can click to obtain information such as compensation programs such as mileage for hotels, airlines, car rentals, and gas stations, integrated e-mail inquiry, news, chat, and weather. You can use it wherever you are.

스크린 스크래핑 기술은 미국 등에서는 1990년대 말부터 보편화되었으며, 국내에서는 2000년 설립된 핑거(Finger) 사가 이 기술을 처음 개발하여 금융서비스를 시작한 후 금융기관을 중심으로 널리 사용되고 있다. 현재 대표적인 것으로는 개인이 가진 여러 금융기관의 계좌들을 통합하여 관리할 수 있는 금융자산통합관리소프트웨어(PFMS: Personal Finance Management Software)를 들 수 있다. 일일이 각 웹사이트를 방문할 필요가 없어 시간과 경비를 절약할 수 있는 장점이 있으나 사생활 침해가 우려되며, 사이트가 갱신될 때마다 프로그래밍을 수정해야 한다는 단점도 있다. Screen scraping technology has become common in the United States and other countries since the late 1990s. Currently, a representative example is Personal Finance Management Software (PFMS), which can integrate and manage accounts of various financial institutions owned by an individual. It has the advantage of saving time and money by not having to visit each website individually, but there are also disadvantages that it is concerned about invasion of privacy and that the programming needs to be revised every time the site is updated.

상기 스크린 스크래핑 기술은 크게 클라이언트(client) 방식과 서버(server) 방식으로 구분되며, 계좌통합 서비스나 개인자산관리, 기업자산관리 프로그램에서 그 활용도가 높으나 단 대 단(end-to-end) 정책을 지켜야 하는 국내 보안 정책상의 이유로 서버 방식보다는 클라이언트 방식의 스크린 스크래핑 기술이 절대 우위를 점하고 있다.The screen scraping technology is largely divided into a client method and a server method, and its use is high in account integration services, personal wealth management, and corporate wealth management programs, but it has an end-to-end policy. For reasons of domestic security policy that must be followed, the client-based screen scraping technology has an absolute advantage over the server-based method.

도 1은 종래의 클라이언트 방식의 스크린 스크래핑을 이용한 계좌통합 서비스 시스템의 구성도이다.1 is a block diagram of an account integration service system using a conventional client method screen scraping.

종래의 계좌통합 서비스 시스템은 도 1에 도시한 바와 같이, 사용자(10)가 계좌통합 서비스 프로그램(20)을 통해 제1 내지 제n 기관(40-1 내지 40-n)에 등록된 웹 서비스 프로그램(41)에 인터넷망(30)을 통해 접속하여, 상기 제1 내지 제n 기관(40-1 내지 40-n)의 통신 보안 정책에 따라 서비스를 수행한다. 이때, 상기 스크린 스크래핑은 상기 계좌통합 서비스 프로그램(20)에서 수행된다.In the conventional account integration service system, as shown in FIG. 1 , a web service program in which the user 10 is registered with the first to n-th institutions 40-1 to 40-n through the account integration service program 20 The service is performed according to the communication security policies of the first to n-th institutions 40-1 to 40-n by accessing the Internet network 30 through the Internet network (30) (41). In this case, the screen scraping is performed in the account integration service program 20 .

종래의 클라이언트 방식의 스크린 스크래핑을 이용한 계좌통합 서비스 시스템은 도 1과 같이, 금융 관련 웹 서비스의 스크린 스크래핑 시 서비스의 안정성이나 기술적 제약으로 인해 복수의 스크린 스크래핑 작업을 순차적으로 실행하고 결과를 받는 구성이다. 이는, 예들 들어, 은행 계좌 개수가 많은 경우 거래내역 조회 스크래핑을 할 때 심각한 성능저하를 체감하게 되는 문제점이 있었다.The conventional account integration service system using the client method screen scraping is a configuration that sequentially executes a plurality of screen scraping tasks and receives the results due to the stability or technical limitations of the service during screen scraping of financial-related web services, as shown in FIG. 1 . . This has, for example, a problem in that, when the number of bank accounts is large, serious performance degradation is felt when scraping transaction details.

위와 같은 문제점을 해결하기 위하여, 복수의 스크래핑 머신에 의해 병렬적으로 스크린 스크래핑을 수행하는 기술이 개발되기도 하였다. 그러나 종래에는, 스크래핑 머신이 서로 상이한 운영체제(operating system)에서 동작하도록 하기 위해, 금융 기관에서 요구하는 보안 정책을 준수하도록 각각의 운영체제에 부합하는 스크래핑 모듈을 별도로 개발해야 하였다. 예를 들어, 윈도우 운영체제 기반의 PC 외에 리눅스(Linux)나 OS X 기반의 컴퓨터, 또는 iOS와 안드로이드(android) 등 모바일 운영체제 각각에 대해 별도로 스크래핑 모듈을 개발할 필요가 있으며, 이는 사용자들이 사용하는 장치 및 운영체제의 종류가 다변화됨에 따라 개발에 투입되어야 하는 장비의 규모 및 비용을 기하급수적으로 증가시키는 문제점이 있었다. In order to solve the above problems, a technique for performing screen scraping in parallel by a plurality of scraping machines has been developed. However, in the prior art, in order to operate the scraping machine in different operating systems, a scraping module corresponding to each operating system had to be separately developed to comply with the security policy required by the financial institution. For example, in addition to the Windows operating system-based PC, it is necessary to develop a scraping module separately for each of the Linux or OS X-based computers, or for each mobile operating system such as iOS and Android. As the types of operating systems are diversified, there is a problem of exponentially increasing the size and cost of equipment that must be put into development.

등록특허공보 제10-0494975호Registered Patent Publication No. 10-0494975

본 발명의 일 측면에 따르면, 스크래핑(scrapping)에 대한 환경 정보가 저장된 스크립트 엔진(script engine)을 탑재함으로써 다양한 운영체제에서의 스크래핑을 하나의 스크래핑 모듈에서 처리할 수 있으며, 스크래핑 대상 기관의 통신 방식에 부합하는 통신 세션을 생성하고 대상 기관의 인증 방식에 따라 사용자 정보가 처리된 인증값을 전송하여, 다양한 플랫폼에서 동작 가능하고 운영체제에 의한 제약 사항 없이 다양한 기관으로부터 스크래핑 정보를 수집할 수 있는 데이터 스크래핑(data scrapping) 시스템, 방법 및 컴퓨터 프로그램을 제공할 수 있다. According to one aspect of the present invention, scraping in various operating systems can be processed in one scraping module by loading a script engine in which environmental information about scraping is stored, and the communication method of the scraping target organization is Data scraping (data scraping) that can operate on various platforms and collect scraping information from various organizations without restrictions by operating systems data scrapping) systems, methods and computer programs.

일 실시예에 따른 데이터 스크래핑(data scrapping) 시스템은, 스크래핑이 필요한 조회 또는 수행을 호출하는 서비스 프로그램을 구비하며, 사용자 장치로부터 스크래핑을 위한 사용자 정보를 포함하는 스크래핑 요청을 수신하고, 스크래핑된 데이터를 상기 사용자 장치에 전송하도록 구성된 송수신부; 및 상기 송수신부에 수신된 상기 사용자 정보를 이용하여 하나 이상의 기관으로부터 데이터를 스크래핑하도록 구성된 하나 이상의 데이터 스크래핑 정보수집부를 포함한다.A data scrapping system according to an embodiment includes a service program that calls an inquiry or execution required for scraping, receives a scraping request including user information for scraping from a user device, and collects the scraped data a transceiver configured to transmit to the user device; and one or more data scraping information collecting units configured to scrape data from one or more organizations using the user information received by the transceiver.

상기 하나 이상의 데이터 스크래핑 정보수집부 각각은, 스크래핑을 수행할 상기 기관의 식별정보와, 스크래핑을 수행할 상기 기관에 상응하는 인증 정보 및 통신 정보를 포함하는 환경 정보를 저장하며, 플랫폼 독립적인 스크립트(script) 형태를 가지고, 상기 환경 정보에 기초하여 상기 기관으로부터 데이터를 스크래핑하도록 구성된 스크래핑 엔진(engine)부를 포함한다.Each of the one or more data scraping information collecting units stores environment information including identification information of the institution to be scraped, authentication information and communication information corresponding to the institution to be scraped, and a platform-independent script ( script), and a scraping engine configured to scrape data from the institution based on the environment information.

일 실시예에서, 상기 스크래핑 엔진부는, 상기 환경 정보를 저장하는 스크래핑 환경 관리부; 상기 통신 정보에 기초하여 상기 기관과 상기 스크래핑 엔진부 사이의 통신 세션을 생성하는 세션 관리부; 상기 인증 정보에 기초하여 상기 사용자 정보를 처리하는 통신 관리부; 및 상기 사용자 정보가 처리된 인증값을 상기 기관에 전송함으로써 상기 기관으로부터 데이터를 스크래핑하도록 구성된 스크립트 엔진을 포함한다. In an embodiment, the scraping engine unit may include: a scraping environment management unit configured to store the environment information; a session management unit for generating a communication session between the institution and the scraping engine unit based on the communication information; a communication management unit for processing the user information based on the authentication information; and a script engine configured to scrape data from the authority by sending an authentication value processed by the user information to the authority.

일 실시예에서, 상기 사용자 정보는 사용자의 생체 인증 정보를 포함한다.In one embodiment, the user information includes biometric authentication information of the user.

일 실시예에서, 상기 하나 이상의 데이터 스크래핑 정보수집부 각각은, 스크래핑될 데이터 항목을 지정하는 메타 데이터베이스를 더 포함한다. 이때, 상기 스크래핑 엔진부는, 상기 기관이 제공하는 데이터 셋으로부터 상기 메타 데이터베이스에 기반하여 스크래핑할 데이터를 추출하도록 더 구성된다.In an embodiment, each of the one or more data scraping information collecting units further includes a meta database for designating a data item to be scraped. In this case, the scraping engine unit is further configured to extract data to be scraped from the data set provided by the institution based on the meta database.

일 실시예에서, 상기 하나 이상의 데이터 스크래핑 정보수집부 각각은, 스크래핑을 위한 상기 사용자 정보 및 상기 사용자 정보에 기반한 작업을 내부 스케줄 알고리즘을 사용하여 상기 스크래핑 엔진부에 할당하는 작업 관리부를 더 포함한다.In an embodiment, each of the one or more data scraping information collection units further includes a job management unit for allocating the user information for scraping and a job based on the user information to the scraping engine unit using an internal schedule algorithm.

일 실시예에서, 상기 하나 이상의 데이터 스크래핑 정보수집부 각각은, 상기 작업 관리부의 정상 동작 여부를 감시하여 오류 발생 시 상기 작업 관리부를 재실행하며, 상기 데이터 셋에서 상기 스크래핑될 데이터 항목이 위치하는 부분을 식별하기 위한 식별 정보를 상기 메타 데이터베이스에 저장하는 플랫폼 관리부를 더 포함한다.In one embodiment, each of the one or more data scraping information collecting units monitors whether the work management unit operates normally, re-executes the work management unit when an error occurs, and determines a portion of the data set in which the data item to be scraped is located. It further includes a platform management unit for storing identification information for identification in the meta database.

일 실시예에서, 상기 하나 이상의 데이터 스크래핑 정보수집부 각각은, 상기 송수신부의 상기 서비스 프로그램과 상기 스크래핑 엔진부가 상호 인증되었는지 여부를 검사함으로써 상기 스크래핑 요청을 검증하도록 구성된 검증부를 더 포함한다.In an embodiment, each of the one or more data scraping information collection units further includes a verification unit configured to verify the scraping request by checking whether the service program of the transceiver unit and the scraping engine unit are mutually authenticated.

일 실시예에서, 상기 하나 이상의 데이터 스크래핑 정보수집부 각각은, 상기 데이터 스크래핑 정보수집부와 상호 인증된 하나 또는 복수의 사용자의 인증서를 저장하고 있으며, 상기 데이터 스크래핑 정보수집부에 할당된 스크래핑 작업에 기초하여 필요한 인증서를 상기 스크래핑 엔진부에 설치하도록 구성된 인증서 분배부를 더 포함한다.In one embodiment, each of the one or more data scraping information collection units stores certificates of one or a plurality of users mutually authenticated with the data scraping information collection unit, and performs a scraping operation assigned to the data scraping information collection unit. It further includes a certificate distribution unit configured to install a necessary certificate based on the scraping engine unit.

일 실시예에서, 상기 하나 이상의 데이터 스크래핑 정보수집부 각각은, 상기 사용자 장치에 설치된 인증서와 상기 스크래핑 엔진부에 설치된 인증서가 상이할 경우, 상기 사용자 장치로부터 수신된 인증서를 이용하여 상기 스크래핑 엔진부에 설치된 인증서를 갱신하도록 구성된 모듈 업데이터부를 더 포함한다. In one embodiment, each of the one or more data scraping information collecting units is configured to be configured in the scraping engine unit using the certificate received from the user device when the certificate installed in the user device and the certificate installed in the scraping engine unit are different from each other. and a module updater configured to renew the installed certificate.

일 실시예에서, 상기 하나 이상의 데이터 스크래핑 정보수집부 각각은, 상기 사용자 장치에서 스크래핑이 직접 수행되면서 오류가 발생하면, 오류 발생시 사용자 장치에 입력된 스크래핑 입력정보로부터 오류 로그를 분석하고, 분석된 오류 로그를 기초로 상기 사용자 장치 내 스크래핑 모듈이 업데이트되게 하는 스크래핑 오류수정부를 더 포함한다.In an embodiment, each of the one or more data scraping information collecting units analyzes an error log from scraping input information input to the user device when an error occurs when an error occurs while scraping is directly performed in the user device, and the analyzed error It further includes a scraping error correction unit for updating the scraping module in the user device based on the log.

일 실시예에 따른 데이터 스크래핑 방법은, 스크래핑이 필요한 조회 또는 수행을 호출하는 서비스 프로그램을 구비한 데이터 스크래핑 시스템의 송수신부가, 사용자 장치로부터, 사용자에 의해 호출된 조회 또는 수행의 정보 및 사용자 정보를 포함하는 스크래핑 요청을 수신하는 단계; 상기 데이터 스크래핑 시스템이, 스크래핑을 수행할 상기 기관의 식별정보와 스크래핑을 수행할 상기 기관에 상응하는 인증 정보 및 통신 정보를 포함하는 환경 정보를 저장하며 플랫폼 독립적인 스크립트 형태를 가지는 상기 데이터 스크래핑 시스템의 스크래핑 엔진부에 상기 사용자 정보 및 상기 사용자 정보에 기초한 작업을 할당하는 단계; 상기 스크래핑 엔진부가 상기 환경 정보에 기초하여 상기 기관으로부터 데이터를 스크래핑하는 단계; 및 상기 송수신부가 스크래핑된 데이터를 상기 사용자 장치에 전송하는 단계를 포함한다.A data scraping method according to an embodiment includes a transceiver of a data scraping system having a service program that calls an inquiry or execution requiring scraping, from a user device, inquiry or execution information and user information called by a user receiving a scraping request; The data scraping system stores environment information including identification information of the institution to be scraped and authentication information and communication information corresponding to the institution to be scraped, and has a platform-independent script form of the data scraping system allocating the user information and a task based on the user information to a scraping engine unit; scraping data from the institution based on the environment information by the scraping engine unit; and transmitting the scraped data to the user device by the transceiver.

일 실시예에서, 상기 기관으로부터 데이터를 스크래핑하는 단계는, 상기 스크래핑 엔진부가 상기 통신 정보에 기초하여 상기 기관과 상기 스크래핑 엔진부 사이의 통신 세션을 생성하는 단계; 상기 스크래핑 엔진부가 상기 인증 정보에 기초하여 상기 사용자 정보를 처리하는 단계; 및 상기 스크래핑 엔진부가 상기 사용자 정보가 처리된 인증값을 상기 기관에 전송함으로써 상기 기관으로부터 데이터를 스크래핑하는 단계를 포함한다.In an embodiment, the scraping data from the institution may include: generating, by the scraping engine unit, a communication session between the institution and the scraping engine unit based on the communication information; processing the user information based on the authentication information by the scraping engine unit; and scraping data from the institution by the scraping engine unit transmitting an authentication value in which the user information is processed to the institution.

일 실시예에 따른 데이터 스크래핑 방법은, 상기 기관으로부터 데이터를 스크래핑하는 단계 전에, 상기 데이터 스크래핑 시스템이 스크래핑될 데이터 항목을 메타 데이터베이스에 저장하는 단계를 더 포함한다. 이때, 상기 기관으로부터 데이터를 스크래핑하는 단계는, 상기 기관이 제공하는 데이터 셋으로부터 상기 메타 데이터베이스에 기반하여 스크래핑할 데이터를 추출하는 단계를 포함한다.The data scraping method according to an embodiment further includes, before the scraping data from the institution, the data scraping system storing the data item to be scraped in a meta database. In this case, the scraping of data from the institution includes extracting data to be scraped from a data set provided by the institution based on the meta database.

일 실시예에 따른 데이터 스크래핑 방법은, 상기 기관으로부터 데이터를 스크래핑하는 단계 전에, 상기 데이터 스크래핑 시스템의 작업 관리부가 상기 사용자 정보 및 상기 작업을 내부 스케줄 알고리즘을 사용하여 상기 스크래핑 엔진부에 할당하는 단계를 더 포함한다.In the data scraping method according to an embodiment, before the step of scraping data from the institution, the task management unit of the data scraping system assigns the user information and the task to the scraping engine unit using an internal schedule algorithm. include more

일 실시예에 따른 데이터 스크래핑 방법은, 상기 데이터 스크래핑 시스템이, 상기 작업 관리부의 정상 동작 여부를 감시하여 오류 발생 시 상기 작업 관리부를 재실행하는 단계; 및 상기 데이터 스크래핑 시스템이, 상기 데이터 셋에서 상기 스크래핑될 데이터 항목이 위치하는 부분을 식별하기 위한 식별 정보를 상기 메타 데이터베이스에 저장하는 단계를 더 포함한다.A data scraping method according to an embodiment may include, by the data scraping system, monitoring whether the job management unit operates normally and re-executing the job management unit when an error occurs; and storing, by the data scraping system, identification information for identifying a portion in the data set in which the data item to be scraped is located in the meta database.

일 실시예에 따른 데이터 스크래핑 방법은, 상기 기관으로부터 데이터를 스크래핑하는 단계 전에, 상기 데이터 스크래핑 시스템이, 상기 송수신부의 상기 서비스 프로그램과 상기 스크래핑 엔진부가 상호 인증되었는지 여부를 검사함으로써 상기 스크래핑 요청을 검증하는 단계를 더 포함한다.In the data scraping method according to an embodiment, before the step of scraping data from the institution, the data scraping system verifies the scraping request by checking whether the service program of the transceiver and the scraping engine unit are mutually authenticated further comprising steps.

일 실시예에서, 상기 데이터 스크래핑 시스템은 상기 데이터 스크래핑 시스템과 상호 인증된 하나 또는 복수의 사용자의 인증서를 저장하고 있다. 이때, 일 실시예에 따른 데이터 스크래핑 방법은, 상기 기관으로부터 데이터를 스크래핑하는 단계 전에, 상기 데이터 스크래핑 시스템이, 상기 스크래핑 엔진부에 할당된 스크래핑 작업에 기초하여 필요한 인증서를 상기 스크래핑 엔진부에 설치하는 단계를 더 포함한다.In one embodiment, the data scraping system stores certificates of one or more users mutually authenticated with the data scraping system. At this time, in the data scraping method according to an embodiment, before the step of scraping data from the institution, the data scraping system installs a necessary certificate based on the scraping operation assigned to the scraping engine unit in the scraping engine unit further comprising steps.

일 실시예에 따른 데이터 스크래핑 방법은, 상기 기관으로부터 데이터를 스크래핑하는 단계 전에, 상기 데이터 스크래핑 시스템이, 상기 사용자 장치에 설치된 인증서와 상기 스크래핑 엔진부에 설치된 인증서가 상이할 경우, 상기 사용자 장치로부터 수신된 인증서를 이용하여 상기 스크래핑 엔진부에 설치된 인증서를 갱신하는 단계를 더 포함한다.In the data scraping method according to an embodiment, before the step of scraping data from the institution, the data scraping system receives from the user device when the certificate installed in the user device is different from the certificate installed in the scraping engine unit The method further includes the step of renewing the certificate installed in the scraping engine unit using the obtained certificate.

일 실시예에 따른 데이터 스크래핑 방법은, 상기 사용자 장치에서 스크래핑이 직접 수행되면서 오류가 발생하면, 상기 데이터 스크래핑 시스템이, 오류 발생시 사용자 장치에 입력된 스크래핑 입력정보로부터 오류 로그를 분석하는 단계; 및 상기 데이터 스크래핑 시스템이, 분석된 오류 로그를 기초로 상기 사용자 장치 내 스크래핑 모듈이 업데이트되게 하는 단계를 더 포함한다.A data scraping method according to an embodiment may include, when an error occurs while scraping is directly performed in the user device, analyzing, by the data scraping system, an error log from scraping input information input to the user device when the error occurs; and causing, by the data scraping system, a scraping module in the user device to be updated based on the analyzed error log.

일 실시예에 따른 컴퓨터 프로그램은, 하드웨어와 결합되어 전술한 실시예들에 따른 데이터 스크래핑 방법을 실행하기 위한 것으로서, 컴퓨터로 판독 가능한 매체에 저장될 수 있다.The computer program according to an embodiment is for executing the data scraping method according to the above-described embodiments in combination with hardware, and may be stored in a computer-readable medium.

본 발명의 일 측면에 따른 데이터 스크래핑(data scrapping) 시스템 및 방법에 의하면, 스크래핑에 대한 환경 정보가 저장된 스크립트 엔진(script engine)을 스크래핑 모듈에 탑재함으로써, 스크래핑 모듈을 각각의 운영체제 별로 별도로 개발할 필요가 없이 다양한 운영체제에서의 스크래핑을 하나의 스크래핑 모듈에서 처리할 수 있어, 사용되는 장치 및 운영체제가 점차 다변화되어 가는 현재의 실정에서 스크래핑 시스템의 개발에 투입되는 비용과 인력을 획기적으로 줄일 수 있는 이점이 있다. According to the data scrapping system and method according to an aspect of the present invention, by mounting a script engine in which environmental information about scraping is stored in the scraping module, there is no need to separately develop the scraping module for each operating system Scraping in various operating systems can be processed in one scraping module without a single scraping module, so there is an advantage in that the cost and manpower invested in the development of the scraping system can be dramatically reduced in the current situation where the devices and operating systems used are gradually diversifying. .

본 발명의 일 측면에 따른 데이터 스크래핑 시스템 및 방법에 따르면, 스크립트 엔진이 은행, 증권사, 카드사 등의 금융기관, 공공기관, 또는 실물 정보를 제공하는 기관과 해당 기관에서 요구하는 통신 방식에 부합하는 통신 세션을 생성하고, 대상 기관의 인증 방식에 따라 사용자 정보가 처리된 인증값을 전송함으로써, 목적하는 데이터, 예컨대, 계좌 잔액, 계좌 거래 내역, 카드 승인 내역, 카드 청구 내역, 카드 한도, 증권 잔고, 보험 가입내역 등과 같은 금융 정보, 또는 국세청 소득 증빙, 사업자 등록증명, 사업자휴폐업 정보, 납세사실증명, 부가가치세과세표준증명, 표준재무재표증명, 건강보험 자격확인서, 건강보험자격득실확인서, 직장보험료 개인별조회 내역, 국민연금 납부 내역, 민원24 신분증 진위 정보 등과 같은 공공 정보 등을 스크래핑할 수 있다. According to the data scraping system and method according to an aspect of the present invention, the script engine is a financial institution such as a bank, a securities company, a card company, a public institution, or an institution that provides real information and communication that conforms to the communication method required by the institution By creating a session and transmitting the authentication value in which user information is processed according to the authentication method of the target institution, target data such as account balance, account transaction history, card approval history, card billing history, card limit, stock balance, Financial information such as insurance subscription details, or income proof from the National Tax Service, business registration certificate, business closure information, tax payment confirmation, value-added tax standard certificate, standard financial statement certificate, health insurance qualification certificate, health insurance qualification certificate, job insurance premium individual inquiry It is possible to scrape public information such as details, national pension payment history, civil complaint24 ID card authenticity information, etc.

도 1은 종래의 스크린 스크래핑을 이용한 계좌통합 서비스 시스템의 구성도이다.
도 2는 일 실시예에 따른 데이터 스크래핑 시스템의 구성을 나타내는 블록도이다.
도 3은 일 실시예에 따른 데이터 스크래핑 시스템의 데이터 스크래핑 정보수집부의 상세 구성을 나타내는 블록도이다.
도 4는 도 3에 도시된 스크래핑 엔진부 및 이의 구현을 위한 하드웨어 제원을 나타내는 블록도이다.
도 5는 일 실시예에 따른 데이터 스크래핑 방법의 각 단계를 나타내는 순서도이다.
도 6은 또 다른 실시예에 따른 데이터 스크래핑 방법의 각 단계를 나타내는 순서도이다.
1 is a block diagram of an account integration service system using a conventional screen scraping.
2 is a block diagram illustrating a configuration of a data scraping system according to an embodiment.
3 is a block diagram illustrating a detailed configuration of a data scraping information collecting unit of a data scraping system according to an exemplary embodiment.
4 is a block diagram illustrating the scraping engine unit shown in FIG. 3 and hardware specifications for implementing the same.
5 is a flowchart illustrating each step of a data scraping method according to an embodiment.
6 is a flowchart illustrating each step of a data scraping method according to another embodiment.

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

도 2는 일 실시예에 따른 데이터 스크래핑(data scrapping) 시스템의 구성을 나타내는 블록도이다.2 is a block diagram illustrating a configuration of a data scraping system according to an embodiment.

도 2를 참조하면, 본 실시예에 따른 데이터 스크래핑 시스템(1)은 송수신부(100) 및 하나 이상의 데이터 스크래핑 정보수집부(200-1 내지 200-n)를 포함한다. 실시예들에 따른 데이터 스크래핑 시스템(1)은, 전적으로 하드웨어이거나, 또는 부분적으로 하드웨어이고 부분적으로 소프트웨어인 측면을 가질 수 있다. 예컨대, 데이터 스크래핑 시스템(1)을 구성하는 송수신부(100)와 데이터 스크래핑 정보수집부(200-1 내지 200-n) 및 이에 포함된 각 부는, 특정 형식 및 내용의 데이터를 전자통신 방식으로 주고받기 위한 장치 및 이에 관련된 소프트웨어를 통칭할 수 있다. Referring to FIG. 2 , the data scraping system 1 according to the present embodiment includes a transceiver 100 and one or more data scraping information collecting units 200-1 to 200-n. The data scraping system 1 according to embodiments may be entirely hardware, or may have aspects that are partly hardware and partly software. For example, the transmitting/receiving unit 100 and the data scraping information collecting units 200-1 to 200-n and each unit included therein, which constitute the data scraping system 1, transmit data in a specific format and content in an electronic communication method. A device for receiving and software related thereto may be collectively referred to.

본 명세서에서 "부(unit)", "모듈(module)", "서버", "시스템", "플랫폼", "장치" 또는 "단말" 등의 용어는 하드웨어 및 해당 하드웨어에 의해 구동되는 소프트웨어의 조합을 지칭하는 것으로 의도된다. 예를 들어, 여기서 하드웨어는 CPU 또는 다른 프로세서(processor)를 포함하는 데이터 처리 기기일 수 있다. 또한, 하드웨어에 의해 구동되는 소프트웨어는 실행중인 프로세스, 객체(object), 실행파일(executable), 실행 스레드(thread of execution), 프로그램(program) 등을 지칭할 수 있다.In this specification, terms such as “unit”, “module”, “server”, “system”, “platform”, “device” or “terminal” refer to hardware and software driven by the hardware. It is intended to refer to a combination. For example, the hardware herein may be a data processing device including a CPU or other processor. In addition, software driven by hardware may refer to a running process, an object, an executable file, a thread of execution, a program, and the like.

데이터 스크래핑 시스템(1)은 사용자 장치(10)와 통신하면서 사용자 장치(10)로부터 스크래핑이 필요한 조회 또는 수행에 대한 호출 명령, 및 인증을 위하여 필요한 사용자 정보 등을 수신하도록 구성된다. 사용자 장치(10)는 윈도우(Windows) 운영체계(Operating System; OS) 기반의 개인용 컴퓨터(Personal Computer; PC)일 수도 있으나, 이에 한정되지 않으며, 리눅스(Linux)나 OS X 기반의 컴퓨터, iOS와 안드로이드(android) 등 모바일 OS를 기반으로 한 스마트폰(smartphone) 등의 모바일 컴퓨팅 장치, 노트북(notebook) 컴퓨터, PDA(personal digital assistant), 태블릿(tablet), IPTV(Internet Protocol Television) 등을 위한 셋톱박스(set-top box) 또는 다른 임의의 장치일 수 있다.The data scraping system 1 is configured to receive, from the user device 10 while communicating with the user device 10 , a call command for inquiry or execution requiring scraping, user information required for authentication, and the like. The user device 10 may be, but is not limited to, a personal computer (PC) based on a Windows operating system (OS), and a computer based on Linux or OS X, iOS and Set-tops for mobile computing devices such as smartphones, notebook computers, personal digital assistants (PDA), tablets, and IPTV (Internet Protocol Television) based on mobile OS such as Android It may be a set-top box or any other device.

또한, 데이터 스크래핑 시스템(1)은 제1 내지 제n 기관(40-1 내지 40-n)에 등록된 웹 서비스 프로그램(41)에 인터넷망(30)을 통해 접속하여, 상기 제1 내지 제n 기관(40-1 내지 40-n)으로부터 데이터를 스크래핑하도록 구성된다. 인터넷망(30)을 통한 통신 방법은 객체와 객체가 네트워킹 할 수 있는 모든 통신 방법을 포함할 수 있으며, 유선 통신, 무선 통신, 3G, 4G, 혹은 그 이외의 방법으로 제한되지 않는다. 예를 들어, 인터넷망(30)은 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 addition, the data scraping system 1 connects to the web service program 41 registered in the first to n-th institutions 40-1 to 40-n through the Internet network 30, and the first to n-th institutions and scraping data from organs 40-1 to 40-n. The communication method through the Internet network 30 may include any communication method capable of networking between the object and the object, and is not limited to wired communication, wireless communication, 3G, 4G, or other methods. For example, the Internet network 30 includes a Local Area Network (LAN), a Metropolitan Area Network (MAN), a Global System for Mobile Network (GSM), an Enhanced Data GSM Environment (EDGE), a 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 MBWA (IEEE 802.20) systems, HIPERMAN, Beam-Division Multiple Access (BDMA), Wi-MAX (World Interoperability for Microwave Access), and ultrasonic-based communication can refer to a communication network by one or more communication methods selected from the group consisting of However, the present invention is not limited thereto.

본 실시예에 따른 데이터 스크래핑 시스템(1)은, 도 2에 도시한 바와 같이, 스크래핑이 필요한 조회 또는 수행을 호출하는 정보수집 프로그램을 구비하며 스크래핑을 위한 사용자 정보를 포함하는 스크래핑 요청을 수신하고, 스크래핑된 데이터를 사용자 장치(10)에 전송하는 송수신부(100)를 포함한다. 또한 본 실시예에 따른 데이터 스크래핑 시스템(1)은, 송수신부(100)로부터 전달된 스크래핑 요청에 기초하여 인터넷망(30)에 접속함으로써, 인터넷망(30)에 연결되며 웹 서비스 프로그램(41)을 각각 구비한 제1 내지 제n 기관(40-1 내지 40-n)으로부터 데이터를 스크래핑하는 제1 내지 제n 데이터 스크래핑 정보수집부(200-1 내지 200-n)를 포함한다. 즉, 제1 내지 제n 데이터 스크래핑 정보수집부(200-1 내지 200-n)는 각각 제1 내지 제n 기관(40-1 내지 40-n)으로부터 데이터를 스크래핑할 수 있다.As shown in FIG. 2, the data scraping system 1 according to this embodiment has an information collection program that calls an inquiry or execution requiring scraping, and receives a scraping request including user information for scraping, and a transceiver 100 for transmitting the scraped data to the user device 10 . In addition, the data scraping system 1 according to the present embodiment is connected to the Internet network 30 by accessing the Internet network 30 based on the scraping request transmitted from the transceiver 100 , and a web service program 41 . and first to n-th data scraping information collecting units 200-1 to 200-n for scraping data from the first to n-th institutions 40-1 to 40-n each having That is, the first to n-th data scraping information collecting units 200-1 to 200-n may scrape data from the first to n-th institutions 40-1 to 40-n, respectively.

제1 내지 제n 기관(40-1 내지 40-n)은 본 실시예에 따른 데이터 스크래핑 시스템(1)에 의한 정보 수집의 대상이 되는 단체에서 운용하는 시스템을 지칭하는 것으로서, 은행, 증권사, 카드사 등의 금융기관이나, 공공기관, 또는 실물 정보를 제공하는 다른 임의의 기관일 수 있으며, 특정 단체로 한정되지 않는다. 또한, 본 실시예에 따른 데이터 스크래핑 시스템(1)에 의한 정보 수집이 가능한 기관의 수는 복수이다.The first to n-th institutions 40-1 to 40-n refer to systems operated by organizations that are objects of information collection by the data scraping system 1 according to the present embodiment, and include banks, securities companies, and card companies. It may be a financial institution, such as a public institution, or any other institution that provides real information, and is not limited to a specific organization. In addition, the number of institutions capable of collecting information by the data scraping system 1 according to the present embodiment is plural.

송수신부(100)의 정보수집 프로그램은 사용자 장치(10)에 의하여 접속하여 사용됨으로써 스크래핑이 필요한 조회 또는 수행이 호출되며, 또한 인증을 위한 사용자 정보가 입력될 수 있는 프로그램이다. 예를 들면, 정보수집 프로그램은 은행 계좌 잔액 및/또는 거래내역이 조회될 수 있는 잔액 거래내역 조회 업무용 프로그램, 계좌간 이체가 수행될 수 있는 집금 업무용 프로그램 등일 수 있으나 이에 한정되는 것은 아니다. 또한, 정보수집 프로그램은 사용자가 하나의 프로그램을 통하여 다수의 기관에 분산된 계좌에 대한 조회 등을 수행할 수 있는 계좌통합 서비스를 위하여 구성된 것일 수도 있다. The information collection program of the transceiver 100 is a program that can be accessed and used by the user device 10, so that an inquiry or execution requiring scraping is called, and user information for authentication can be input. For example, the information collection program may be, but is not limited to, a program for checking balance transaction details in which bank account balances and/or transaction details can be inquired, a program for collection business in which transfer between accounts can be performed, and the like. In addition, the information collection program may be configured for an account integration service in which a user can inquire about accounts distributed in a plurality of institutions through one program.

제1 내지 제n 데이터 스크래핑 정보수집부(200-1 내지 200-n) 각각은, 후술하는 것과 같이 플랫폼(platform) 독립적인 스크립트(script) 형태의 스크래핑 엔진부를 포함한다. 스크래핑 엔진부는 스크래핑을 수행할 상기 기관의 식별정보와 스크래핑을 수행할 상기 기관에 상응하는 인증 정보 및 통신 정보를 포함하는 환경 정보를 저장하며, 환경 정보에 기초하여 제1 내지 제n 기관(40-1 내지 40-n)으로부터 데이터를 스크래핑한다. 제1 내지 제n 데이터 스크래핑 정보수집부(200-1 내지 200-n) 각각은 가상머신(virtual machine)상에서 동작할 수 있으나, 이에 한정되는 것은 아니다.Each of the first to nth data scraping information collecting units 200-1 to 200-n includes a scraping engine unit in the form of a platform-independent script, as will be described later. The scraping engine unit stores environmental information including identification information of the institution to be scraped and authentication information and communication information corresponding to the institution to be scraped, and based on the environment information, the first to n-th institutions (40- Scrap data from 1 to 40-n). Each of the first to n-th data scraping information collecting units 200-1 to 200-n may operate on a virtual machine, but is not limited thereto.

사용자는 사용자 장치(10)를 이용하여 데이터 스크래핑 시스템(1)에 접속함으로써 정보수집 프로그램에 접근하게 되며, 데이터 스크래핑 시스템(1) 내부적으로 스크래핑 작업은 데이터를 대상 기관의 종류에 따라 상기 제1 내지 제n 데이터 스크래핑 정보수집부(200-1 내지 200-n)로 분산처리가 되어 작업이 수행된다. 그러나, 스크래핑 정보수집부(200-1 내지 200-n)는 하나의 하드웨어 장치를 이용하여 구현되는 스크래핑 모듈을 단지 기능적으로 구분한 것일 수 있다. 보안을 위하여, 정보수집 프로그램과 데이터 스크래핑 정보수집부(200-1 내지 200-n) 사이의 구간에서는 공개키기반구조(公開-基盤構造, Public Key Infrastructure; PKI)의 시스템 인증으로 프로그램과 스크래핑 모듈을 인증하고 사용자 정보 및 결과는 SSL(Secure Sockets Layer)로 통신을 할 수 있다. The user accesses the information collection program by accessing the data scraping system 1 using the user device 10, and the data scraping system 1 internally scrapes the data according to the type of the target institution. Distributed processing is performed by the n-th data scraping information collecting units 200-1 to 200-n. However, the scraping information collecting units 200 - 1 to 200 - n may only functionally classify a scraping module implemented using one hardware device. For security, in the section between the information collection program and the data scraping information collection units 200-1 to 200-n, the program and the scraping module are authenticated by the public key infrastructure (PKI) system. , and user information and results can be communicated with SSL (Secure Sockets Layer).

스크래핑을 위한 사용자 정보는, 정보수집 프로그램과 데이터 스크래핑 정보수집부(200-1 내지 200-n) 사이의 인증 및 통신구간을 통해 데이터 스크래핑 정보수집부(200-1 내지 200-n)로 전달되고, 데이터 스크래핑 정보수집부(200-1 내지 200-n)에서 각 기관들(40-1 내지 40-n)의 통신 보안 정책에 맞게 처리된다. User information for scraping is transmitted to the data scraping information collection units 200-1 to 200-n through the authentication and communication section between the information collection program and the data scraping information collection units 200-1 to 200-n, and , the data scraping information collection unit 200-1 to 200-n is processed according to the communication security policy of each institution 40-1 to 40-n.

구체적으로, 데이터 스크래핑 정보수집부(200-1 내지 200-n) 각각의 스크립트 엔진(script engine)에서는 각 기관들(40-1 내지 40-n)의 통신 정책에 상응하는 방식으로 각 기관(40-1 내지 40-n)과 통신 세션(session)을 형성하고, 각 기관(40-1 내지 40-n)의 보안 정책에 상응하는 방식으로 사용자 정보를 처리하여 처리 결과에 해당하는 인증값을 각 기관들(40-1 내지 40-n)에 전송하여 데이터를 스크래핑한다. 예컨대, 스크래핑되는 데이터는 계좌 잔액, 계좌 거래 내역, 카드 승인 내역, 카드 청구 내역, 카드 한도, 증권 잔고, 보험 가입내역 등과 같은 금융 정보, 또는 국세청 소득 증빙, 사업자 등록증명, 사업자휴폐업 정보, 납세사실증명, 부가가치세과세표준증명, 표준재무재표증명, 건강보험 자격확인서, 건강보험자격득실확인서, 직장보험료 개인별조회 내역, 국민연금 납부 내역, 민원24 신분증 진위 정보 등과 같은 공공 정보일 수 있으나, 이에 한정되지 않는다. 스크래핑 결과는 데이터 스크래핑 정보수집부(200-1 내지 200-n)와의 인증 및 통신구간을 통해 정보수집 프로그램에서 취합될 수 있다. Specifically, in the script engine of each of the data scraping information collection units 200-1 to 200-n, each institution 40 in a manner corresponding to the communication policy of each institution 40-1 to 40-n -1 to 40-n), a communication session is formed, user information is processed in a manner corresponding to the security policy of each institution 40-1 to 40-n, and an authentication value corresponding to the processing result is obtained. Scrap data by sending it to institutions 40-1 to 40-n. For example, the scraped data may include financial information such as account balance, account transaction history, card approval history, card billing history, card limit, stock balance, insurance subscription details, etc., or proof of income from the National Tax Service, business registration certificate, business closure information, tax payment facts It may be, but is not limited to, public information such as certification, VAT standard certification, standard financial statement certification, health insurance qualification certificate, health insurance qualification acquisition or loss confirmation, job insurance premium individual inquiry details, national pension payment history, civil complaint 24 identification card authenticity information, etc. does not The scraping result may be collected in the information collection program through authentication and communication section with the data scraping information collection units 200-1 to 200-n.

도 3은 일 실시예에 따른 데이터 스크래핑 시스템의 데이터 스크래핑 정보수집부의 상세 구성을 나타내는 블록도로서, 도 3에 도시된 데이터 스크래핑 정보수집부(200)는 도 2에 도시된 제1 내지 제n 데이터 스크래핑 정보수집부(200-1 내지 200-n) 각각에 대응된다. 3 is a block diagram illustrating a detailed configuration of a data scraping information collecting unit of a data scraping system according to an exemplary embodiment. The data scraping information collecting unit 200 shown in FIG. It corresponds to each of the scraping information collecting units 200-1 to 200-n.

도 3을 참조하면, 데이터 스크래핑 정보수집부(200)는 스크래핑 엔진부(240)를 포함한다. 스크래핑 엔진부(240)는 자바 스크립트(JAVA script) 등 플랫폼 독립적인 언어로 작성된 스크립트 형태를 가지는데, 여기서 플랫폼이란 데이터 스크래핑 정보수집부(200)가 구현되는 장치의 하드웨어 및 상기 하드웨어를 운용하기 위한 운영체제(operating system; OS)를 포함한다. 플랫폼 독립적인 스크립트 형태로 스크래핑 엔진부(240)를 구성함으로써, 장치 또는 OS의 종류에 따라 스크래핑 엔진을 별도로 개발할 필요 없이, 스크래핑 엔진부(240)에 의하여 어떠한 실행 환경에서도 스크래핑을 수행할 수 있다. Referring to FIG. 3 , the data scraping information collecting unit 200 includes a scraping engine unit 240 . The scraping engine unit 240 has the form of a script written in a platform-independent language such as JavaScript (JAVA script), where the platform is the hardware of the device in which the data scraping information collection unit 200 is implemented and for operating the hardware. It includes an operating system (OS). By configuring the scraping engine unit 240 in the form of a platform-independent script, scraping can be performed in any execution environment by the scraping engine unit 240 without the need to separately develop a scraping engine according to the type of device or OS.

일 실시예에서, 데이터 스크래핑 정보수집부(200)는 스크래핑될 데이터 항목을 지정하는 메타 데이터베이스(meta database(DB); 230)를 더 포함한다. 이때, 스크래핑 엔진부(240)는, 제1 내지 제n 기관(40-1 내지 40-n)이 각각 제공하는 데이터 셋(data set)으로부터 메타 데이터베이스(230)에 기반하여 스크래핑할 항목에 해당되는 데이터를 추출하도록 구성된다. In an embodiment, the data scraping information collection unit 200 further includes a meta database (DB) 230 for designating a data item to be scraped. At this time, the scraping engine unit 240 corresponds to the item to be scraped based on the meta database 230 from the data sets provided by the first to n-th institutions 40-1 to 40-n, respectively. configured to extract data.

즉, 상기 메타 DB(230)는 사용자가 원하는 수집할 정보, 예컨대, 수집할 대상 및 스크래핑 항목을 저장하는 역할을 한다. 예컨대, 사용자가 계좌의 이체 내역에 대한 조회를 희망할 경우, 이체 내역을 지시하는 코드 또는 부호 등이 스크래핑될 데이터 항목으로서 메타 DB(230)에 저장될 수 있다. 이때, 스크래핑 엔진부(240)는 메타 DB(230)의 스크래핑될 데이터 항목을 기반으로 스크래핑 정보를 수집한다. 이를 위하여, 메타 DB(230)는 각각의 기관이 제공하는 데이터 셋으로부터 데이터 항목을 추출하기 위한 식별 정보를 포함한다. 예를 들어, 식별 정보는 HTTP(Hypertext Transfer Protocol) 또는 JSON(Java Script Object Notation) 등의 프로토콜로 수신될 수 있는 데이터 셋으로부터 특정 데이터 항목이 위치하는 부분을 식별할 수 있는 정보일 수 있다. That is, the meta DB 230 serves to store the information to be collected desired by the user, for example, the object to be collected and the scraping item. For example, when a user desires to inquire about the transfer details of an account, a code or a sign indicating the transfer details may be stored in the meta DB 230 as a data item to be scraped. At this time, the scraping engine unit 240 collects scraping information based on the data item to be scraped in the meta DB 230 . To this end, the meta DB 230 includes identification information for extracting data items from a data set provided by each institution. For example, the identification information may be information capable of identifying a part in which a specific data item is located from a data set that may be received by a protocol such as Hypertext Transfer Protocol (HTTP) or Java Script Object Notation (JSON).

본 실시예에서 스크래핑 엔진부(240)는, 종래와 같이 스크린 전체의 데이터를 스크래핑하는 대신, 메타 DB(230)에 저장된 스크래핑될 데이터 항목을 이용하여 데이터 셋으로부터 선별적으로 데이터를 스크래핑한다. 선별적으로 수집된 스크래핑 정보는 메타 DB(230)의 스크래핑 항목과의 대조를 통한 확인 과정 후, 송수신부(100; 도 2)의 정보수집 프로그램에 전달되어 사용자에게 제공될 수 있다.In this embodiment, the scraping engine unit 240 selectively scrapes data from a data set using the data item to be scraped stored in the meta DB 230 instead of scraping the entire screen data as in the prior art. The selectively collected scraping information may be transmitted to the information collection program of the transceiver 100 ( FIG. 2 ) and provided to the user after a verification process through verification with the scraping items of the meta DB 230 .

일 실시예에서, 데이터 스크래핑 정보수집부(200)는 작업 관리부(220)를 더 포함한다. 작업 관리부(22)는, 스크래핑을 위한 사용자 정보 및 사용자 정보에 기반한 작업을 내부 스케줄 알고리즘을 사용하여 스크래핑 엔진부(240)에 할당한다. 예를 들어, 할당될 사용자 정보와 작업은 스크래핑 수집정보 전문의 형태로 데이터 스크래핑 정보수집부(200)에 전송될 수 있다. 예를 들어, 작업 관리부(220)는 내부 스케줄 알고리즘을 통해 전송된 스크래핑을 위한 사용자 정보를 스크래핑 엔진부(240)에 API(Application Program Interface) 호출이나 OLE(Object Linking and Embedding) 프로토콜을 사용하여 전달하고, 그 결과를 소켓이나 SSL(Secure Sockets Layer) 통신을 통하여 수신할 수 있다. In an embodiment, the data scraping information collection unit 200 further includes a job management unit 220 . The job management unit 22 allocates user information for scraping and a job based on the user information to the scraping engine unit 240 using an internal schedule algorithm. For example, user information and tasks to be assigned may be transmitted to the data scraping information collecting unit 200 in the form of a full scraping collected information. For example, the job management unit 220 transmits user information for scraping transmitted through an internal schedule algorithm to the scraping engine unit 240 using an API (Application Program Interface) call or OLE (Object Linking and Embedding) protocol. and the result can be received through socket or SSL (Secure Sockets Layer) communication.

일 실시예에서, 데이터 스크래핑 정보수집부(200)는 플랫폼 관리부(250)를 더 포함한다. 플랫폼 관리부(250)는, 작업 관리부(220)를 최신 버전으로 업데이트하거나, 작업 관리부(220)가 비정상적인 수행을 하거나 오류로 인한 문제 발생시 작업 관리부(220) 상의 모든 프로세스를 중지시키고 작업 관리부(220)를 재실행하는 역할을 한다. In an embodiment, the data scraping information collection unit 200 further includes a platform management unit 250 . The platform management unit 250 stops all processes on the task management unit 220 when the task management unit 220 is updated to the latest version, or when the task management unit 220 performs abnormally or a problem occurs due to an error, and the task management unit 220 serves to re-execute

또한 플랫폼 관리부(250)는, 작업 관리부(220)가 스크래핑 엔진부(240)를 호출하여 작동될 때 발생할 수 있는 예외의 경우, 예를 들어, 보안 모듈 등 스크래핑 작업에 필요한 프로그램 설치나 갱신에 관련된 사용자 입력에 응답하여 스크래핑 엔진부(240)가 업데이트되도록 모듈 업데이터부(260)를 제어하는 역할을 할 수도 있다. In addition, the platform management unit 250 is an exception that may occur when the operation management unit 220 is operated by calling the scraping engine unit 240, for example, related to the installation or update of a program required for the scraping operation, such as a security module. It may also serve to control the module updater unit 260 so that the scraping engine unit 240 is updated in response to a user input.

또한 플랫폼 관리부(250)는, 스크래핑을 수행할 대상 기관이 제공하는 데이터 셋(data set)에서 스크래핑될 데이터 항목이 위치하는 부분을 식별하기 위한 식별 정보를 사용자로부터 입력받고, 입력된 식별 정보를 메타 데이터베이스(230)에 저장하는 기능을 수행할 수도 있다. In addition, the platform management unit 250 receives, from a user, identification information for identifying a part in which a data item to be scraped is located in a data set provided by a target institution to perform scraping, and converts the input identification information into meta data. A function of storing the data in the database 230 may be performed.

나아가 플랫폼 관리부(250)는, 데이터 스크래핑 정보 수집부(200)와 그 내부의 스크립트 엔진의 전원의 온(ON)/오프(OFF) 상태, 데이터 스크래핑 정보 수집부(200)를 구현하기 위한 가상 머신에 설치된 OS의 버전 정보, 데이터 스크래핑 정보 수집부(200)가 현재 사용자의 입력을 기다리는지의 여부와, 데이터 스크래핑 정보 수집부(200)를 구현하기 위한 하드웨어 제원으로서 CPU, 메인 메모리(Main Memory), USB 호스트 컨트롤러(Host Controller), 하드 디스크 드라이브(Hard Disk Drive), 네트워크 인터페이스 카드(Network Interface Card)의 점유율, 남는 공간, 사용 상태, 네트워크 점유 상태 등을 조회하는 역할을 할 수 있다. 플랫폼 관리부(250)는 송수신부(100; 도 2) 및 데이터 스크래핑 정보수집부(200)의 프로그램이나 라이브러리, 인증서를 갱신하고 동기화하기 위한 전처리 작업이나 파일 송수신을 담당할 수도 있다.Further, the platform management unit 250 is a virtual machine for implementing the data scraping information collection unit 200 and the on/off state of the power of the script engine therein, and the data scraping information collection unit 200 . As hardware specifications for implementing the version information of the OS installed in the OS, the data scraping information collecting unit 200 is currently waiting for the user's input, and the data scraping information collecting unit 200, the CPU, the main memory (Main Memory), It can play a role of inquiring the occupancy of the USB host controller, the hard disk drive, and the network interface card, the remaining space, the use state, the network occupancy state, and the like. The platform management unit 250 may be in charge of preprocessing or file transmission and reception for updating and synchronizing programs, libraries, and certificates of the transceiver 100 ( FIG. 2 ) and the data scraping information collection unit 200 .

일 실시예에서, 데이터 스크래핑 정보수집부(200)는 검증부(210)를 더 포함한다. 검증부(210)는 송수신부(100; 도 2)의 정보수집 프로그램으로부터 스크래핑 요청이 있을 경우, 상기 정보수집 프로그램과 데이터 스크래핑 정보수집부(200)가 서로 인증된 프로그램인지 여부를 확인한다. 확인 결과 정보수집 프로그램과 데이터 스크래핑 정보수집부(200)가 서로 인증된 프로그램일 경우 검증부(210)에서는 스크래핑 요청을 작업 관리부(220)로 전달하여 스크래핑이 이루어지도록 하되, 서로 인증된 프로그램이 아닐 경우에는 스크래핑 요청을 거절할 수 있다. In an embodiment, the data scraping information collection unit 200 further includes a verification unit 210 . When there is a scraping request from the information collection program of the transceiver 100 (FIG. 2), the verification unit 210 checks whether the information collection program and the data scraping information collection unit 200 are mutually authenticated programs. As a result of the check, if the information collection program and the data scraping information collection unit 200 are mutually authenticated programs, the verification unit 210 transmits the scraping request to the task management unit 220 so that the scraping is performed, but it is not a mutually authenticated program. In this case, the scrapping request may be rejected.

일 실시예에서, 데이터 스크래핑 정보수집부(200)는 인증서 분배부(270)를 포함한다. 인증서 분배부(270)는 데이터 스크래핑 정보수집부(200)와 상호 인증된 하나 또는 복수의 사용자의 인증서를 저장하고 있으며, 데이터 스크래핑 정보수집부(200)에 할당된 스크래핑 작업에 따라 필요한 인증서를 스크래핑 엔진부(240)에 설치하는 기능을 한다. In an embodiment, the data scraping information collection unit 200 includes a certificate distribution unit 270 . The certificate distribution unit 270 stores the certificates of one or more users mutually authenticated with the data scraping information collection unit 200, and scrapes the necessary certificates according to the scraping operation assigned to the data scraping information collection unit 200. It functions to be installed in the engine unit 240 .

또한 일 실시예에서, 데이터 스크래핑 정보수집부(200)는 모듈 업데이터부(260)를 더 포함한다. 모듈 업데이터부(260)는 스크래핑 요청에 포함된 인증 정보를 기반으로 사용자 장치(10; 도 2)에 설치된 인증서와 스크래핑 엔진부(240)에 설치된 인증서를 비교하여, 사용자 장치(10)에 설치된 인증서와 스크래핑 엔진부(240)에 설치된 인증서가 상이할 경우 사용자 장치(10)에 설치된 인증서를 기준으로 스크래핑 엔진부(240) 및 인증서 분배부(270)의 인증서를 갱신하는 역할을 한다. Also, in an embodiment, the data scraping information collection unit 200 further includes a module updater unit 260 . The module updater 260 compares the certificate installed in the user device 10 ( FIG. 2 ) with the certificate installed in the scraping engine unit 240 based on the authentication information included in the scraping request, and the certificate installed in the user device 10 . When the certificate installed in the scraping engine unit 240 is different from the certificate installed in the user device 10 , the certificate of the scraping engine unit 240 and the certificate distribution unit 270 is renewed based on the certificate installed in the user device 10 .

일 실시예에서, 데이터 스크래핑 정보수집부(200)는 감사용 자료 관리부(280)를 더 포함한다. 감사용 자료 관리부(280)는 데이터 스크래핑 정보수집부(200)를 사용함에 있어 서비스에 오작동, 수행 시간, 수행 작업의 간략한 내용, 최적화용 정보, 스크래핑 작업의 권한 정보 등을 저장하고 관리한다.In an embodiment, the data scraping information collection unit 200 further includes an audit data management unit 280 . When the data scraping information collection unit 200 is used, the audit data management unit 280 stores and manages malfunctions, execution time, brief details of the operations performed, information for optimization, and authority information of the scraping operation, etc. in the service.

일 실시예에서, 데이터 스크래핑 정보수집부(200)는 DB 파일부(290)를 더 포함한다. DB 파일부(290)는 감사용 자료 관리부(280)에 의하여 제어되며, 인증부(210), 작업 관리부(220), 플랫폼 관리부(250), 모듈 업데이터부(260) 및 인증서 분배부(270)의 로그를 API호출이나 OLE 프로토콜을 사용하여 저장하는 역할을 한다.In an embodiment, the data scraping information collection unit 200 further includes a DB file unit 290 . The DB file unit 290 is controlled by the audit data management unit 280 , and includes the authentication unit 210 , the task management unit 220 , the platform management unit 250 , the module updater unit 260 , and the certificate distribution unit 270 . It plays a role in saving logs using API calls or OLE protocol.

일 실시예에서, 데이터 스크래핑 정보수집부(200)는 스크래핑 오류수정부(215)를 더 포함한다. 스크래핑 오류수정부(215)는, 사용자 장치(10)에서 직접 스크래핑을 수행하는 클라이언트(client) 스크래핑 동작에 있어서 사용자 장치(10) 상의 스크래핑 모듈에서 발생하는 오류를 해결하기 위해 사용자 장치(10) 상의 스크래핑 모듈을 업데이트하는 동작을 수행할 수 있다. 즉, 사용자 장치(10)에서 스크래핑이 직접 수행되면서 오류가 발생하면, 스크래핑 오류수정부(215)는 오류 발생시 사용자 장치(10)에 입력된 스크래핑 입력정보로부터 오류 로그를 분석하고, 분석된 오류 로그를 기초로 상기 사용자 장치(10) 내 스크래핑 모듈이 업데이트되도록 한다. In an embodiment, the data scraping information collection unit 200 further includes a scraping error correction unit 215 . The scraping error correction unit 215 is configured on the user device 10 to solve an error occurring in the scraping module on the user device 10 in a client scraping operation that directly performs scraping in the user device 10 . An operation for updating the scraping module may be performed. That is, if an error occurs while scraping is directly performed in the user device 10 , the scraping error correction unit 215 analyzes an error log from the scraping input information input to the user device 10 when the error occurs, and the analyzed error log based on the scraping module in the user device 10 is updated.

종래에 사용자 장치에서 직접 스크래핑 시 오류가 발생한 경우, 통상적으로 개발자가 사용자 단말에 원격접속을 통하여 오류를 수정하거나 오류 로그를 서버로 전송하여 오류를 수정하였다. 그러나, 원격접속의 경우 사용자는 별도 프로그램을 사용자 단말에 설치해야 하며 오류로그 서버 전송시에는 사용자의 개인 정보가 유출될 수 있고 로그가 많은 경우 유실도 발생할 수 있는 문제가 있다. 또한, 스크래핑 대상 외부 기관 사용자 별로 응답 정보의 형태가 다르기 때문에 다양한 케이스의 테스트 계정을 보유해야 하는 문제가 있다. Conventionally, when an error occurs during scraping directly in a user device, a developer corrects the error through remote access to the user terminal or transmits the error log to the server in general to correct the error. However, in the case of remote access, the user must install a separate program in the user terminal, and there is a problem that personal information of the user may be leaked when the error log server is transmitted, and loss may occur if there are many logs. In addition, since the form of response information is different for each user of the external organization to be scraped, there is a problem in that it is necessary to have test accounts for various cases.

이에 본 발명의 일 실시예에 따르면 이러한 문제점을 개선하기 위해 스크래핑시 입력정보를 암호화하여 스크래핑 오류수정부(215)가 전송받고, 클라우드 스크래핑을 통해 테스트 하여 빠르게 오류를 수정할 수 있다. 일 실시예에서, 이상의 오류 수정 동작은 검증부(210)에 의한 인증이 완료된 정보수집 프로그램과 통신하는 사용자 장치(10)를 대상으로 수행될 수 있다.Accordingly, according to an embodiment of the present invention, in order to improve this problem, the scraping error correction unit 215 is transmitted by encrypting input information during scraping, and the error can be quickly corrected by testing through cloud scraping. In an embodiment, the above error correction operation may be performed on the user device 10 communicating with the information collection program for which authentication by the verification unit 210 has been completed.

구체적으로, 사용자 장치(10)에서 스크래핑 수행 시 스크래핑 오류가 발생하면, 스크래핑 오류수정부(215)는 오류 발생시 사용자 장치(10)에 입력된 스크래핑 입력정보를 수신하고, 오류 로그를 분석하여 오류를 수정할 수 있다. 이 경우 수신되는 스크래핑 입력정보는 암호화된 상태일 수 있다. Specifically, when a scraping error occurs when the user device 10 performs scraping, the scraping error correction unit 215 receives the scraping input information input to the user device 10 when the error occurs, and analyzes the error log to correct the error. Can be modified. In this case, the received scraping input information may be in an encrypted state.

예컨대, 스크래핑 오류수정부(215)는 스크래핑 모듈이 기 분석한 데이터 부분(A1)과 상기 기 분석한 데이터 부분(A)에 대응되는 현재 스크래핑하여 획득한 데이터 부분(A2)이 상이 할 경우 스크래핑 오류가 발생한 것으로 결정할 수 있다. 여기서 스크래핑 오류 발생 여부를 판단함에 이용되는 기 분석한 데이터 부분은 1) 해당 외부기관 서버를 식별할 수 있는 고유값, 태그 정보 또는 파싱된 정보 중 하나 이상을 포함할 수 있다.For example, when the scraping error correction unit 215 is different from the data part A1 previously analyzed by the scraping module and the data part A2 obtained through current scraping corresponding to the previously analyzed data part A, the scraping error is different. can be determined to have occurred. Here, the pre-analyzed data part used to determine whether a scraping error has occurred may include one or more of 1) a unique value, tag information, or parsed information for identifying a corresponding external organization server.

또한 스크래핑 오류수정부(215)는 스크래핑 오류가 발생한 것으로 판단하면, 오류 로그를 생성할 수 있다. 여기서 오류 로그는 로그시간, 플랫폼종류, 앱ID, 라이브러리 버전정보, 디바이스 아이디, 오류코드 중 하나 이상을 포함할 수 있다. Also, when it is determined that a scraping error has occurred, the scraping error correction unit 215 may generate an error log. Here, the error log may include one or more of log time, platform type, app ID, library version information, device ID, and error code.

그 후 스크래핑 오류수정부(215)는 이러한 오류 로그를 기 분석한 데이터 부분(A1)을 포함하는 데이터 부분과 비교함으로써 오류 원인을 도출하고, 이러한 오류 원인을 기초로 스크래핑 모듈(미도시)이 현재 스크래핑하여 획득한 데이터 부분(A2)을 수정하도록 사용자 장치(10) 내 스크래핑 모듈(미도시)이 업데이트 되도록 할 수 있다. After that, the scraping error correction unit 215 derives the error cause by comparing the error log with the data part including the previously analyzed data part A1, and based on the error cause, the scraping module (not shown) is currently A scraping module (not shown) in the user device 10 may be updated to correct the data portion A2 obtained by scraping.

예컨대, 스크래핑 오류수정부(215)는 사용자 장치(10) 내 소프트웨어 업데이트 요청을 사용자 장치(10)에 전송하고, 사용자 장치(10)의 업데이트 요청 수락에 따라서 상기 사용자 장치(10)에 스크래핑 모듈 업데이트를 위한 데이터를 사용자 장치(10)에 전송해줄 수 있다.For example, the scraping error correction unit 215 transmits a software update request in the user device 10 to the user device 10 , and updates the scraping module in the user device 10 according to the acceptance of the update request by the user device 10 . It is possible to transmit data for the user device 10 .

여기서 스크래핑 입력정보는 은행코드, 클래스(개인뱅킹 또는 기업뱅킹), 요청 서비스종류(전계좌조회, 거래내역조회 등), 계좌번호, 카드 코드, 로그인 전자서명값, 결제일, 조회 시작일 또는 조회 종료일과 같은 금융 관련 다양한 정보를 포함할 수 있다. 이때 스크래핑 오류수정부(215)는 사용자의 인증 정보가 금융기관 등에서 요구하는 인증 방식에 따라 처리된 로그인 전자서명값을 수신하고 이를 기초로 스크래핑 모듈의 오류 수정을 실시할 수 있으므로, 사용자의 인증 정보의 원본 데이터를 외부 서버에 전달하여 보안 상의 위험을 발생시키지 않는다. 또한, 사용자의 로그인 전자서명값은 사용자 장치(10)의 업데이트 요청 수락이 수신되는 것에 대한 응답으로 스크래핑 오류수정부(215)에서 삭제됨으로써, 스크래핑 모듈의 업데이트 후 로그인 전자서명값이 서버에 남아 있어 보안 상의 위험이 잔존하는 것을 방지할 수 있다.Here, scraping input information includes bank code, class (personal banking or corporate banking), requested service type (full account inquiry, transaction history inquiry, etc.), account number, card code, log-in digital signature value, payment date, inquiry start date or inquiry end date, and The same may include various financial-related information. At this time, since the scraping error correction unit 215 receives the login digital signature value processed according to the authentication method required by the financial institution, etc., the user's authentication information, and corrects the error of the scraping module based on this, the user's authentication information It does not pose a security risk by delivering the original data of the server to an external server. In addition, the user's login electronic signature value is deleted from the scraping error correction unit 215 in response to receiving the update request acceptance of the user device 10, so that the login electronic signature value remains in the server after the scraping module is updated. It is possible to prevent a security risk from remaining.

도 4는 도 3에 도시된 스크래핑 엔진부 및 이의 구현을 위한 하드웨어 제원을 나타내는 블록도이다.4 is a block diagram illustrating the scraping engine unit shown in FIG. 3 and hardware specifications for implementing the same.

도 4를 참조하면, 스크래핑 엔진부(240)는 스크립트 엔진(241), 스크래핑 환경 관리부(242), 통신 관리부(243) 및 세션 관리부(244)를 포함할 수 있다. 실시예들에서 스크래핑 엔진부(240) 전체는 플랫폼 독립적인 형태의 스크립트로서 구현되며, 스크립트 엔진(241), 스크래핑 환경 관리부(242), 통신 관리부(243) 및 세션 관리부(244)는 이러한 스크립트를 기능적으로 구분한 것일 수 있다. 또한, 스크래핑 엔진부(240)는 CPU(310), 메인 메모리(320), USB 호스트 컨트롤러(330), 하드 디스크 드라이브(340), 및 네트워크 인터페이스 카드(350)를 포함하는 하드웨어 및 각각의 하드웨어 컴포넌트에 대한 디바이스 드라이버(Device Driver)와 CMOS BIOS 등을 포함하는 소프트웨어를 이용하여 실행되도록 구현될 수 있다. Referring to FIG. 4 , the scraping engine unit 240 may include a script engine 241 , a scraping environment management unit 242 , a communication management unit 243 , and a session management unit 244 . In embodiments, the entire scraping engine unit 240 is implemented as a script in a platform-independent form, and the script engine 241, the scraping environment management unit 242, the communication management unit 243, and the session management unit 244 use these scripts. It may be functionally differentiated. In addition, the scraping engine unit 240 includes hardware including a CPU 310 , a main memory 320 , a USB host controller 330 , a hard disk drive 340 , and a network interface card 350 , and each hardware component. It may be implemented to be executed using software including a device driver and CMOS BIOS.

스크래핑 환경관리부(242)는, 스크래핑을 수행할 대상 기관의 식별 정보와, 스크래핑을 수행할 상기 기관에 상응하는 인증 정보 및 통신 정보를 포함하는 환경 정보를 저장한다. 본 실시예에서는, 이상과 같은 환경 정보가 저장된 스크래핑 환경관리부(242)가 스크래핑 엔진부(240)의 스크립트 형태로 구현되어 있으므로, 사용자 장치나 이의 OS 등 플랫폼의 종류에 따라 개별적으로 스크래핑 엔진을 개발할 필요가 없는 이점이 있다. The scraping environment management unit 242 stores environment information including identification information of a target organization to be scraped, and authentication information and communication information corresponding to the organization to be scraped. In this embodiment, since the scraping environment management unit 242 in which the above environment information is stored is implemented in the form of a script of the scraping engine unit 240, the scraping engine can be developed individually according to the type of platform such as the user device or its OS. The advantage is that you don't need it.

세션 관리부(244)는, 환경 정보의 통신 정보에 기초하여 스크래핑 엔진부(240)와 기관을 통신 연결하는 통신 세션을 생성 및 유지하는 기능을 한다. 이때 통신 정보란, 기관에서 보안 통신에 요구하는 통신 암호화 프로토콜의 종류나 세션 유지 시간 등의 정보를 포함할 수 있으며, 세션 관리부(244)는 스크래핑 요청에 상응하는 기관에서 요청하는 통신 암호화 프로토콜 및 세션 유지 시간에 따라 기관에 대한 통신 세션을 관리하는 기능을 한다. The session management unit 244 functions to create and maintain a communication session for communicatively connecting the scraping engine unit 240 and the organization based on the communication information of the environment information. In this case, the communication information may include information such as the type of communication encryption protocol required for secure communication by the institution or the session maintenance time, and the session management unit 244 may include the communication encryption protocol and session requested by the institution corresponding to the scraping request. It functions to manage communication sessions to the institution according to the holding time.

스크립트 엔진(241)은, 스크래핑 환경 관리부(242)에 저장된 기관의 인증 정보에 기초하여 사용자 정보가 처리된 인증값을 기관에 전송함으로써 상기 기관으로부터 데이터를 스크래핑하도록 구성된다. 예를 들어, 인증 정보는 호출된 조회 또는 수행에 대응되는 데이터를 스크래핑하기 위하여 제1 내지 제n 기관(40-1 내지 40-n; 도 2)이 각각 요구하는 인증 방식에 대한 정보일 수 있으며, 스크립트 엔진(241)은 데이터 스크래핑을 위하여 사용자 정보가 상응하는 인증 방식(예컨대, 비대칭 암호화 등)으로 처리된 인증값을 제1 내지 제n 기관(40-1 내지 40-n; 도 2)에 전송하여 제1 내지 제n 기관(40-1 내지 40-n; 도 2)으로부터 데이터를 수신하도록 구성된다. The script engine 241 is configured to scrap data from the institution by sending an authentication value processed by user information based on the authentication information of the institution stored in the scraping environment management unit 242 to the institution. For example, the authentication information may be information on an authentication method each required by the first to n-th institutions 40-1 to 40-n ( FIG. 2 ) in order to scrape data corresponding to the called inquiry or execution, , the script engine 241 sends the authentication value processed by the authentication method corresponding to the user information (eg, asymmetric encryption, etc.) to the first to n-th institutions 40-1 to 40-n (FIG. 2) for data scraping. and transmit and receive data from the first to n-th institutions 40-1 to 40-n (FIG. 2).

통신 관리부(243)는, 스크래핑에 요구되는 사용자 인증을 위하여, 사용자 정보를 각각의 기관에서 요구하는 통신 보안 정책에 따라 처리하여 처리 결과에 해당하는 인증값을 스크립트 엔진(241)에 전달한다. 이를 위하여, 스크래핑 환경 관리부(242)는 기관별로 인증 방식에 대한 정보를 저장하며, 통신 관리부(243)는 스크래핑 환경 관리부(242)에 저장된 정보 중 현재 스크래핑을 수행할 대상 기관에 상응하는 인증 방식에 따라 사용자 정보를 처리한 후 인증값을 스크립트 엔진(241)에 전달한다. 사용자 정보에 대한 처리란 인증서 정보 및 전자서명을 기관에서 요구하는 보안 정책에 따라 암호화 하는 등의 과정을 의미할 수 있다. The communication management unit 243 processes user information according to a communication security policy required by each institution for user authentication required for scraping, and transmits an authentication value corresponding to the processing result to the script engine 241 . To this end, the scraping environment management unit 242 stores information on the authentication method for each organization, and the communication management unit 243 uses the information stored in the scraping environment management unit 242 for the authentication method corresponding to the target organization to perform the current scraping. After processing the user information accordingly, the authentication value is transmitted to the script engine 241 . The processing of user information may refer to the process of encrypting certificate information and digital signatures according to the security policy required by the institution.

또한 일 실시예에서, 인증 정보는 동일한 기관 내에서도 데이터 항목별로 상이하게 정의된다. 이때 통신 관리부(243)는 사용자 정보를 데이터를 스크래핑할 기관의 통신 보안 정책 및 상기 기관 내에서 스크래핑할 데이터 항목에 대해 정의된 통신 보안 정책에 상응하는 방식으로 처리하고, 이와 같이 처리된 인증값을 스크립트 엔진(241)에 전달할 수도 있다. Also, in one embodiment, authentication information is defined differently for each data item even within the same institution. At this time, the communication management unit 243 processes the user information in a manner corresponding to the communication security policy of the institution to scrape data and the communication security policy defined for the data item to be scraped in the institution, and receives the authentication value processed in this way. It may also be passed to the script engine 241 .

스크립트 엔진(241)은 전술한 것과 같이 생성되는 통신 세션을 통해 인증값을 기관에 전송하고 기관으로부터 스크래핑 방식으로 데이터 셋을 수신한다. 일 실시예에서, 스크래핑 엔진부(240)는 스크립트 엔진(241) 및 하드웨어 제원(310, 320, 330, 340, 35)을 이용하여 구성된 스크래핑 모듈에 해당하되, 이러한 스크래핑 모듈이 복수 개로 이루어져 제1 내지 제n 스크래핑 모듈(240-1 내지 240-n)을 통한 다중 스크래핑을 수행하도록 구성될 수도 있다. The script engine 241 transmits the authentication value to the institution through the communication session created as described above and receives the data set from the institution in a scraping manner. In one embodiment, the scraping engine unit 240 corresponds to a scraping module configured using the script engine 241 and hardware specifications 310, 320, 330, 340, and 35, but the scraping module consists of a plurality of first to nth scraping modules 240-1 to 240-n may be configured to perform multiple scraping.

일 실시예에서, 스크립트 엔진(241)은 스크래핑 과정에서 대상 기관이 요구하는 통신 방식 및/또는 인증 방식의 변경에 관련된 정보를 스크래핑 방식으로 수신할 수 있다. 예컨대, 금융기관이 요구하는 통신 암호화 방식 또는 사용자 정보의 인증 방식은 언제든지 변경될 수 있으며, 이 경우 변경 전의 통신 방식 또는 인증 방식을 이용한 스크래핑 시도는 실패하게 된다. 스크래핑 환경 관리부(242)에 현재 저장되어 있는 통신 방식 및 인증 방식을 이용한 스크래핑 시도가 실패할 경우, 스크립트 엔진(241)에서는 기존의 데이터 셋 수신을 위한 기관 서버 주소(예컨대, 웹 페이지)가 아니라 기관에서 요구하는 통신 방식 및/또는 인증 방식에 대한 정보를 제공하는 다른 서버 주소에 접속하여, 해당 기관이 요구하는 통신 방식 및/또는 인증 방식에 대한 정보를 스크래핑 방식으로 수신한다. In an embodiment, the script engine 241 may receive information related to a change in a communication method and/or an authentication method requested by a target organization in a scraping method in a scraping method. For example, the communication encryption method or the authentication method of user information required by the financial institution may be changed at any time, and in this case, a scraping attempt using the communication method or the authentication method before the change will fail. When a scraping attempt using the communication method and authentication method currently stored in the scraping environment management unit 242 fails, the script engine 241 does not have an organization server address (eg, a web page) for receiving the existing data set. By accessing another server address that provides information on the communication method and/or authentication method required by the agency, information on the communication method and/or authentication method requested by the relevant institution is received in the scraping method.

즉, 스크립트 엔진(241)에서는 일단 현재 가지고 있는 환경 정보를 토대로 기관 웹 페이지에서 사용자 정보의 스크래핑을 시도한 후, 통신 방식 또는 인증 방식의 오류로 인해 스크래핑이 실패하는 경우에는 기관의 통신 방식 및 인증 방식을 정의하는 별도의 웹 페이지를 통해 환경 정보를 검증하기 위한 정보를 스크래핑할 수 있다. 이때 별도의 웹 페이지는 스크래핑을 수행할 대상 기관의 서버가 제공하는 다른 주소에 해당하는 것일 수도 있으며, 또는 스크래핑을 수행할 대상 기관이 아닌 제3의 기관에 의하여 제공되는 별도의 서버에 해당하는 것일 수도 있다. That is, once the script engine 241 attempts to scrape user information from an institution web page based on the environment information it has, if scraping fails due to an error in the communication method or authentication method, the institution's communication method and authentication method Information for verifying environmental information can be scraped through a separate web page that defines In this case, the separate web page may correspond to a different address provided by the server of the target institution to perform scraping, or may correspond to a separate server provided by a third party rather than the target institution to perform scraping. may be

전술한 과정에 의해 환경 정보에 대한 변경이 확인될 경우, 스크래핑 환경 관리부(242)는, 스크립트 엔진(241)을 통하여 스크래핑된 통신 방식 및/또는 인증 방식에 기초하여 스크래핑 환경 관리부(242)에 저장된 환경 정보를 업데이트한다. 이후, 세션 관리부(244)는 업데이트된 환경 정보의 통신 정보에 기초하여 스크래핑을 위한 통신 세션을 생성한다. 또한, 통신 관리부(243)는 업데이트된 환경 정보의 인증 정보에 기초하여 사용자 정보가 처리된 인증값을 스크립트 엔진(241)에 전달한다. When a change to the environment information is confirmed by the above-described process, the scraping environment management unit 242 is stored in the scraping environment management unit 242 based on the communication method and/or the authentication method scraped through the script engine 241 . Update environment information. Thereafter, the session manager 244 creates a communication session for scraping based on the updated communication information of the environment information. In addition, the communication management unit 243 transmits, to the script engine 241, the authentication value processed by the user information based on the updated authentication information of the environment information.

한편, 세션 관리부(244) 및 통신 관리부(243)는 업데이트된 환경 정보에 따른 동작을 가능하게 하기 위하여 외부의 정책 서버(미도시)로부터 필요한 정보를 다운로드할 수도 있다. 예를 들어, 세션 관리부(244) 및 통신 관리부(243)는 업데이트된 환경 정보에 따라 세션을 형성하거나 사용자 정보를 처리하기 위하여 요구되는 통신 암호화 정책, 데이터 암호화 정책, 인증서 등을 정책 서버로부터 다운로드할 수 있다. 그러나 이는 예시적인 것으로서, 다른 실시예에서는 다양한 통신 방식 및 인증 방식에 따른 처리를 위한 알고리즘 및 라이브러리 파일 등이 세션 관리부(244) 및 통신 관리부(243)에 미리 저장되어 있고, 세션 관리부(244) 및 통신 관리부(243)에서는 스크래핑 환경 관리부(242)의 환경 정보에 기초하여 이 중 적합한 정보를 선택하여 사용하는 것도 가능하다. Meanwhile, the session manager 244 and the communication manager 243 may download necessary information from an external policy server (not shown) to enable an operation according to the updated environment information. For example, the session management unit 244 and the communication management unit 243 download the communication encryption policy, data encryption policy, and certificate required to form a session or process user information according to the updated environment information from the policy server. can However, this is an example, and in another embodiment, algorithms and library files for processing according to various communication methods and authentication methods are stored in advance in the session management unit 244 and the communication management unit 243, and the session management unit 244 and It is also possible for the communication management unit 243 to select and use suitable information from among the environment information of the scraping environment management unit 242 .

도 5는 일 실시예에 따른 데이터 스크래핑 방법의 각 단계를 나타내는 순서도이다. 본 실시예에 따른 데이터 스크래핑 방법은, 본 발명의 실시예들에 따른 데이터 스크래핑 시스템을 이용하여 수행될 수 있다. 5 is a flowchart illustrating each step of a data scraping method according to an embodiment. The data scraping method according to the present embodiment may be performed using the data scraping system according to the embodiments of the present invention.

도 5를 참조하면, 먼저 사용자에 의해 호출된 조회 또는 수행의 정보 및 사용자 정보를 포함하여 스크래핑에 필요한 정보를 수신할 수 있다(S11). 일 실시예에서는, 스크래핑될 데이터 항목의 정보를 메타 DB에 저장할 수도 있다(S12). 다음으로, 내부 스케줄 알고리즘을 사용하여 플랫폼 독립적인 스크립트 엔진에 사용자 정보와 작업을 할당할 수 있다(S13). 예를 들어, 할당될 사용자 정보와 작업은 스크래핑 수집정보 전문의 형태로 스크립트 엔진에 전달될 수 있다. Referring to FIG. 5 , it is possible to receive information necessary for scraping, including information on inquiry or execution called by a user and user information (S11). In one embodiment, information on the data item to be scraped may be stored in the meta DB (S12). Next, user information and tasks can be assigned to a platform-independent script engine using an internal scheduling algorithm (S13). For example, user information and tasks to be assigned may be transmitted to the script engine in the form of scraping collection information full text.

사용자 정보와 작업이 할당된 스크립트 엔진에서는, 스크립트 엔진에 저장된 환경 정보에 기초하여 스크래핑할 기관의 통신 정책(예컨대, 통신 암호화 프로토콜, 세션 유지 시간)에 부합하는 통신 세션을 생성한다(S14). 또한 스크립트 엔진에서는, 스크립트 엔진에 저장된 환경 정보에 기초하여, 사용자 정보를 스크래핑할 기관의 보안 정책에 따라 처리하여 인증값을 생성하고(S15), 생성된 인증값을 통신 세션에 전송함으로써(S16), 사용자에 의해 호출된 조회 또는 수행에 대응되는 데이터를 스크래핑할 수 있다(S17). 인증값은 스크래핑할 정보에 대한 기관의 보안 정책에 따라 인증서 및 전자서명을 암호화한 값일 수도 있고, 또는 단순히 사용자의 ID 및 비밀번호 등 사용자 정보일 수도 있다. The script engine to which user information and tasks are assigned creates a communication session that conforms to the communication policy (eg, communication encryption protocol, session maintenance time) of the institution to be scraped based on the environment information stored in the script engine (S14). In addition, in the script engine, based on the environment information stored in the script engine, the user information is processed according to the security policy of the institution to be scraped to generate an authentication value (S15), and by transmitting the generated authentication value to the communication session (S16) , it is possible to scrape the data corresponding to the inquiry or execution called by the user (S17). The authentication value may be a value obtained by encrypting the certificate and digital signature according to the security policy of the institution for the information to be scraped, or may simply be user information such as the user's ID and password.

일 실시예에서, 스크립트 엔진은 기관이 제공하는 데이터 셋으로부터 메타 DB의 스크래핑 항목에 기반하여 데이터를 추출할 수 있다(S18). 이를 위하여, 메타 DB에는 기관이 제공하는 데이터 셋에서 각 항목이 위치하는 부분을 특정하는 식별 정보가 미리 저장될 수 있다. 이상의 과정에 의하여 추출된 스크래핑 데이터는 정보수집 프로그램에 의하여 취합된 후 사용자에게 제공될 수 있다.In one embodiment, the script engine may extract data from the data set provided by the institution based on the scraping item of the meta DB (S18). To this end, identification information for specifying a portion in which each item is located in the data set provided by the institution may be previously stored in the meta DB. The scraping data extracted by the above process may be collected by the information collection program and then provided to the user.

도 6은 또 다른 실시예에 따른 데이터 스크래핑 방법의 각 단계를 나타내는 순서도이다.6 is a flowchart illustrating each step of a data scraping method according to another embodiment.

도 3 및 도 6을 참조하면, 먼저 데이터 스크래핑 정보수집부(200)에서는 사용자 장치(10)로부터의 스크래핑 요청을 송수신부(100)를 통해 수신하고, 스크래핑 엔진 정보 읽기를 수행한다(S100). 이는 스크래핑 엔진부에 저장된 인증서의 버전, 스크래핑 엔진부의 오작동 여부, 수행 시간, 수행 작업의 간략한 내용, 최적화용 정보, 스크래핑 작업의 권한 정보 등을 확인하는 과정을 포함할 수 있다. 3 and 6, first, the data scraping information collecting unit 200 receives a scraping request from the user device 10 through the transceiver 100, and reads scraping engine information (S100). This may include the process of checking the version of the certificate stored in the scraping engine unit, whether the scraping engine unit malfunctions, execution time, brief details of the performed operation, information for optimization, and authority information of the scraping operation.

일 실시예에서, 데이터 스크래핑 정보수집부(200)는 스크래핑 요청에 기초하여 스크래핑할 항목을 결정하고, 이를 메타 DB(280)에 저장할 수 있다(S110). 스크래핑할 항목이 결정되면, 데이터 스크래핑 정보수집부(200)에서는 이에 기초하여 기관에 스크래핑을 요청한다(S120). In an embodiment, the data scraping information collection unit 200 may determine an item to be scraped based on the scraping request and store it in the meta DB 280 ( S110 ). When the item to be scraped is determined, the data scraping information collection unit 200 requests scraping from the institution based on this (S120).

스크래핑을 위한 구체적인 과정으로서, 먼저 데이터 스크래핑 정보수집부(200)는 스크래핑 엔진부(240)의 작업 관리를 위한 스크래핑 작업 모니터 및 스크래핑 작업 관리자의 버전 확인 여부를 판단하여 버전을 확인하였으면(단계 S130, S140의 '예') 다음 단계로 넘어가고, 버전을 확인하지 않았으면(단계 S130, S140의 '아니오') 상기 스크래핑 작업 모니터 및 스크래핑 작업의 버전을 동기화(단계 S132, S142)시키는 작업을 수행한다. As a specific process for scraping, first, the data scraping information collection unit 200 checks the version by determining whether to check the version of the scraping operation monitor and the scraping operation manager for the operation management of the scraping engine unit 240 (step S130, 'Yes' in S140) Goes to the next step, and if the version is not checked ('No' in steps S130 and S140), the scraping job monitor and the version of the scraping job are synchronized (steps S132, S142). .

그 다음, 데이터 스크래핑 정보수집부(200)는 스크래핑 엔진부(240) 내 인증서 버전 확인 여부를 판단하여 버전을 확인하였으면(단계 S150의 '예') 다음 단계(S160)로 넘어가고, 버전을 확인하지 않았으면(단계 S150의 '아니오') 인증서의 버전을 동기화(단계 S152)시킨 후 다음 단계(S160)로 넘어간다.Next, the data scraping information collection unit 200 determines whether or not to check the version of the certificate in the scraping engine unit 240, and if the version is confirmed (Yes in step S150), proceeds to the next step (S160), and confirms the version If not (No in step S150), after synchronizing the version of the certificate (step S152), the process proceeds to the next step (S160).

상기 단계(S160)에서는, 요청된 데이터 스크래핑을 위하여 기관의 보안 정책에 따라 요구되는 스크래핑 엔진의 인증 방법을 확인한다(S160). 인증 방법은 기관별로 상이할 수도 있으며, 또한 하나의 기관에서도 스크래핑할 데이터 항목에 따라 인증 방법이 상이할 수 있다. 예를 들어, 잔액 및 입출금 내역 조회에 대해서는 인증서를 요구하지 않고 사용자 ID 및 비밀번호 입력만을 통하여 기관으로부터 데이터 셋을 제공받을 수 있는 반면, 거래 내역이나 유효 기간 등의 조회를 위해서는 전자 서명을 통한 인증서의 인증이 필요할 수 있다. In the step S160, the authentication method of the scraping engine required according to the security policy of the institution for the requested data scraping is checked (S160). The authentication method may be different for each institution, and even in one institution, the authentication method may be different depending on the data item to be scraped. For example, a data set can be provided from an institution through input of user ID and password without requiring a certificate for inquiry of balance and deposit/withdrawal details, whereas, for inquiry of transaction details or validity period, the certificate's digital signature is Authentication may be required.

상기 단계(S160)에서 확인된 인증 방식에 따라, 인증서 인증이 필요할 경우 데이터 스크래핑 정보수집부(200)는 사용자 정보로서 인증서 및 전자서명을 입력받고(S170) 이를 기관이 요구하는 보안 정책에 따라 처리하거나(S180), 또는 사용자 정보로서 ID 및 비밀번호 등을 입력받거나(S190), 생체 인증 방식으로 사용자 정보로서 사용자의 홍채 인식 정보, 지문 인식 정보 또는 다른 형태의 신체 관련 정보를 수신하고(S200) 이를 기관이 요구하는 보안 정책에 따라 처리할 수 있다(S210)According to the authentication method confirmed in step (S160), when certificate authentication is required, the data scraping information collection unit 200 receives a certificate and a digital signature as user information (S170) and processes it according to the security policy required by the institution Or (S180), or receive ID and password as user information (S190), or receive user's iris recognition information, fingerprint recognition information, or other types of body-related information as user information in a biometric authentication method (S200) It can be processed according to the security policy required by the institution (S210)

데이터 스크래핑 정보수집부(200)는 이상의 인증 정보가 처리된 인증값을 전송함으로써 기관으로부터 스크래핑 대상 정보를 수집한다(S220). 이때, 일 실시예에서 데이터 스크래핑 정보수집부(200)는 메타 DB(230)를 참조하여 스크래핑된 데이터가 메타 DB(230)의 스크래핑 항목과 일치하는지 여부를 확인하고(S230), 일치하지 않을 경우 단계 S110으로 돌아가 다시 스크래핑을 수행하며, 일치할 경우 스크래핑 결과를 취합하여 취합된 정보를 사용자에게 반환하게 된다(S240). The data scraping information collection unit 200 collects scraping target information from the institution by transmitting the authentication value in which the above authentication information is processed (S220). At this time, in an embodiment, the data scraping information collection unit 200 refers to the meta DB 230 and checks whether the scraped data matches the scraping item of the meta DB 230 ( S230 ), and if it does not match Returning to step S110, scraping is performed again, and if they match, scraping results are collected and the collected information is returned to the user (S240).

이상에서 설명한 실시예들에 따른 데이터 스크래핑 방법에 의하면, 데이터 스크래핑 정보수집부가 구현되는 장치의 하드웨어나 해당 장치를 운용하기 위한 OS 등 플랫폼에 의하여 영향을 받지 않도록 플랫폼 독립적인 스크립트 형태로 스크래핑 엔진을 구현할 수 있다. 스크래핑 엔진은 스크립트에서 금융 기관 등 기관의 통신 방식에 부합하는 통신 세션을 생성하고, 금융 기관 등에서 요구하는 인증 방식에 따라 처리된 사용자 정보의 인증값을 기관에 전달하여 목적하는 데이터를 스크래핑할 수 있다. 그 결과, 스크래핑 모듈을 각각의 운영체제 별로 별도로 개발할 필요가 없이 다양한 운영체제에서의 스크래핑을 하나의 스크래핑 모듈에서 처리할 수 있어, 사용되는 장치 및 운영체제가 점차 다변화되어 가는 현재의 실정에서 스크래핑 시스템의 개발에 투입되는 비용과 인력을 획기적으로 줄일 수 있는 이점이 있다.According to the data scraping method according to the embodiments described above, the scraping engine is implemented in the form of a platform-independent script so as not to be affected by the platform such as the hardware of the device in which the data scraping information collection unit is implemented or the OS for operating the device. can The scraping engine creates a communication session that matches the communication method of the institution, such as a financial institution, in the script, and delivers the authentication value of the user information processed according to the authentication method required by the financial institution to the institution to scrape the target data. . As a result, scraping in various operating systems can be processed in one scraping module without the need to separately develop a scraping module for each operating system. There is an advantage in that the input cost and manpower can be drastically reduced.

이상에서 설명한 실시예들에 따른 데이터 스크래핑 방법은 적어도 부분적으로 컴퓨터 프로그램으로 구현되고 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다. 실시예들에 따른 기록매체에는 데이터 스크래핑 방법을 구현하기 위한 프로그램이 기록되며, 상기 기록매체는 컴퓨터에 의하여 읽혀질 수 있는 데이터가 저장될 수 있는 임의의 종류의 기록장치를 포함한다. 예컨대, 컴퓨터가 읽을 수 있는 기록매체에는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다. 또한, 본 실시예를 구현하기 위한 기능적인 프로그램, 코드 및 코드 세그먼트(segment)들은 본 실시예가 속하는 기술 분야의 통상의 기술자에 의해 용이하게 이해될 수 있을 것이다.The data scraping method according to the above-described embodiments may be at least partially implemented as a computer program and recorded in a computer-readable recording medium. A program for implementing the data scraping method is recorded in the recording medium according to the embodiments, and the recording medium includes any type of recording device capable of storing data readable by a computer. For example, a computer-readable recording medium includes a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device. In addition, the computer-readable recording medium may be distributed in a network-connected computer system, and the computer-readable code may be stored and executed in a distributed manner. In addition, functional programs, codes, and code segments for implementing the present embodiment may be easily understood by those skilled in the art to which the present embodiment belongs.

이상에서 살펴본 본 발명은 도면에 도시된 실시예들을 참고로 하여 설명하였으나 이는 예시적인 것에 불과하며 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 실시예의 변형이 가능하다는 점을 이해할 것이다. 그러나, 이와 같은 변형은 본 발명의 기술적 보호범위 내에 있다고 보아야 한다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해서 정해져야 할 것이다.Although the present invention as described above has been described with reference to the embodiments shown in the drawings, it will be understood that these are merely exemplary, and that various modifications and variations of the embodiments are possible therefrom by those of ordinary skill in the art. However, such modifications should be considered to be within the technical protection scope of the present invention. Accordingly, the true technical protection scope of the present invention should be determined by the technical spirit of the appended claims.

Claims (21)

스크래핑을 위한 서비스 프로그램을 구비하며, 사용자 장치로부터 스크래핑을 위한 사용자 정보를 포함하는 스크래핑 요청을 수신하고, 스크래핑된 데이터를 상기 사용자 장치에 전송하도록 구성된 송수신부; 및
상기 송수신부에 수신된 상기 사용자 정보를 이용하여 하나 이상의 기관으로부터 데이터를 스크래핑하도록 구성된 하나 이상의 데이터 스크래핑 정보수집부를 포함하되,
상기 하나 이상의 데이터 스크래핑 정보수집부 각각은,
스크래핑을 수행할 상기 기관의 식별정보와, 스크래핑을 수행할 상기 기관에 상응하는 인증 정보 및 통신 정보 중 하나 이상을 포함하는 환경 정보를 저장하며, 상기 환경 정보에 기초하여 상기 기관으로부터 데이터를 스크래핑하도록 구성된 스크래핑 엔진부를 포함하고,
상기 스크래핑 엔진부는,
상기 환경 정보에 기초한 스크래핑이 실패하는 것에 대한 응답으로, 상기 기관이 요구하는 통신 방식 및 인증 방식 중 하나 이상의 변경에 관련된 정보를 상기 기관으로부터 수신하되,
상기 기관이 요구하는 통신 방식 및 인증 방식 중 하나 이상에 대한 정보를 제공하는 웹 페이지에 접속하여 스크래핑 방식으로 상기 변경에 관련된 정보를 수신하며,
수신된 상기 변경에 관련된 정보를 이용하여 상기 환경 정보를 업데이트하도록 더 구성되는 데이터 스크래핑 시스템.
a transceiver comprising a service program for scraping, configured to receive a scraping request including user information for scraping from a user device, and transmit the scraped data to the user device; and
one or more data scraping information collecting units configured to scrape data from one or more organizations using the user information received in the transceiver;
Each of the one or more data scraping information collecting units,
store environment information including at least one of identification information of the institution to be scraped, authentication information and communication information corresponding to the institution to be scraped, and scrape data from the institution based on the environment information Containing a scraping engine unit configured,
The scraping engine unit,
In response to the failure of scraping based on the environmental information, information related to a change of at least one of a communication method and an authentication method required by the organization is received from the organization,
Accessing a web page providing information on at least one of a communication method and an authentication method required by the institution to receive information related to the change in a scraping method,
The data scraping system further configured to update the environment information using the received information related to the change.
제 1항에 있어서,
상기 스크래핑 엔진부는,
상기 환경 정보를 저장하는 스크래핑 환경 관리부;
상기 통신 정보에 기초하여 상기 기관과 상기 스크래핑 엔진부 사이의 통신 세션을 생성하는 세션 관리부;
상기 인증 정보에 기초하여 상기 사용자 정보를 처리하는 통신 관리부; 및
상기 사용자 정보가 처리된 인증값을 상기 기관에 전송함으로써 상기 기관으로부터 데이터를 스크래핑하도록 구성된 스크립트 엔진을 포함하는 데이터 스크래핑 시스템.
The method of claim 1,
The scraping engine unit,
a scraping environment management unit for storing the environment information;
a session management unit for generating a communication session between the institution and the scraping engine unit based on the communication information;
a communication management unit for processing the user information based on the authentication information; and
and a script engine configured to scrape data from the authority by sending an authentication value from which the user information has been processed to the authority.
제 2항에 있어서,
상기 세션 관리부 및 상기 통신 관리부는, 업데이트된 상기 환경 정보에 기초한 동작을 위하여 외부 정책 서버로부터 암호화 정책 정보 또는 인증서를 다운로드하도록 더 구성된 데이터 스크래핑 시스템.
3. The method of claim 2,
The session manager and the communication manager are further configured to download encryption policy information or a certificate from an external policy server for an operation based on the updated environment information.
삭제delete 삭제delete 제 1항에 있어서,
상기 하나 이상의 데이터 스크래핑 정보수집부 각각은, 상기 송수신부의 상기 서비스 프로그램과 상기 스크래핑 엔진부가 상호 인증되었는지 여부를 검사함으로써 상기 스크래핑 요청을 검증하도록 구성된 검증부를 더 포함하는 데이터 스크래핑 시스템.
The method of claim 1,
Each of the one or more data scraping information collection units further includes a verification unit configured to verify the scraping request by checking whether the service program of the transceiver unit and the scraping engine unit are mutually authenticated.
제 1항에 있어서,
상기 하나 이상의 데이터 스크래핑 정보수집부 각각은, 상기 데이터 스크래핑 정보수집부와 상호 인증된 하나 또는 복수의 사용자의 인증서를 저장하고 있으며, 상기 데이터 스크래핑 정보수집부에 할당된 스크래핑 작업에 기초하여 필요한 인증서를 상기 스크래핑 엔진부에 설치하도록 구성된 인증서 분배부를 더 포함하는 데이터 스크래핑 시스템.
The method of claim 1,
Each of the one or more data scraping information collection units stores certificates of one or a plurality of users mutually authenticated with the data scraping information collection unit, and based on the scraping operation assigned to the data scraping information collection unit, a necessary certificate is obtained. The data scraping system further comprising a certificate distribution unit configured to be installed in the scraping engine unit.
제 7항에 있어서,
상기 하나 이상의 데이터 스크래핑 정보수집부 각각은, 상기 사용자 장치에 설치된 인증서와 상기 스크래핑 엔진부에 설치된 인증서가 상이할 경우, 상기 사용자 장치로부터 수신된 인증서를 이용하여 상기 스크래핑 엔진부에 설치된 인증서를 갱신하도록 구성된 모듈 업데이터부를 더 포함하는 데이터 스크래핑 시스템.
8. The method of claim 7,
Each of the one or more data scraping information collecting units is configured to, when the certificate installed in the user device and the certificate installed in the scraping engine unit are different, use the certificate received from the user device to update the certificate installed in the scraping engine unit A data scraping system further comprising a configured module updater.
스크래핑을 위한 서비스 프로그램을 구비한 데이터 스크래핑 시스템의 송수신부가, 사용자 장치로부터, 사용자에 의해 호출된 조회 또는 수행의 정보 및 사용자 정보를 포함하는 스크래핑 요청을 수신하는 단계;
상기 데이터 스크래핑 시스템이, 스크래핑을 수행할 기관의 식별정보와 스크래핑을 수행할 상기 기관에 상응하는 인증 정보 및 통신 정보 중 하나 이상을 포함하는 환경 정보를 저장하는 상기 데이터 스크래핑 시스템의 스크래핑 엔진부에 상기 사용자 정보 및 상기 사용자 정보에 기초한 작업을 할당하는 단계;
상기 스크래핑 엔진부가 상기 환경 정보에 기초하여 상기 기관으로부터 데이터를 스크래핑하는 단계;
상기 송수신부가 스크래핑된 데이터를 상기 사용자 장치에 전송하는 단계;
상기 스크래핑 엔진부가, 상기 환경 정보에 기초한 스크래핑이 실패하는 것에 대한 응답으로, 상기 기관이 요구하는 통신 방식 및 인증 방식 중 하나 이상의 변경에 관련된 정보를 상기 기관으로부터 수신하는 단계; 및
상기 스크래핑 엔진부가, 수신된 상기 변경에 관련된 정보를 이용하여 상기 환경 정보를 업데이트하는 단계를 포함하되,
상기 변경에 관련된 정보를 상기 기관으로부터 수신하는 단계는, 상기 스크래핑 엔진부가, 상기 기관이 요구하는 통신 방식 및 인증 방식 중 하나 이상에 대한 정보를 제공하는 웹 페이지에 접속하여 스크래핑 방식으로 상기 변경에 관련된 정보를 수신하는 단계를 포함하는 데이터 스크래핑 방법.
Receiving, by a transceiver of a data scraping system having a service program for scraping, a scraping request including user information and information of inquiry or execution called by a user, from a user device;
The data scraping system is configured to store environment information including at least one of identification information of an institution to perform scraping and authentication information and communication information corresponding to the institution to perform scraping in the scraping engine unit of the data scraping system. allocating user information and a task based on the user information;
scraping data from the institution based on the environment information by the scraping engine unit;
transmitting the scraped data to the user device by the transceiver;
receiving, by the scraping engine unit, information related to a change of at least one of a communication method and an authentication method requested by the organization, from the organization in response to the failure of scraping based on the environment information; and
Including, by the scraping engine unit, updating the environment information using the received information related to the change,
The step of receiving the information related to the change from the institution may include accessing, by the scraping engine unit, a web page that provides information on at least one of a communication method and an authentication method required by the institution, related to the change in a scraping manner. A data scraping method comprising receiving information.
제 9항에 있어서,
상기 기관으로부터 데이터를 스크래핑하는 단계는,
상기 스크래핑 엔진부가 상기 통신 정보에 기초하여 상기 기관과 상기 스크래핑 엔진부 사이의 통신 세션을 생성하는 단계;
상기 스크래핑 엔진부가 상기 인증 정보에 기초하여 상기 사용자 정보를 처리하는 단계; 및
상기 스크래핑 엔진부가 상기 사용자 정보가 처리된 인증값을 상기 기관에 전송함으로써 상기 기관으로부터 데이터를 스크래핑하는 단계를 포함하는 데이터 스크래핑 방법.
10. The method of claim 9,
Scraping data from the institution comprises:
generating, by the scraping engine unit, a communication session between the institution and the scraping engine unit based on the communication information;
processing the user information based on the authentication information by the scraping engine unit; and
Data scraping method comprising the step of scraping data from the institution by the scraping engine unit transmitting the authentication value processed by the user information to the institution.
제 10항에 있어서,
상기 스크래핑 엔진부가 업데이트된 상기 환경 정보에 기초한 동작을 위하여 외부 정책 서버로부터 암호화 정책 정보 또는 인증서를 다운로드하는 단계를 더 포함하는 데이터 스크래핑 방법.
11. The method of claim 10,
The method further comprising the step of downloading, by the scraping engine unit, encryption policy information or a certificate from an external policy server for an operation based on the updated environment information.
삭제delete 삭제delete 제 9항에 있어서,
상기 기관으로부터 데이터를 스크래핑하는 단계 전에, 상기 데이터 스크래핑 시스템이, 상기 송수신부의 상기 서비스 프로그램과 상기 스크래핑 엔진부가 상호 인증되었는지 여부를 검사함으로써 상기 스크래핑 요청을 검증하는 단계를 더 포함하는 데이터 스크래핑 방법.
10. The method of claim 9,
The data scraping method further comprising, before the step of scraping data from the institution, the data scraping system verifying the scraping request by checking whether the service program of the transceiver and the scraping engine unit are mutually authenticated.
제 9항에 있어서,
상기 데이터 스크래핑 시스템은 상기 데이터 스크래핑 시스템과 상호 인증된 하나 또는 복수의 사용자의 인증서를 저장하고 있으며,
상기 기관으로부터 데이터를 스크래핑하는 단계 전에, 상기 데이터 스크래핑 시스템이, 상기 스크래핑 엔진부에 할당된 스크래핑 작업에 기초하여 필요한 인증서를 상기 스크래핑 엔진부에 설치하는 단계를 더 포함하는 데이터 스크래핑 방법.
10. The method of claim 9,
The data scraping system stores certificates of one or more users mutually authenticated with the data scraping system,
The data scraping method further comprising, before the step of scraping data from the authority, the data scraping system installing a necessary certificate in the scraping engine unit based on a scraping operation assigned to the scraping engine unit.
제 15항에 있어서,
상기 기관으로부터 데이터를 스크래핑하는 단계 전에, 상기 데이터 스크래핑 시스템이, 상기 사용자 장치에 설치된 인증서와 상기 스크래핑 엔진부에 설치된 인증서가 상이할 경우, 상기 사용자 장치로부터 수신된 인증서를 이용하여 상기 스크래핑 엔진부에 설치된 인증서를 갱신하는 단계를 더 포함하는 데이터 스크래핑 방법.
16. The method of claim 15,
Before the step of scraping data from the authority, when the certificate installed in the user device and the certificate installed in the scraping engine unit are different from the data scraping system, the scraping engine unit using the certificate received from the user device The data scraping method further comprising the step of renewing the installed certificate.
하드웨어와 결합되어 제9항 내지 제11항 및 제14항 내지 제16항 중 어느 한 항에 따른 데이터 스크래핑 방법을 실행하도록 매체에 저장된 컴퓨터 프로그램.17. A computer program stored on a medium in combination with hardware to execute the data scraping method according to any one of claims 9 to 11 and 14 to 16. 삭제delete 삭제delete 삭제delete 삭제delete
KR1020190004557A 2018-04-25 2019-01-14 System, method and computer program for data scrapping using script engine KR102340474B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190004557A KR102340474B1 (en) 2018-04-25 2019-01-14 System, method and computer program for data scrapping using script engine

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180047729A KR101982085B1 (en) 2018-04-25 2018-04-25 System, method and computer program for data scrapping using script engine
KR1020190004557A KR102340474B1 (en) 2018-04-25 2019-01-14 System, method and computer program for data scrapping using script engine

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020180047729A Division KR101982085B1 (en) 2018-04-25 2018-04-25 System, method and computer program for data scrapping using script engine

Publications (2)

Publication Number Publication Date
KR20190124630A KR20190124630A (en) 2019-11-05
KR102340474B1 true KR102340474B1 (en) 2021-12-20

Family

ID=79033830

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190004557A KR102340474B1 (en) 2018-04-25 2019-01-14 System, method and computer program for data scrapping using script engine

Country Status (1)

Country Link
KR (1) KR102340474B1 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111026945B (en) * 2019-12-05 2024-01-26 北京创鑫旅程网络技术有限公司 Multi-platform crawler scheduling method, device and storage medium
KR102308511B1 (en) * 2020-02-04 2021-10-06 (주) 씨이랩 User information integration platform using big data and artificial intelligence and operatiing method thereof
KR102199486B1 (en) 2020-06-24 2021-01-06 주식회사 틸코블렛 Authorized authentication agency for content providers
CN111796985B (en) * 2020-07-08 2023-11-17 北京首汽智行科技有限公司 Database operation log uploading method
KR102211033B1 (en) 2020-07-15 2021-02-03 주식회사 틸코블렛 Agency service system for accredited certification procedures
KR102296659B1 (en) * 2020-11-11 2021-08-31 민경권 System and Method for Integrated Usage Personal Information Using Scrapping Technology Based on End-Users Consulation
CN114328302B (en) * 2021-12-28 2023-10-10 威创集团股份有限公司 Multi-host input control method, system, equipment and storage medium

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100494975B1 (en) 2001-02-21 2005-06-16 주식회사 핑거 Customer finance management method and system using screen scrapping
KR101402146B1 (en) * 2012-08-30 2014-06-03 주식회사 핑거 Method for scraping web screen in mobile device and mobile device providing web screen scraping
KR101815235B1 (en) * 2015-12-30 2018-01-08 주식회사쿠콘 System, method and computer program for data scrapping

Also Published As

Publication number Publication date
KR20190124630A (en) 2019-11-05

Similar Documents

Publication Publication Date Title
KR102340474B1 (en) System, method and computer program for data scrapping using script engine
KR101982085B1 (en) System, method and computer program for data scrapping using script engine
KR101815235B1 (en) System, method and computer program for data scrapping
US8910254B2 (en) System and methods for profiling client devices
KR20180113229A (en) Loan service providing method using black chain and system performing the same
US11586687B2 (en) Apparatus, method and computer program for cloud scraping using pre-scraped big data
US11336555B2 (en) Network segmentation effectiveness system and method
CN111580874A (en) System safety control method and system for data application and computer equipment
CN113360800A (en) Method and device for processing featureless data, computer equipment and storage medium
CN111917837A (en) Web micro application program publishing system and implementation method thereof
CN109948330B (en) Method, device, equipment and storage medium for implementing application management service
US20210157949A1 (en) Event data tagged with consent records
CN111177099A (en) Data processing method and device of business system, electronic equipment and storage medium
CN110598479A (en) Data processing method and device and computer readable storage medium
CN112636954B (en) Server upgrading method and device
KR20190130957A (en) Apparatus, method and computer program for cloud scrapping using pre-scrapped bigdata
KR100624705B1 (en) Distributed processing method by screen scraping using scraping machine, and system thereof
CN110647344A (en) Vulnerability-containing software automatic updating method based on Internet
US11861147B1 (en) Graphical user interface and execution service for enabling limited-privilege users to control wire-transfer application functions in a secure computing environment
US20240005321A1 (en) Digital policy criteria integration for making determinations within an inter-network facilitation system
CN116755719A (en) Data processing method, device and data processing system of application component
US10298682B2 (en) Controlling device data collectors using omni-collection techniques
CN114528176A (en) Problem management in a subscriber system
CN116346479A (en) Data access method, device, equipment and storage medium
CN115168368A (en) Enterprise business platform, processing method, electronic equipment and storage medium

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant