KR20200079024A - 웹 데이터 수집 장치 및 방법 - Google Patents

웹 데이터 수집 장치 및 방법 Download PDF

Info

Publication number
KR20200079024A
KR20200079024A KR1020180168480A KR20180168480A KR20200079024A KR 20200079024 A KR20200079024 A KR 20200079024A KR 1020180168480 A KR1020180168480 A KR 1020180168480A KR 20180168480 A KR20180168480 A KR 20180168480A KR 20200079024 A KR20200079024 A KR 20200079024A
Authority
KR
South Korea
Prior art keywords
dom
web
user
data collection
target site
Prior art date
Application number
KR1020180168480A
Other languages
English (en)
Other versions
KR102191458B1 (ko
Inventor
이영곤
Original Assignee
(주)해나소프트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)해나소프트 filed Critical (주)해나소프트
Priority to KR1020180168480A priority Critical patent/KR102191458B1/ko
Publication of KR20200079024A publication Critical patent/KR20200079024A/ko
Application granted granted Critical
Publication of KR102191458B1 publication Critical patent/KR102191458B1/ko

Links

Images

Classifications

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

웹 데이터 스크랩핑 시스템 및 그 동작 방법이 제공된다. 시스템은 사용자가 지정하는 타킷 사이트를 모사하여 별도의 프레임에 렌더링한다. 이 과정에서 웹 표준을 준수하지 않는 사이트도 프록시 설정을 통해 정확히 모사될 수 있다. 사용자는 해당 프레임에서 DOM을 직관적이고 쉽게 선택하고, 이를 제어하는 이벤트를 데이터 수집 규칙으로 생성할 수 있다. 이는 시나리오에 반영되어, 자동 반복 수행 등 웹 스크랩핑 서비스가 제공될 수 있다.

Description

웹 데이터 수집 장치 및 방법{APPARATUS AND METHOD FOR SCRAPPING WEB DATA}
웹 데이터 스크랩핑 장치 및 그 동작 방법에 연관되며, 보다 특정하게는 전문적인 지식이 없는 유저가 쉽게 활용할 수 있는 웹 데이터 스크랩핑 서비스에 연관된다.
웹 스크랩핑(Web scraping: 또는 "web harvesting", "web data extraction", "web crawling" 등으로 불리우기도 함)은 웹 사이트로부터 데이터를 추출하여 확보하는 것이다. 사람이 손수 할 수도 있지만, 웹 스크랩핑 소프트웨어들도 제공되고 있다. 기존의 웹 스크랩핑 소프트웨어들 또는 서비스 사이트들은 개발자들이 아닌 전문 지식 없는 일반적 유저가 활용하기에 어려움이 있기도 했다.
한편, 월드 와이드 웹 컨소시움 (World Wide Web Consortium: W3C)의 동일 출처 정책 (same-origin policy)에 따라 한 출처에서 로드된 문서나 스크립트는 다른 출처의 자원과 상호작용하지 못하는 제약이 있어, 웹 스크랩핑을 위한 전용 프레임 제공은 어려움을 갖는다.
또한, 웹 스크랩핑 과정에서 OS 커널에서의 물리적 키보드 및 마우스 이벤트등의 표준입출력을 웹브라우저에 주입할 수 없는 한계가 있다. 기존 입력방식은 엘리먼트를 관리하는 HTML5 기반의 특정 태그를 Javascript의 Selector 또는 XPath를 통해서 자원권한을 획득한 후 Javascript 이벤트를 강제로 주입하는 기능을 사용한다. 그러나, 해당 기능을 악의적으로 사용할 경우 불법적인 방법으로 트래픽을 과다하게 발생시킬 수 있고 웹 매크로와 같은 형식으로 구동되어 웹사이트에 피해를 줄 수 있다. 따라서, 최근 개발되고 있는 대형 포털 및 보안이 뛰어난 웹 서비스의 경우 Javascript 모듈 또는 서버 프로그램에서의 필터링을 통해 이벤트를 강제로 주입하는 방법을 차단하고 있다.
대한민국 등록특허 10-1125083호 (공고일자 2012년3월21일) 미국 등록특허 US 7,647,351호 (공고일자 2010년1월12일)
일측에 따르면, 웹 데이터 스크랩핑 장치의 동작 방법이 제공된다. 방법은: 사용자로부터 지정되는 타킷 사이트를 모사하여 타깃 사이트 표시부에 렌더링하는 단계; 상기 렌더링되는 결과에 포함되는 적어도 하나의 DOM(Document Object Model) 중 사용자가 선택하는 제1 DOM에 대해 다른 객체와 구분되도록 그래픽 처리를 수행하는 단계; 및 상기 제1 DOM에 적용될 수 있는 적어도 하나의 OS영역 물리적 입력 이벤트를 상기 OS영역 보다 상위 어플리케이션에 전달하는 중계 모듈을 통해 메뉴 형태로 입력 이벤트 표시부에 디스플레이 하는 단계를 포함할 수 있다.
일실시예에 따르면 방법은 상기 디스플레이 되는 적어도 하나의 OS영역 물리적 입력 이벤트 중, 사용자로부터 선택되는 제1 물리적 이벤트를 제1 DOM에 적용하는 규칙에 대응하는 제1 시나리오 라인을 데이터 수집 규칙 표시부에 추가하여 시나리오에 반영하는 단계를 더 포함할 수 있다.
또한, 방법은 상기 작성된 시나리오 중 OS 영역 물리적 입력 이벤트를 실행하는 경우, 상기 중계 모듈을 통해 OS 영역보다 상위 어플리케이션에서 물리적 입력 이벤트를 발생하는 시나리오 실행 단계를 더 포함할 수 있다.
한편, 상기 시나리오 작성 또는 실행 단계에서 상기 OS 영역 물리적 입력 이벤트의 DOM 좌표에 대응되는 DOM이 상기 중계 모듈을 통해 제어 가능한 객체인지 여부를 판별하는 것을 포함할 수 있다.
일실시예에 따르면 방법은 상기 상위 어플리케이션은 웹 브라우저나 빅데이터 수집 프로그램인 것을 포함할 수 있다.
도 1은 일실시예에 따른 웹 데이터 수집 시스템의 구성을 도시한 블록도이다.
도 2는 일실시예에 따른 웹 데이터 수집 시스템이 사용자에게 제공하는 화면 구성을 도시한다.
도 3은 일실시예에 따른 웹 데이터 수집 시스템에서 DOM이 선택되는 과정을 설명하기 위한 도면이다.
도 4는 일실시예에 따라 선택된 DOM에 대응하는 이벤트 메뉴가 제공되는 과정을 설명하기 위한 도면이다.
도 5는 일실시예에 따른 시나리오의 설정과 편집을 설명하기 위한 도면이다.
도 6은 일실시예에 따라 선택된 DOM에 대응하는 이벤트 메뉴에 물리적 텍스트 입력 이벤트로 제공되는 과정을 설명하기 위한 도면이다.
도 7은 일실시예에 따라 선택된 DOM에 대응하는 이벤트 메뉴에 물리적 요소 추가 이벤트로 제공되는 과정을 설명하기 위한 도면이다.
도 8은 일실시예에 따른 웹 데이터 프록시 설정 및 경로 수정 과정을 도시한 도면이다.
도 9은 일실시예에 따른 웹 데이터 수집 시스템의 동작 흐름을 도시한 도면이다.
도 10은 일실시예에 따른 데이터 수집 로봇의 구성을 설명하기 위한 도면이다.
도 11은 일실시예에 따른 물리적 입력을 통한 이벤트를 상위 어플리케이션에 제공되는 과정을 설명하기 위한 도면이다.
이하에서, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 권리범위는 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
아래 설명에서 사용되는 용어는, 연관되는 기술 분야에서 일반적이고 보편적인 것으로 선택되었으나, 기술의 발달 및/또는 변화, 관례, 기술자의 선호 등에 따라 다른 용어가 있을 수 있다. 따라서, 아래 설명에서 사용되는 용어는 기술적 사상을 한정하는 것으로 이해되어서는 안 되며, 실시예들을 설명하기 위한 예시적 용어로 이해되어야 한다.
또한 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세한 그 의미를 기재할 것이다. 따라서 아래 설명에서 사용되는 용어는 단순한 용어의 명칭이 아닌 그 용어가 가지는 의미와 명세서 전반에 걸친 내용을 토대로 이해되어야 한다.
웹 스크랩핑 인터페이스
웹 스크랩핑을 수행하는 소프트웨어 및/또는 웹 서비스들은 개발자들의 영역에 머물러 있었다. 전문 지식 없는 일반적 유저는 웹 스크랩핑을 위한 코드를 설계할 수 없었다. 실시예들에 따르면, 이러한 웹 스크랩핑 객체를 사용자가 직관적으로 그래픽 유저 인터페이스 기반에서 선택하고, 선택된 객체에 대해 수행할 이벤트를 설정한다. 하나 이상의 객체 각각에 대해 일련의 이벤트를 설정하는 것을 스크랩핑 시나리오 구성이라고 하는데, 실시예들에 따르면 사용자는 직관적으로 쉽게 시나리오를 구성할 수 있다. 그리고 해당 시나리오를 실행할 주기를 설정하면 해당 주기마다 로봇이 동일한 시나리오에 따라 웹 스크랩핑을 자동으로 수행한다. 따라서 사용자는 마치 에디팅(editing) 어플리케이션에서 매크로 서비스를 레코딩 해 두듯이 웹 스크랩핑 시나리오를 생성해 둘 수 있고, 설정된 주기 및/또는 반복 횟수를 정해 놓으면 웹 스크랩핑은 자동으로 수행될 수 있다.
웹 스크랩핑 소프트웨어의 DOM 제어
실시예에 따른 웹 스크랩핑 인터페이스에서 이벤트를 적용할 객체가 되는 대상을 문서 객체 모델(Document Object Model, 이하에서는 'DOM'이라고 함)이라고 한다. DOM은 html 및 xml 문서를 처리하는 api(application programming interface)이다. Html은 head, body, table, tr, td 등등 수많은 태그로 이루어진 문서이고, 이 태그들이 모두 이루어져서 유저들이 볼 수 있는 시각적 표현이 만들어진다. DOM은 이 태그로 이루어진 웹 문서 내의 한 부분 부분을 의미하며, 사용자가 유저 인터페이싱 장치 (예시적으로, 키보드, 마우스, 터치스크린 등)로 선택하고, 어떠한 액션 (이를 테면, 키 입력, 마우스 클릭, 드래그, 터치 등. 다만 이에 한정되지 않음)을 할 수 있는 대상이다. 실시예들에 따르면 웹 화면을 별도의 브라우징 프레임인 i-frame 내에서 구현하면서 사용자가 개별 DOM을 선택하고 제어할 수 있도록 제공한다. 특정 DOM이 선택되면 해당 DOM에 적용할 수 있는 복수 개의 이벤트들이 우측 메뉴 화면에 제공되고, 사용자가 그 중 하나 이상의 이벤트를 선택하여 특정 DOM에 적용될 이벤트를 완료하면 해당 이벤트가 시나리오의 일부로서 하단의 시나리오 라인으로 추가된다. 이하에서는 도면들을 참조하여 실시예들을 보다 상세히 설명한다.
예시적 시스템 구성
일실시예에 따른 시스템은 도 1과 같이 구성될 수 있다. 웹 데이터 수집 시스템은 웹 데이터 탐색 영역(100) 및 웹 데이터 수집 영역(140)을 포함한다. 웹 데이터 탐색 영역(100)은 타깃 사이트 관리 유닛(110), 데이터 수집 규칙 관리 유닛(120), 제어 서버(130) 및 데이터 수집 로봇(150)을 포함한다. 웹 데이터 수집 영역(140)은 데이터 수집 규칙 생성 유닛(180) 및 타깃 사이트 설정 유닛(190)을 포함한다.
타깃 사이트 관리 유닛(110)은 웹 데이터 수집 영역(140)의 타깃 사이트 설정 유닛(190)으로부터 요청 신호(170)로서 타깃 사이트에 대한 정보를 제공받아 이를 저장하고, 필요 시에 타깃 사이트에 대한 정보를 제공할 수 있다. 그리고 데이터 수집 규칙 관리 유닛(120)은 웹 데이터 수집 영역(140)의 데이터 수집 규칙 생성 유닛(180)으로부터 요청 신호(170)로서 데이터 수집 규칙에 대한 정보를 제공받아 이를 저장하고, 필요 시에 데이터 수집 규칙에 대한 정보를 제공할 수 있다. 제어 서버(130)는 타깃 사이트 관리 유닛(110)으로부터 타깃 사이트에 대한 정보를 제공 받아, 타깃 사이트로부터 데이터를 다운받을 수 있도록 데이터 수집 절차를 제어할 수 있다. 제어서버(130)에 대해서는 도 2에서 상세히 설명하도록 한다.
데이터 수집 로봇(150)은 타깃 사이트 관리 유닛(110)으로부터 타깃 사이트에 대한 정보를 제공받고, 데이터 수집 규칙 관리 유닛(120)으로부터 데이터 수집 규칙에 대한 정보를 제공받아 설정된 시간 간격마다 주기적 및/또는 반복적으로 데이터 수집 규칙에 따라 타깃 사이트로부터 타깃 데이터를 수집할 수 있다.
데이터 수집 규칙 생성 유닛(180)은 사용자가 제공되는 웹 데이터 수집 시스템의 유저 인터페이스를 이용하여 마우스 클릭, 키보드 입력 등을 통해 데이터 수집 규칙을 생성할 수 있다. 데이터 수집 규칙 생성 유닛(180)은 그래픽 유저 인터페이스를 통해 사용자가 선택하는 DOM에 대해 사용자가 지정하는 이벤트를 수신한다. 이러한 이벤트는 하나일 수도 있지만, 바람직하게는 복수 개의 이벤트가 일련의 시흐름을 갖고 시나리오로서 생성될 수 있다. 사용자는 전용 웹 및/또는 앱을 토해 타킷 사이트를 설정할 수도 있는데, 이 경우 타깃 사이트 설정 유닛(190)이 이러한 설정을 처리한다. 유닛(190)은 사용자가 제공되는 웹 데이터 수집 시스템의 유저 인터페이스를 이용하여, 웹 데이터를 수집하고자 하는 타깃 사이트를 설정할 수 있다.
도 1에서 제시되는 블록도는 물리적인 엘리먼트의 구분을 의미하는 것일 수도 있지만, 물리적 구분이 아니라 논리적인 구분을 의미하는 것일 수 있다. 따라서, 하나 이상의 유닛들은 실질적으로 동일한 하드웨어 엘리먼트에 의해 함께 구현되는 것도 가능하다. 따라서, 예시적인 블록도인 도 1에 국한되지 않고, 실질적으로 동일한 기능을 수행하는 구성도 발명이 표상하는 범위에 포함되는 것으로 이해되어야 한다.
'i-frame'의 구현
일실시예에 따르면 스크랩핑의 대상이 되는 웹 페이지(이하에서는 '타킷 페이지'라고 할 수 있음)를 범용 웹 브라우저 자체가 아닌 이를 통해 제공되는 별도의 프레임(이를 명세서 전반에 걸처 'i-frame'이라고 함)에서 렌더링한다. i-frame에서 타킷 페이지를 렌더링하고, 여기서 DOM 선택과 제어 이벤트 선택이 가능하도록 하기 위해 웹 데이터 수집 시스템 프레임(200)이 제공된다. 도 2는 일실시예에 따른 웹 데이터 수집 시스템의 구현 프레임(200)을 도시한 도면이다. 이러한 프레임(200)은 실시예들에 따라 사용자가 쉽게 직관적으로 타킷 사이트 및 그에 포함되는 DOM을 선택/제어 하고, 이에 따른 이벤트를 선택하여 웹 데이터 수집 시나리오를 생성/관리할 수 있도록 하는 그래픽 유저 인터페이스의 집합으로서, 웹 기반일 수도 있으나, 이에 국한되는 것은 아니다. 이를테면, 앱(APP) 기반의 전용 프로그램에 의해 프레임(200)이 제공될 수도 있다. 이하에서 별다른 언급이 없더라도 프레임(200)의 형태나 제공 방식에 대해서는 일부 예시된 응용으로 국한하여 이해되어서는 안 된다.
그래픽 기반으로 사용자가 웹 데이터 수집을 제공할 수 있도록 하는 상기 프레임(200)은 타깃 사이트 표시부(210), 입력 이벤트 표시부(220) 및 데이터 수집 규칙 표시부(230)를 포함한다. 예시적으로 그러나 한정되지 않게, 타킷 사이트 표시부(210)는 앞서 언급한 i-frame일 수 있다. 웹 데이터 수집 시스템은 그래픽 유저 인터페이스를 기반으로 하고 있다. 타깃 사이트 표시부(210)에는 웹 데이터를 수집하고자 하는 타깃 사이트가 프록시 서버를 통해 변환된 경로로 인식되어 화면에 나타날 수 있다. 프록시 서버 및 이를 이용하는 프록시 사이트에 대해서는 상세히 후술한다. i-frame인 타깃 사이트 표시부(210)는 타킷 사이트를 모사하여 렌더링하면서, 그 타킷 사이트에서 선택 가능한 DOM을 표시하고 구분하여 선택할 수 있는 그래픽을 제공한다. 이러한 그래픽은 이를 테면, 마우스 오버(mouse-over) 시에 해당 DOM을 하일라이트 처리하거나, 외곽선을 표시하는 등의 그래픽을 제공할 수 있다. 선택된 DOM에 대해서는 일시적 또는 다른 DOM이 선택되기까지 지속적으로 다른 것과 구분되는 그래픽 처리를 제공할 수도 있다.
입력 이벤트 표시부(220)는 복수 개의 서브 메뉴를 포함하는 메뉴 창일 수 있다. 입력 이벤트 표시부(220)는 사용자가 선택한 DOM에 적용할 수 있는 데이터 수집 규칙 이벤트를 표시해줄 수 있다. 이를테면, 해당하는 마우스 클릭, 드래그, 키보드 입력, 터치 등 입력 이벤트들을 나타낼 수 있다. 이와 더불어 물리적 요소 클릭 및 물리적 텍스트 입력을 포함할 수 있다. 선택된 DOM과 무관하게 모든 이벤트들을 제공할 수도 있지만, 바람직하게는 선택된 그 DOM에 적용이 가능한 것만 표시할 수 있다. 또한, 전체 이벤트 메뉴를 표시는 하되, 선택된 DOM에 적용할 수 있는 것만 활성화하여 선택이 가능하도록 하고, 다른 이벤트 메뉴들은 선택되지 않게 비활성화 처리하는 것도 가능하다. 사용자가 타깃 사이트 표시부(210)에 나타나는 특정 이벤트를 선택하면, 이는 선택된 DOM에 그 이벤트를 적용하는 규칙으로 생성되고, 이것은 시나리오의 일부로 반영될 수 있다. 예시적으로, DOM 선택 및 그에 대한 이벤트 선택이 수행되면 시나리오에 하나의 이벤트 라인이 추가될 수 있다. 사용자는 이러한 식으로 DOM을 선택하고 그에 적용할 이벤트를 직관적으로 선택할 수 있고, 그에 대한 실제 코드라인은 자동으로 생성되므로 사용자는 html이나 웹 스크랩핑을 위한 컴퓨팅 코드에 전문 지식이 없더라도 웹 데이터 수집 시나리오를 생성할 수 있다.
상기한 바와 같이, 데이터 수집 규칙 표시부(230)는 특정 DOM에 대해 특정 이벤트를 적용하는 개개의 처리의 흐름을 시계열적으로 표시하는 시나리오의 표시부일 수 있다. 사용자가 i-frame에 렌더링되는 타킷 사이트를 보고, 그에 포함되는 DOM을 선택한 뒤 메뉴에서 이벤트를 선택하면 시나리오에 개별 규칙으로 하나씩 추가되는 것이다. 데이터 수집 규칙 표시부(230)에서 표시되는 시나리오는 라인 별 및/또는 관련 라인 그룹 별로 삭제, 추가, 편집, 순서 변경 등 후속 편집이 가능하다. 이러한 편집의 종류는 예시된 것들에 한정되지 않으며, 웹 데이터 스크랩핑을 하는 과정에서의 데이터 수집 효율을 높이기 위해 및/또는 일부 오류를 개선하거나 사용자 니즈가 바뀜에 따라 필요한 것이면 다른 것들도 포함되는 것으로 이해되어야 한다. 실시예들에 따라 제공되는 시나리오 자체의 편집 가능성은 비개발자가 소스 코드를 이해하지 못하더라도 직관적으로 자신이 원하는 웹 데이터 수집 규칙을 바꿀 수 있는 유연성을 제공하므로 큰 이점을 갖는다.
타킷 사이트의 렌더링, 선택된 DOM에 대한 메뉴 처리, 시나리오의 생성이나 편집 등을 후속하는 도면들을 참고하여 더 상세하게 설명한다.
타킷 사이트의 표시와 DOM의 선택
도 3 내지 도 5 는 일실시예에 따른 웹 데이터 수집 시스템이 사용자에게 제시하는 프레임 레이아웃에서, 사용자가 타킷 사이트 및 그에 포함된 DOM을 보면서 DOM을 선택하고, 그에 적용될 이벤트 규칙을 생성하여 시나리오를 만들어 가는 일련의 과정을 도시한다.
도 3에서 사용자가 접하게 되는 화면에는 i-frame으로도 불리우는 타깃 사이트 표시부(300), 메뉴 창으로도 불리우는 입력 이벤트 표시부(320) 및 시나리오 창으로 불리우는 데이터 수집 규칙 표시부(330)가 포함된다. 사용자가 타킷 사이트, 이를테면 "http://www.goole.com"을 선택하면, 해당 타킷 사이트가 i-frame 내에서 렌더링된다. 일실시예에 따르면 범용 브라우저 자체로서 실제 타킷 사이트를 브라우징하는 것이 아니라 타킷 사이트를 모사한 프록시 사이트가 렌더링되는 것이다. 이는 후술할 W3C의 동일 출처 정책을 우회하고, 웹 표준을 준수하지 않는 사이트들에 대해서도 사이트 렌더링, DOM 선택 및 데이터 수집 등이 가능하도록 하는 효과가 있다.
타킷 사이트에는 복수 개의 DOM이 포함될 수 있다. 이를테면, 텍스트나 이미지, 플래시 등의 형태로 제시되며 하이퍼 링크를 갖는 객체들, 쿼리를 입력할 수 있는 텍스트 입력창 등의 각각 개별 DOM들이 될 수 있다.
사용자가 i-frame인 타깃 사이트 표시부(300)에서 마우스 오버를 하거나, 입력 펜을 호버링하거나, 터치나 클릭을 하는 등, DOM을 선택하기 위한 액션을 취하면, 일실시예에 따른 시스템은 현재 예비 선택된 DOM을 다른 부분과 구분될 수 있도록 그래픽처리 할 수 있다. 이러한 그래픽처리는 상기한 바와 같이 하일라이트 처리, 외곽선의 표시, 색상이나 음영의 변화, 깜빡임 등 다양한 것일 수 있으며, 현재 선택이 된 DOM을 다른 것과 구분할 수 있는 임의의 방식의 그래픽 처리로 이해되어야 한다. 도시된 예에서는 텍스트 쿼리를 입력할 수 있는 텍스트 입력창인 DOM이 선택되었고, 선택된 DOM의 외곽선(310)이 표시되었다. 따라서 사용자는 직관적으로 자기가 어느 DOM을 선택했는지 인식할 수 있다.
선택된 DOM에 적용 가능한 이벤트 메뉴
도 4에 도시된 바와 같이, i-frame(400)에서 그래픽 처리(410) 되는 텍스트 입력 창 DOM이 선택되는 경우, 메뉴 창인 입력 이벤트 표시부(420)서는 선택된 상기 DOM에 적용 가능한 복수 개의 이벤트 메뉴가 제공된다. 만약 사용자가 도시된 바와 같이 텍스트 입력 이벤트(440)을 선택하면, 해당 DOM에 대해 텍스트를 입력하겠다는 규칙이 생성되어 시나리오 창인 데이터 수집 규칙 표시부(430)에 시나리오 라인(450)이 생성된다. 시나리오 라인에는 해당 개별 이벤트를 삭제할 수 있는 편집 버튼(460)이 제공되어, 사용자가 시나리오 라인 생성을 되돌리기(undo) 할 수 있도록 한다. 뿐만 아니라 도시되지는 않았지만, 시나리오 이벤트들의 순서를 바꾸거나, 특정 이벤트를 복사하여 재생산 하는 등의 편집 버튼들도 제공될 수 있다.
시나리오 라인 내의 추가 설정
도 5에서 도시되는 바와 같이, 시나리오 창(530)에서 텍스트 입력 시나리오에 대해 사용자가 특정 텍스트를 추가 입력할 수도 있다. 사용자가 선택한 이벤트가 텍스트 입력인 경우, 어떤 텍스트를 넣을지 후속 입력/설정 하는 과정이다. 예시적으로 사용자가 DOM에 텍스트 입력할 내용이 "KBS 9시 뉴스"라고 하면 해당 입력창(540)에 사용자가 이를 입력하면 된다. 그리고 나서 사용자는 i-frame(500)에 있는 검색 아이콘 DOM(510)을 선택한다. 그러면 이번에 선택된 DOM에 적용 가능한 이벤트들이 메뉴(520) 창(520)에 표시되고, 사용자는 '요소 클릭'이라는 특정 이벤트(550)를 선택할 수 있다. 그러면 다시 시나리오 창(530)에 해당 DOM에 대한 시나리오 라인(560)이 추가된다. 이러한 과정을 통해 사용자는 직관적이고 쉽게 웹 데이터 스크랩핑을 위한 시나리오를 구성/편집할 수 있다.
OS영역 물리적 요소 추가 설정
도 6, 7에서 도시되는 것과 같이, OS영역에서 물리적 입력으로 시나리오를 추가할 수 도 있다. 상기 도4, 5의 요소 클릭, 텍스트 입력등은 DOM을 관리하는 HTML5 기반의 특정 태그를 Javascript의 Selector 또는 XPath를 통해 자원권한을 획득한 후 이벤트를 강제로 주입하는 기능을 사용한 것이다. 이는 OS 영역에서 사용자가 입력하는 것이 아닌, OS 커널보다 상위 어플리케이션인 웹 브라우저에서 상기 이벤트를 실행시키는 것으로 상기 물리적 입력의 방식과 차이가 있다. 상기 일반적인 요소 클릭, 텍스트 입력등으로 이벤트를 실행시키는 방법은 최근 보안이 우수한 웹 서비스에서는 상기 방법의 이벤트 실행을 차단하고 있는 추세이다. 다만, 상기 물리적 요소 클릭, 텍스트 입력의 방법은 웹 브라우저의 입력이 아닌 OS 영역의 입력으로, 상기 웹 서비스에서는 차단할 수 없다. 물리적 입력으로 시나리오를 추가, 실행하는 방법은 도11에서 상세히 서술하도록 하겠다.
도6에서 도시한 바와 같이, i-frame(600)에서 그래픽 처리(610) 되는 텍스트 입력 창 DOM이 물리적으로 선택되는 경우, 메뉴 창인 입력 이벤트 표시부(620)에서는 선택된 상기 DOM에 적용 가능한 복수 개의 이벤트 메뉴가 제공된다. 사용자가 도시된 바와 같이 물리적 텍스트 입력 이벤트(640)을 선택하면, 해당 DOM에 대해 텍스트를 입력하겠다는 규칙이 생성되어 시나리오 창인 데이터 수집 규칙 표시부(630)에 시나리오 라인(650)이 생성된다. 시나리오 라인에는 해당 개별 이벤트를 삭제할 수 있는 편집 버튼(660)이 제공되어, 사용자가 시나리오 라인 생성을 되돌리기(undo) 할 수 있도록 한다. 뿐만 아니라 도시되지는 않았지만, 시나리오 이벤트들의 순서를 바꾸거나, 특정 이벤트를 복사하여 재생산 하는 등의 편집 버튼들도 제공될 수 있다.
도 7에서 도시되는 바와 같이, 시나리오 창(730)에서 텍스트 입력 시나리오에 대해 사용자가 특정 텍스트를 추가 입력할 수도 있다. 사용자가 선택한 이벤트가 텍스트 입력인 경우, 어떤 텍스트를 넣을지 후속 입력/설정하는 과정이다. 예시적으로 사용자가 DOM에 텍스트 입력할 내용이 "KBS 9시 뉴스"라고 하면 해당 입력창(740)에 사용자가 이를 입력하면 된다. 그리고 나서 사용자는 i-frame(700)에 있는 검색 아이콘 DOM(710)을 선택한다. 그러면 이번에 선택된 DOM에 적용 가능한 이벤트들이 메뉴(720) 창(720)에 표시되고, 사용자는 '물리적 요소 클릭'이라는 특정 이벤트(750)를 선택할 수 있다. 그러면 다시 시나리오 창(730)에 해당 DOM에 대한 시나리오 라인(760)이 추가된다. 이러한 과정을 통해 사용자는 직관적이고 쉽게 웹 데이터 스크랩핑을 위한 시나리오를 구성/편집할 수 있다.
W3C의 동일 출처 정책의 극복과 타킷 사이트 렌더링
일실시예에 따르면 시스템은 타킷 사이트 자체를 i-frame 내에서 브라우징 하지 않고, 그 타킷 사이트를 다운받아 프록시 사이트로 설정하고, 이 프록시 사이트를 i-frame에서 렌더링한다. 이러한 과정에서 사용자는 렌더링되는 페이지가 실제 타킷 페이지인지 모사 페이지인지 구분하지 못할 수 있다. 이러한 의미에서 이러한 처리를 i-frame 내에서의 타킷 사이트 모사라고 할 수 있다.
이러한 실시예가 제공되는 이유는 몇 가지가 있다. 먼저, W3C의 동일 출처 정책을 극복하기 위한 것이다. 월드 와이드 웹 컨소시움 (World Wide Web Consortium: W3C)의 동일 출처 정책 (same-origin policy)은, 한 출처(source)에서 로드된 문서나 스크립트는 다른 출처의 자원과 상호작용하지 못하는 제약을 규정하고 있다. 따라서, 웹 스크랩핑을 위한 전용 프레임 제공에는 어려움이 있고, 하이퍼 링크, 플래시나 자바 기반의 스크립팅은 별도의 모사 프레임에서 정상적으로 렌더링되지 않을 수 있다. 또한, 타킷 사이트가 웹 표준을 준수하지 않는 것도 웹 스크랩핑을 위한 프레임에서 타킷 사이트가 정상적으로 모사되지 않는 이유가 될 수 있다. 특히 대한민국에서 서비스되는 웹 사이트 (예를 들어, 포털 사이트나 미디어 컨텐츠 제공사이트 등)은 웹 표준을 준수하지 않는 경우가 많다. 따라서, 기존에 제공되고 있는 웹 크롤러 봇(bot)들은 이러한 웹 사이트들을 모사하고 데이터 수집을 하는 데에 오류를 보이곤 한다. DOM 객체 내에서 자기 참조를 하는 등 루프(loop) 회귀에 걸리는 스크립트가 있는 등도 또 다른 원인이 될 수 있다.
여하간의 원인으로 기존 웹 크롤링 서비스들에서는 타킷 사이트가 정상 모사되지 못하고, 또한 DOM들이 모두 표시되지 못했다. 그러나 실시예들에 따른 시스템은 이러한 오류를 방지하도록 프록시 설정을 통해 타킷 사이트를 모사한다. 도 8은 일실시예에 따른 웹 데이터 프록시 경로 설정 및 링크 경로 수정 과정을 도시한다.
PROXY 사이트/페이지 설정
일실시예에 따르면 도 8에서 도시되는 바와 같이, 제어 서버(820)가 프록시 동적 설정부(824), HTML 다운로더(822), HTML 파서(826) 및 HTML 컨버터(828)를 포함한다. 프록시 동적 설정부(824)는 타깃 사이트로부터 HTML 리소스를 다운받기 위하여 프록시(proxy) 서버(830)와 프록시 동적 설정(835)을 할 수 있다. HTML 다운로더(822)는 타깃 사이트를 웹 데이터 수집 시스템에서 제어하기 위해 필요한 HTML 리소스를 다운로드할 수 있다. 이 다운로드 과정에서 상기한 동일 출처 정책 등 여러 가지 이유로 일부 객체는 다운로드가 되지 않을 수 있다. 후술할 일실시들예에 따르면 다양한 대안을 통해 이러한 다운로드의 불완전성을 극복하고 타킷 페이지를 정확하게 모사한다.
HTML 파서(parser)(826)는 HTML 리소스의 경로를 파싱(parsing)하여, 다운로드된 HTML 리소스를 웹 데이터 수집 시스템에 원본 그대로 인식시키지 않고, HTML 리소스 상의 리소스 경로를 프록시 서버(830)를 통해 프록시 경로로 변환하여 변환된 경로를 통해 타깃 사이트를 인식하여 화면에 출력되도록 한다. 이를 통해, 웹 데이터 수집 시스템의 출력 화면에 변환된 경로를 통해 인식된 타깃 사이트가 출력된다. 따라서 사용자가 웹 데이터 수집 시스템 내에서 타깃 사이트를 동일하게 보면서 DOM을 선택하고 제어할 수 있는 상태가 제공된다.
HTML 컨버터(828)는 HTML 리소스 상의 리소스 경로를 프록시 경로로 변환할 수 있다. 프록시 서버를 통한 타깃 페이지의 HTML 리소스 경로 변환에 대해 구체적으로 설명한다. 예시적으로, 그러나 한정되지 않게, 시스템은 타깃 사이트 페이지의 URL을 받아서 해당 호스트에 대해 프록시 서버에 설정하고 key 생성을 진행할 수 있다. 이 key는 해당 URL에 대응하여 새로이 프록시 서버에 설정되는 개별 페이지를 구별하는 식별자(identifier)로서, 프록시 사이트 경로에 key를 붙이면 타깃 사이트 전용 프록시 URL이 생성될 수 있다. 예를 들어, 'http://www.A.com' 이 타깃 사이트일 경우 'http://www.A.com'에 대한 key가 생성될 수 있다. 예를 들어, key가 "abc"라면 'http://proxy.B.com/abc'가 타깃 사이트인 'http://www.A.com'의 전용 프록시 URL이 될 수 있다. 이 때, B는 일실시예에 따른 서비스를 제공하는 웹 데이터 수집 시스템의 호스트일 수 있다.
한편, 웹 데이터의 프록시 경로 수정에 대해 설명한다. 제어 서버(820)의 프록시 동적 설정부(824)가 타깃 사이트로부터 HTML 리소스를 다운받기 위하여 프록시 서버(830)와 프록시 동적 설정(835)을 할 수 있다. HTML 다운로더(820)가 타깃 사이트(860)에 접근(850)하여 타깃 사이트(860)로부터 HTML 리소스를 다운로드(840) 받을 수 있다. 이 다운로드 받은 HTML 리소스를 이용하여 웹 데이터 수집 시스템에서 타깃 사이트를 제어할 수 있다. HTML 파서(830)가 다운로드된 HTML 리소스의 경로를 파싱하여, 다운로드된 HTML 리소스를 웹 데이터 수집 시스템에 원본 그대로 인식시키지 않고, HTML 리소스 상의 리소스 경로를 프록시 서버(830)를 통해 프록시 경로로 변환하여 변환된 경로를 통해 타깃 사이트를 인식하여 웹 데이터 수집 시스템의 화면에 출력되도록 한다. HTML 리소스의 리소스 경로는 HTML 컨버터(828)를 통해 프록시 경로로 변환될 수 있다. 프록시 경로로 변환된 HTML 리소스 경로를 웹 데이터 수집 시스템으로 전송(810)할 수 있다. 웹 데이터 수집 시스템은 프록시 경로로 변환된 HTML 리소스 경로를 통해 타깃 사이트를 인식하여 웹 데이터 수집 시스템 프레임(800)의 타깃 사이트 표시부(805)에 타깃 사이트 화면을 표시하고, 사용자가 웹 데이터 수집 시스템에 접근하도록 할 수 있다.
PROXY 경로의 중복 설정을 방지한 자원 절감
한편, 일실시예에 따르면 한 번 생성된 프록시 URL은 재사용될 수 있다. 서로 다른 사용자가 동일한 타킷 URL에 대해 프록시 URL을 각자 생성하게 두는 경우 이는 자원의 효율적 활용에 반할 수 있다. 따라서, 한 번 생성된 프록시 URL에 대해서 key가 할당되면 이는 별도로 관리되어 동일한 타킷 URL에 대해 프록시 설정이 중복으로 되는 것이 방지된다. 예를 들어, 제1 사용자가 'http://www.C.com'을 타깃 사이트로 설정하였고, 이에 대해 key가 "def"로 설정되었다면 이 key가 관리되고, 그 다음에 제2 사용자가 'http://www.C.com'을 타깃 사이트로 설정하는 경우 관리되는 key를 확인하여 제2 사용자의 타킷 사이트는 기 설정된 프록시 URL을 재활용하도록 할 수 있다. 따라서, 이러한 배려를 통해 서버 자원이 크게 절감될 수 있다.
시나리오 생성을 위한 시스템 동작 흐름(flow)
도 9은 일실시예에 따른 웹 데이터 수집 시스템의 동작 흐름을 도시한다. 웹 데이터 수집 시스템은 타깃 사이트 경로 수정 단계(900), 사용자의 웹 데이터 수집 시스템 제어 단계(920) 및 데이터 수집 단계(940)를 포함한다. 우선, 타깃 사이트 경로 수정 단계(900)의 단계(903)에서 사용자가 웹 데이터 수집 시스템을 통해 데이터를 수집하고자 하는 타깃 사이트에 접근할 수 있고, 타깃 사이트의 URL을 지정할 수 있다. 그러면 단계(906)에서 웹 데이터 수집 시스템의 탐색 영역의 제어 서버가 HTML 다운로더를 통해 사용자가 지정한 타깃 사이트의 HTML 리소스를 다운로드 할 수 있다. 그러면, 단계(909)에서 제어 서버가 프록시 동적 설정 후 다운로드된 HTML 리소스의 경로를 HMTL 파서 및 HTML 컨버터를 이용하여 프록시 경로로 변환할 수 있다.
그리고 웹 데이터 수집 시스템 제어 단계(920)의 단계(926)에서 변환된 경로로 인식되는 타깃 사이트를 웹 데이터 수집 시스템 프레임의 타깃 사이트 표시부에 출력하여 사용자가 제어하도록 할 수 있다. 그러면 단계(924)에서 웹 데이터 수집 시스템 프레임은 타깃 사이트 표시부, 입력 이벤트 표시부 및 데이터 수집 규칙 표시부를 통해 사용자가 웹 데이터 수집 규칙을 생성할 수 있는 DOM 이벤트 제어 환경이 제공된다. 그리고 단계(922)에서 사용자는 제공된 DOM 제어 환경에서 유저 인터페이스를 이용하여 DOM을 제어하고 입력 이벤트를 선택하여 데이터 수집 규칙을 생성할 수 있다.
다음으로, 데이터 수집 단계(940)의 단계(942)에서 웹 데이터 수집 시스템의 수집 영역은 사용자가 생성한 데이터 수집 규칙에 대해 데이터 수집 규칙 데이터 베이스를 생성한다. 그리고 단계(946)에서 사용자에 의해 생성된 데이터 수집 규칙에 따라 주기적, 반복적으로 데이터를 탐색할 수 있다. 이러한 과정을 거치고 단계(948)에서는 탐색된 데이터에 대한 결과 페이지의 HTML 리소스를 다운로드 받을 수 있다. 그러면 단계(950)에서 다운로드 받은 HTML 리소스에 대해 이미지, css 등의 리소스 들의 각 파일 형태에 따라 HTML 리소스의 경로를 변환할 수 있다.
그리고, 웹 데이터 수집 시스템 제어 단계(920)의 단계(928)에서 변환된 경로로 결과 페이지를 재현하여 웹 데이터 수집 시스템 프레임에 출력하여 사용자에게 데이터 수집 결과를 제공할 수 있다.
데이터 수집 봇(bot)의 동작
도 10은 일실시예에 따른 데이터 수집 로봇의 구성을 도시한 도면이다. 데이터 수집 봇(1000)은 탐색 수행 로봇(1010) 및 데이터 저장소(1020)로 구성될 수 있다. 탐색 수행 로봇(1010)은 생성되는 데이터 수집 규칙에 따라, 일정 시간 간격마다 주기적, 반복적으로 웹 데이터를 수집할 수 있다. 수집된 웹 데이터는 데이터 저장소(1020)에 저장될 수 있다.
사용자 단말(1050)로부터 데이터 출력 요청(1040)을 받으면, 그동안 수집되어 데이터 저장소(1020)에 저장된 웹 데이터를 즉각 불러와 사용자 단말(1050)로 전송(1030)할 수 있다.
OS 영역의 물리적 입력을 통한 이벤트 발생
도11은 OS영역의 모니터, 키보드등의 물리적 입력이 웹 브라우저로 이벤트 실행되는 과정을 도시화한 도면이다. 우선 웹 브라우저 상 물리적 입력이 발생되면 중계 모듈(1130)로 이벤트 발생 좌표 및 이벤트 종류가 전송된다(1160). 상기 중계 모듈은 OS와 상위 어플리케이션인 웹 브라우저가 통신으로 서로 제어하는 기능을 한다. 중계 모듈에서 응용프로그램(1140)으로 전송되면 응용프로그램 내의 표준 입출력 이벤트 발생 모듈(1150)에 시스템 콜을 활용하여 상기 물리적 입력에 따른 이벤트 발생을 요청한다. 그 후 상기 표준 입출력 이벤트 발생 모듈에 전송된 상기 이벤트 발생 좌표로 이벤트를 발생시킨다(1170). OS영역에서 물리적 입력 이벤트가 실행되면 이벤트 제어 모듈(1120)에서 상기 물리적 입력 이벤트의 타입을 선별하고 이벤트에 대응되는 DOM이 제어 가능한지 확인하는 단계를 더 포함할 수 있다.
상기 중계 모듈을 통한 이벤트 발생 과정은 웹 브라우저를 키고 OS레벨에서만 입력되던 공지된 매크로 프로그램과 유사하나, 공지된 매크로 프로그램은 특정 좌표를 기반으로 동작하므로 저장된 좌표를 이용하여야 한다. 반면, 상기 이벤트 발생 과정은 중계 모듈을 통해 OS와 웹 브라우저를 제어하여 브라우저 상 태그되는 DOM의 좌표값을 정확히 인지하고 해당 좌표에 물리적 이벤트 값을 강제로 주입할 수 있다는 점에서 차이가 있다. 또한 고정된 좌표를 이용하는 방법이 아니라 시나리오에 따라 매번 다른 동적좌표를 사용한다는 점에서 다양한 시나리오에 다양한 이벤트 값을 입력할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (5)

  1. 웹 데이터 스크랩핑 장치의 동작 방법에 있어서, 상기 장치가:
    사용자로부터 지정되는 타킷 사이트를 모사하여 타깃 사이트 표시부에 렌더링하는 단계;
    상기 렌더링되는 결과에 포함되는 적어도 하나의 DOM(Document Object Model) 중 사용자가 선택하는 제1 DOM에 대해 다른 객체와 구분되도록 그래픽 처리를 수행하는 단계; 및
    상기 제1 DOM에 적용될 수 있는 적어도 하나의 OS영역 물리적 입력 이벤트를 상기 OS영역 보다 상위 어플리케이션에 전달하는 중계 모듈을 통해 메뉴 형태로 입력 이벤트 표시부에 디스플레이 하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 디스플레이 되는 적어도 하나의 OS영역 물리적 입력 이벤트 중, 사용자로부터 선택되는 제1 물리적 이벤트를 제1 DOM에 적용하는 규칙에 대응하는 제1 시나리오 라인을 데이터 수집 규칙 표시부에 추가하여 시나리오에 반영하는 단계
    를 더 포함하는 방법.
  3. 제2항에 있어서,
    작성된 상기 시나리오 중 OS 영역 물리적 입력 이벤트를 실행하는 경우, 상기 중계 모듈을 통해 OS 영역보다 상위 어플리케이션에서 물리적 입력 이벤트를 발생하는 시나리오 실행 단계
    를 더 포함하는 방법.
  4. 제3항에 있어서,
    상기 시나리오 작성 및 실행 단계는 상기 OS 영역 물리적 입력 이벤트의 DOM 좌표에 대응되는 DOM이 상기 중계 모듈을 통해 제어 가능한 객체인지 여부를 판별하는 것을 포함하는 방법.
  5. 제4항에 있어서,
    상기 상위 어플리케이션은 웹 브라우저나 빅데이터 수집 프로그램인 것을 포함하는 방법.
KR1020180168480A 2018-12-24 2018-12-24 웹 데이터 수집 장치 및 방법 KR102191458B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180168480A KR102191458B1 (ko) 2018-12-24 2018-12-24 웹 데이터 수집 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180168480A KR102191458B1 (ko) 2018-12-24 2018-12-24 웹 데이터 수집 장치 및 방법

Publications (2)

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

Family

ID=71599752

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180168480A KR102191458B1 (ko) 2018-12-24 2018-12-24 웹 데이터 수집 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102191458B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102407246B1 (ko) * 2021-06-16 2022-06-10 주식회사 두들린 구직 또는 채용을 위한 데이터의 수집을 보조하는 방법 및 이를 이용한 컴퓨팅 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7647351B2 (en) 2006-09-14 2010-01-12 Stragent, Llc Web scrape template generation
KR101125083B1 (ko) 2009-09-03 2012-03-21 황찬호 웹 컨텐츠 스크랩 시스템 및 그 방법
KR20180080535A (ko) * 2017-01-04 2018-07-12 (주)해나소프트 웹 데이터 수집 장치 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7647351B2 (en) 2006-09-14 2010-01-12 Stragent, Llc Web scrape template generation
KR101125083B1 (ko) 2009-09-03 2012-03-21 황찬호 웹 컨텐츠 스크랩 시스템 및 그 방법
KR20180080535A (ko) * 2017-01-04 2018-07-12 (주)해나소프트 웹 데이터 수집 장치 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102407246B1 (ko) * 2021-06-16 2022-06-10 주식회사 두들린 구직 또는 채용을 위한 데이터의 수집을 보조하는 방법 및 이를 이용한 컴퓨팅 장치

Also Published As

Publication number Publication date
KR102191458B1 (ko) 2020-12-15

Similar Documents

Publication Publication Date Title
KR101913780B1 (ko) 웹 데이터 수집 장치 및 방법
CN110235122B (zh) 用于将web内容转化为可重复使用的模板和组件的系统和方法
AU2012370492B2 (en) Graphical overlay related to data mining and analytics
US7873946B2 (en) Scalable vector graphics, tree and tab as drag and drop objects
US20190303269A1 (en) Methods and systems for testing visual aspects of a web page
US20170193112A1 (en) Transformation And Presentation Of On-Demand Native Application Crawling Results
US10084878B2 (en) Systems and methods for hosted application marketplaces
CN107832052B (zh) 展示预览页面的方法、装置和存储介质以及电子设备
US20230236712A1 (en) Browser-Based Robotic Process Automation (RPA) Robot Design Interface
US9477399B1 (en) Automated interaction for mobile applications
US20120216132A1 (en) Embedding User Selected Content In A Web Browser Display
KR102191458B1 (ko) 웹 데이터 수집 장치 및 방법
KR20150099318A (ko) 애플리케이션 개발 환경 제공 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체
Anton Distributed User Interfaces for the Web
KR20150097181A (ko) 애플리케이션 개발 환경 제공 시스템
CN111274519A (zh) 一种页面加载提速方法
Allana ASP. NET jQuery Cookbook
KR20150097243A (ko) 애플리케이션 개발 환경 제공 프로그램을 기록한 것을 특징으로 하는 컴퓨터로 판독 가능한 기록매체
KR20150097223A (ko) 애플리케이션 개발 환경 제공 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체
KR20150099343A (ko) 애플리케이션 개발 환경 제공 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체
KR20150099012A (ko) 애플리케이션 개발 환경 제공 시스템
KR20150097147A (ko) 애플리케이션 개발 환경 제공 방법
KR20150097236A (ko) 애플리케이션 개발 환경 제공 프로그램을 기록한 것을 특징으로 하는 컴퓨터로 판독 가능한 기록매체
KR20150097179A (ko) 애플리케이션 개발 환경 제공 시스템
KR20150098777A (ko) 애플리케이션 개발 환경 제공 방법

Legal Events

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