KR102247065B1 - 웹 페이지에서 url을 수집하는 방법, 장치 및 컴퓨터 프로그램 - Google Patents

웹 페이지에서 url을 수집하는 방법, 장치 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR102247065B1
KR102247065B1 KR1020190036359A KR20190036359A KR102247065B1 KR 102247065 B1 KR102247065 B1 KR 102247065B1 KR 1020190036359 A KR1020190036359 A KR 1020190036359A KR 20190036359 A KR20190036359 A KR 20190036359A KR 102247065 B1 KR102247065 B1 KR 102247065B1
Authority
KR
South Korea
Prior art keywords
url
collecting
web page
source code
event
Prior art date
Application number
KR1020190036359A
Other languages
English (en)
Other versions
KR20200114486A (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 KR1020190036359A priority Critical patent/KR102247065B1/ko
Priority to US16/828,055 priority patent/US11829434B2/en
Publication of KR20200114486A publication Critical patent/KR20200114486A/ko
Application granted granted Critical
Publication of KR102247065B1 publication Critical patent/KR102247065B1/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/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • 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/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • 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/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions
    • 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

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)
  • Information Transfer Between Computers (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)

Abstract

본 발명은 웹 페이지에서 URL을 수집하는 방법, 장치 및 컴퓨터 프로그램에 관한 것으로서, 보다 구체적으로는 URL 수집 장치가 제1 URL의 웹 서버에 접속하는 단계; 상기 URL 수집 장치가 상기 웹 서버로부터 제1 웹 페이지를 전송받는 단계; 및 상기 URL 수집 장치가 상기 제1 웹 페이지의 소스 코드 중 일부 또는 전부를 수행하면서 호출되는 하나 이상의 URL을 수집하는 URL 동적 수집 단계;를 포함하는 것을 특징으로 하는 URL 수집 방법을 개시한다.

Description

웹 페이지에서 URL을 수집하는 방법, 장치 및 컴퓨터 프로그램{Method, apparatus and computer program for collecting URL in web page}
본 발명은 웹 페이지에서 URL을 수집하는 방법, 장치 및 컴퓨터 프로그램에 관한 것으로서, 보다 구체적으로는 웹 페이지의 소스 코드를 파싱하여 소스 코드에 노출된 URL을 수집하는데 그치지 않고 웹 페이지의 소스 코드를 수행하면서 호출되는 URL을 수집함으로써, 웹 페이지로부터 보다 효과적으로 URL을 수집할 수 있는 URL 수집 방법, 장치 및 컴퓨터 프로그램에 관한 것이다.
정보통신 기술의 발달과 함께 사용자들은 개인용 컴퓨터(PC)나 스마트폰 등 다양한 단말을 이용하여 언제 어디서나 자신이 원하는 정보를 획득할 수 있게 되었다. 예를 들어, 사용자들은 여러 유무선 단말을 이용해 포털 사이트 등에 접속하여 날씨, 사전, 공연, 여행, 영화 등의 다양한 정보를 편리하게 제공받을 수 있다. 이에 따라, 포털 사이트 등에서는 사용자에게 다양한 정보를 제공하기 위해 웹 페이지 등의 문서를 탐색하여 정보를 수집하고 갱신해야 할 필요성이 존재하게 된다.
이처럼 사용자에게 제공할 정보 등을 수집하기 위해 웹 페이지들을 수집하고 분석하는 프로세스를 웹 크롤링(web crawling)이라 한다. 이에 따라, 웹 크롤링에서는 웹 페이지에 포함된 URL(Uniform Resource Locator)을 순차적으로 방문하면서 다양한 정보들을 분석, 수집하게 된다.
그런데, 웹 크롤링 등을 비롯하여 다양한 목적으로 웹 페이지로부터 URL을 수집하는 경우, 종래에는 통상적으로 웹 페이지의 소스 코드를 분석(즉, 파싱)하여 소스 코드에 노출된 URL을 수집하는 정도에 그쳤다(=정적 수집).
그러나, 위와 같이 웹 페이지로부터 URL을 정적 수집하는 경우에는 여러 문제가 발생할 수 있었다. 보다 구체적으로, URL을 정적 수집하는 경우에는 웹 페이지에서 수행되는 스크립트 등에 의해 호출되는 URL을 파악하지 못하여 누락되거나, 나아가 단순히 파싱을 이용하여 수집된 URL 중에는 유효하지 못한 URL도 포함되는 문제가 따를 수 있었다.
대한민국 공개특허 제 10-2015-0133370호(2015년 11 30일 공개)
본 발명은 상기와 같은 종래 기술의 문제점을 해결하기 위해 창안된 것으로, 웹 페이지에서 URL을 수집함에 있어, 웹 페이지의 소스 코드가 수행되면서 호출되는 URL을 누락하거나, 유효하지 못한 URL까지도 수집하는 문제를 효과적으로 개선할 수 있는 URL 수집 방법, 장치 및 컴퓨터 프로그램을 제공하는 것을 목적으로 한다.
나아가, 본 발명은 상기 검색된 이미지를 카테고리 별로 분류함에 있어, 상기 검색된 이미지에 대한 분석을 통하여 자동으로 상기 카테고리 별로 분류할 수 있는 URL 수집 방법, 장치 및 컴퓨터 프로그램을 제공하는 것을 목적으로 한다.
그 외 본 발명의 세부적인 목적은 이하에 기재되는 구체적인 내용을 통하여 이 기술 분야의 전문가나 연구자에게 자명하게 파악되고 이해될 것이다.
상기 과제를 해결하기 위한 본 발명의 한 측면에 따른 URL 수집 방법은, URL 수집 장치가 제1 URL의 웹 서버에 접속하는 단계; 상기 URL 수집 장치가 상기 웹 서버로부터 제1 웹 페이지를 전송받는 단계; 및 상기 URL 수집 장치가 상기 제1 웹 페이지의 소스 코드 중 일부 또는 전부를 수행하면서 호출되는 하나 이상의 URL을 수집하는 URL 동적 수집 단계;를 포함하는 것을 특징으로 한다.
본 발명의 또 다른 측면에 따른 컴퓨터 프로그램은 상기 기재된 URL 수집 방법의 각 단계를 컴퓨터에서 실행시키기 위한 컴퓨터로 판독 가능한 매체에 저장된 컴퓨터 프로그램인 것을 특징으로 한다.
본 발명의 또 다른 측면에 따른 URL 수집 장치는, 제1 URL의 웹 서버에 접속하는 웹 서버 접속부; 상기 웹 서버로부터 제1 웹 페이지를 전송받는 웹 페이지 전송부; 및 상기 제1 웹 페이지의 소스 코드 중 일부 또는 전부를 수행하면서 호출되는 하나 이상의 URL을 수집하는 URL 동적 수집부;를 포함하는 것을 특징으로 한다.
본 발명의 일 실시예에 따른 URL 수집 방법, 장치 및 컴퓨터 프로그램에서는, 웹 페이지의 소스 코드를 파싱하여 소스 코드에 노출된 URL을 수집하는데 그치지 않고 웹 페이지의 소스 코드를 수행하면서 호출되는 URL까지 수집함으로써, 웹 페이지로부터 보다 효과적으로 URL을 수집할 수 있게 된다.
본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부도면은 본 발명에 대한 실시예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 사상을 설명한다.
도 1은 본 발명의 일 실시예에 따른 URL 수집 시스템의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 URL 수집 방법의 순서도이다.
도 3은 본 발명의 일 실시예에 따른 소스 코드의 태그로부터 URL을 수집하는 경우의 순서도이다.
도 4는 본 발명의 일 실시예에 따라 소스 코드의 태그로부터 URL을 수집하는 경우를 설명하는 도면이다.
도 5는 본 발명의 일 실시예에 따른 소스 코드의 속성으로부터 URL을 수집하는 경우의 순서도이다.
도 6은 본 발명의 일 실시예에 따라 소스 코드의 속성으로부터 URL을 수집하는 경우를 설명하는 도면이다.
도 7은 본 발명의 일 실시예에 따른 URL 수집 방법의 구체적인 순서도이다.
도 8은 본 발명의 일 실시예에 따른 URL 수집 장치의 구성도이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 이하에서는 특정 실시예들을 첨부된 도면을 기초로 상세히 설명하고자 한다.
본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되는 것은 아니며, 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
이하에서는, 본 발명에 따른 URL 수집 방법, 장치 및 컴퓨터 프로그램의 예시적인 실시형태들을 첨부된 도면을 참조하여 상세히 설명한다.
먼저, 도 1에서는 본 발명의 일 실시예에 따른 URL 수집 시스템(100)의 구성도를 보여주고 있다. 도 1에서 볼 수 있는 바와 같이, 본 발명의 일 실시예에 따른 URL 수집 시스템 (100)은 통신 네트워크(130)를 통해 연결된 장치로 웹 서비스를 제공하는 하나 이상의 웹 서버(120)와, 상기 웹 서버(120)에 접속해 웹 페이지를 분석하여 하나 이상의 URL을 수집하는 URL 수집 장치(110)를 포함하여 구성될 수 있다.
이때, 상기 URL 수집 장치(110)는 서버를 이용하여 구현될 수도 있으나, 본 발명이 반드시 이에 한정되는 것은 아니며, URL 수집을 위한 별도의 장치로 구현하거나, 나아가 스마트폰, 태블릿 PC, PDA, 휴대전화 등 휴대 단말기나 개인용 컴퓨터(PC) 등의 유무선 단말기에서 구동되는 어플리케이션 등으로 구현되는 등 다양한 형태로 구현될 수 있다.
또한, 상기 웹 서버(120)도 서버를 이용하여 구현될 수도 있으나, 본 발명이 반드시 이에 한정되는 것은 아니며, 웹 서비스 제공을 위한 별도의 장치로 구현되거나, 나아가 스마트폰, 태블릿 PC, PDA, 휴대전화 등 휴대 단말기나 개인용 컴퓨터(PC) 등의 유무선 단말기에서 구동되는 어플리케이션 등으로 구현될 수도 있다.
나아가, 상기 URL 수집 장치(110)와 웹 서버(120)를 연결하는 통신 네트워크(130)로서는 유선 네트워크와 무선 네트워크를 포함할 수 있으며, 구체적으로, 근거리 통신망 (LAN: Local Area Network), 도시권 통신망 (MAN: Metropolitan Area Network), 광역 통신망 (WAN: Wide Area Network) 등의 다양한 통신망을 포함할 수 있다. 또한, 상기 통신 네트워크(130)는 공지의 월드 와이드 웹(WWW: World Wide Web)을 포함할 수도 있다. 그러나, 본 발명에 따른 통신 네트워크(130)는 상기 열거된 네트워크에 국한되지 않고, 공지의 무선 데이터 네트워크나 공지의 전화 네트워크 또는 공지의 유무선 텔레비전 네트워크를 적어도 일부로 포함할 수도 있다.
도 2에서는 본 발명의 일 실시예에 따른 URL 수집 방법의 순서도를 도시하고 있다. 도 2에서 볼 수 있는 바와 같이, 본 발명의 일 실시예에 따른 URL 수집 방법은, URL 수집 장치(110)가 제1 URL의 웹 서버(120)에 접속하는 단계(S110), 상기 URL 수집 장치(110)가 상기 웹 서버(120)로부터 제1 웹 페이지를 전송받는 단계(S120) 및 상기 URL 수집 장치(110)가 상기 제1 웹 페이지의 소스 코드 중 일부 또는 전부를 수행하면서 호출되는 하나 이상의 URL을 수집하는 URL 동적 수집 단계(S130)를 포함할 수 있다.
아래에서는 도 2를 참조하여 본 발명의 일 실시예에 따른 URL 수집 방법을 각 단계별로 나누어 자세하게 검토한다.
먼저, S110단계에서는 URL 수집 장치(110)가 제1 URL의 웹 서버(120)에 접속하게 된다.
이때, 상기 URL 수집 장치(110)는 미리 주어진 제1 URL(예를 들어, 시드 URL)을 이용하여 웹 서버(120a)에 접속해 URL을 수집하거나, 기 접속되었던 웹 서버(120a)의 웹 페이지에서 수집된 제1 URL을 이용하여 다른 웹 서버(120b)에 접속할 수도 있다.
나아가, 본 발명의 일 실시예에 따른 URL 수집 방법에서, 상기 URL 수집 장치(110)는 상기 웹 서버(120)에 접속하기에 앞서 상기 제1 URL이 접속이 허용되는 유효한 URL인지 검증할 수 있다.
보다 구체적으로, 상기 URL 수집 장치(110)는 상기 제1 URL의 웹 서버(120)가 상기 URL 수집 장치(110)의 소유자의 전산 자원인지, 상기 제1 URL의 웹 서버가 정상적인 동작이 가능한 상태인지 등 상기 제1 URL이 접속이 허용되는 유효한 URL인지 검증한 후 상기 제1 URL의 웹 서버(120)에 접속하도록 할 수 있다.
다음으로, S120 단계에서는 상기 URL 수집 장치(110)가 상기 웹 서버(120)로부터 제1 웹 페이지를 전송받게 된다.
이에 따라, 상기 URL 수집 장치(110)는 상기 웹 서버(120)로부터 전송받은 상기 제1 웹 페이지를 이용하여 URL을 수집할 수 있게 된다.
이어서, 상기 S130 단계(URL 동적 수집 단계)에서는, 상기 URL 수집 장치(110)가 상기 제1 웹 페이지의 소스 코드 중 일부 또는 전부를 수행하면서 호출되는 하나 이상의 URL을 수집하게 된다(=동적 수집).
이에 따라, 본 발명의 일 실시예에 따른 URL 수집 방법에서는, 종래 웹 페이지의 소스 코드를 파싱하여 URL을 수집(=정적 수집)하는 경우에 웹 페이지의 소스 코드가 수행되면서 호출되는 URL을 파악하지 못하여 누락되는 문제를 효과적으로 개선할 수 있게 된다.
보다 구체적으로, 상기 URL 동적 수집 단계(S130)는, 상기 URL 수집 장치(110)가 상기 제1 웹 페이지를 구성(rendering)하면서 호출되는 자원(resource)들의 URL을 수집하는 자원 URL 수집 단계를 포함할 수 있다. 즉, 상기 URL 수집 장치(110)가 상기 웹 서버(120)를 방문하면 제1 웹 페이지를 구성(rendering)하면서 필요한 자원(resource)들의 URL을 호출하게 되는데, 이때 상기 URL 수집 장치(110)가 상기 웹 서버(120)를 방문하면 상기 제1 웹 페이지를 구성하기 위하여 이미지, 폰트, 오디오 등 여러 자원(resource)의 URL을 호출하게 되므로, 상기 URL 동적 수집 단계(S130)에서 상기 URL 수집 장치(110)는 상기 자원들의 URL을 동적 수집할 수 있다.
또한, 상기 URL 동적 수집 단계(S130)는, 도 3에서 볼 수 있는 바와 같이, 상기 제1 웹 페이지의 소스 코드에서 이벤트가 수행되는 태그를 산출하는 이벤트 태그 산출 단계(S210) 및 상기 태그의 이벤트를 수행하여 호출되는 URL을 수집하는 이벤트 태그 URL 수집 단계(S220)를 포함할 수 있다.
이를 위하여, 상기 URL 수집 장치(110)는 상기 제1 웹 페이지의 소스 코드에 포함되는 태그를 일부 또는 전부 추출할 수 있다.
특히, 본 발명의 일 실시예에 따른 URL 수집 방법에서, 상기 URL 수집 장치(110)는 상기 제1 웹 페이지의 소스 코드에 <A> 태그가 존재하는 경우, 상기 <A> 태그의 클릭 이벤트를 발생시켜 호출되는 URL을 수집할 수 있다.
보다 구체적으로, 도 4(a)에서는 링크를 제공하는 <A> 태그를 예시하고 있으며, 이때 도 4(a)에서 <A> 태그(310)는 href 속성(320)을 포함하여 "http://www.user.com/abc"에 대한 링크(330)를 제공하고 있다. 이와 같이, 상기 URL 수집 장치(110)는 상기 "http://www.user.com/abc"의 링크(330)에 대한 클릭 이벤트를 발생시키면서 호출되는 URL을 동적 수집하게 된다.
나아가, 본 발명의 일 실시예에 따른 URL 수집 방법은, 상기 제1 웹 페이지의 소스 코드에 <FORM> 태그가 존재하는 경우, 상기 <FORM> 태그의 "action" 속성에 포함되는 URL 과 함께 파라미터(parameter) 정보도 함께 수집하는 FORM 태그 URL 수집 단계를 더 포함할 수 있다.
보다 구체적으로, 도 4(b)에서는 주어진 데이터를 전송하는 <FORM> 태그를 예시하고 있으며, 이때 도 4(b)에서 <FORM> 태그(340)는 action 속성(350)을 포함하여 "http://www.user.com"(360)으로 파라미터(370)를 포함하는 데이터를 전송하는 경우를 예시하고 있다. 이때, 본 발명에서 상기 URL 수집 장치(110)는 <FORM> 태그의 경우 상기 "http://www.user.com/abc"(360)의 URL을 수집(=정적 수집)함과 동시에 상기 파라미터(370)도 함께 수집하게 된다.
또한, 상기 URL 동적 수집 단계(S130)는, 도 5에서 볼 수 있는 바와 같이, 상기 제1 웹 페이지의 소스 코드에서 이벤트가 수행되는 속성을 산출하는 이벤트 속성 산출 단계(S310) 및 상기 속성의 이벤트를 수행하여 호출되는 URL을 수집하는 이벤트 속성 URL 수집 단계(S320)를 포함할 수 있다.
이를 위하여, 상기 URL 수집 장치(110)는 상기 제1 웹 페이지의 소스 코드에 포함되는 속성을 일부 또는 전부 추출할 수 있다.
특히, 본 발명의 일 실시예에 따른 URL 수집 방법에서, 상기 URL 수집 장치(110)는 상기 제1 웹 페이지의 소스 코드에 "on 이벤트"가 존재하는 경우, 상기 "on 이벤트"를 발생시켜 호출되는 URL을 수집할 수 있다.
여기서, 상기 "on 이벤트"라 함은 HTML(Hyper Text Markup Language)의 속성에서 명칭이 on-으로 시작되는 이벤트로서, 이벤트의 발생에 의하여 스크립트가 실행되는 이벤트를 말한다(예를 들어, onclick, ondblclick, onkeypress 등).
보다 구체적으로, 도 6(a)에서는 클릭시 스크립트가 실행되는 "onclick" 이벤트(610)를 예시하고 있으며, 이때 도 6(a)에서 "onclick" 이벤트(610)는 스크립트(alert{'hello world'})를 수행하게 된다. 이와 같이, 상기 URL 수집 장치(110)는 상기 "onclick" 이벤트(610)를 발생시켜 스크립트를 수행하면서 호출되는 URL을 동적 수집하게 된다.
또한, 도 6(b)에서는 키가 눌린 경우 스크립트가 실행되는 "onkeypress" 이벤트(620)를 예시하고 있으며, 이처럼 도 6(b)에서도 상기 URL 수집 장치(110)는 상기 "onkeypress" 이벤트(620)를 발생시켜 스크립트를 수행하면서 호출되는 URL을 동적 수집하게 된다.
또한, 상기 URL 수집 장치(110)는, 상기 제1 웹 페이지의 소스 코드 중 전부를 수행할 수도 있겠으나, 상기 소스 코드 중 URL을 호출할 수 있는 일부 코드를 선별하여 수행하면서 호출되는 URL을 수집할 수도 있다.
또한, 상기 URL 수집 장치(110)는, 상기 웹 페이지의 소스 코드를 수행하면서 그에 따른 웹 페이지를 실제로 구성하거나 사용자에게 제공할 수도 있겠으나, 상기 웹 페이지의 소스 코드를 수행하면서 상기 웹 페이지를 실제로 구성하지 않고 호출되는 URL만을 수집할 수도 있다.
나아가, 상기 URL 수집 장치(11)는 상기 제1 웹 페이지의 소스 코드를 수행하되, 상기 소스 코드의 수행에 따라 상기 웹 서버로 전송되어야 할 데이터의 일부 또는 전부를 차단할 수도 있다.
보다 구체적으로, 상기 URL 수집 장치(110)는 상기 소스 코드의 수행에 의하여 상기 웹 서버(120)로 전송되는 데이터가 상기 제1 웹 페이지에 대한 URL 수집에 장애를 일으킬 수 있는 데이터인 경우 이를 차단하도록 할 수 있다.
예를 들어, 상기 URL 수집 장치(110)가 스크립트를 수행하면서 URL을 수집하는 경우, 로그아웃 요구(logout request)는 수행하되 이에 따른 데이터를 실제로 상기 웹 서버(120)로 전송하는 경우 상기 URL 수집 장치(110)가 상기 웹 서버(120)로부터 로그아웃되어 상기 제1 웹 페이지에 대한 URL을 수집하는데 장애를 초래할 수 있으므로, 상기 URL 수집 장치(110)는 이러한 데이터는 차단하여 보다 효율적으로 URL을 수집할 수 있게 된다.
또한, 상기 URL 수집 장치(110)는 상기 제1 웹 페이지의 소스 코드의 수행에 따라 상기 웹 서버(120)로 전송되는 데이터를 산출하고 이를 분석하여 URL을 동적 수집할 수 있으며, 나아가 상기 웹 서버(120)로부터 전송되는 데이터도 상기 URL을 동적 수집하는데 이용할 수 있다.
또한, 본 발명의 일 실시예에 따른 URL 수집 방법에서, 상기 URL 수집 장치(110)는 상기 소스 코드의 스크립트가 실행되면서 호출되는 URL을 수집하할 수 있다. 보다 구체적으로, 상기 URL 수집 장치(110)는 Javascript, AJAX(Asynchronous Javascript And XML) 등의 스크립트로 인하여 호출되는 URL을 동적 수집할 수 있다.
나아가, 본 발명의 일 실시예에 따른 URL 수집 방법에는, 상기 URL 수집 장치(110)가 상기 제1 웹 페이지의 소스 코드를 분석하여 소스 코드에 노출된 하나 이상의 URL을 수집하는 URL 정적 수집 단계 및 상기 URL 동적 수집 단계에서 수집된 URL과 상기 URL 동적 수집 단계에서 수집된 URL을 비교하여 중복된 URL 을 제거하는 중복 URL 제거 단계를 더 포함할 수도 있다.
또한, 도 7에서는 본 발명의 일 실시예에 따른 URL 수집 방법의 보다 구체적인 순서도를 예시하고 있다. 이하 도 7을 참조하여 본 발명의 일 실시예에 따른 URL 수집 방법을 보다 자세하게 살핀다.
먼저, S1010 단계에서는 제1 URL을 준비한다. 상기 제1 URL은 주어진 시드(seed) URL일 수 있고, 기 접속되었던 웹 서버(120)의 웹 페이지에서 수집된 URL일 수도 있다. 또한 상기 S1010 단계에서는 URL 수집 장치(110)의 사용자 환경을 설정할 수 있다. 이에 따라, 웹 브라우저의 종류 및 사용 환경을 고려하여 user-agent를 설정하거나, 관리자 설정 등 로그인 정보의 설정을 위하여 cookie를 설정할 수 있다.
이어서, S1020 단계에서는 상기 제1 URL이 접속이 허용되는 유효한 URL인지 검증한다. 보다 구체적으로, 상기 URL 수집 장치(110)는 상기 제1 URL의 웹 서버(120)가 상기 URL 수집 장치(110)의 소유자의 전산 자원인지, 상기 제1 URL의 웹 서버(120)가 정상적인 동작이 가능한 상태인지 등 상기 제1 URL이 접속이 허용되는 유효한 URL인지 검증하게 된다.
상기 제1 URL이 유효하지 않으며, 또한 더 이상 방문할 URL이 없는 경우(S1030)에는 URL 수집을 종료하게 된다.
또한, S1040 단계에서는 상기 제1 URL의 웹 서버(120)를 방문하게 된다.
이어서, S1050 단계에서, 상기 URL 수집 장치(110)는 상기 웹 서버(120)의 제1 웹 페이지를 구성(rendering)하면서 호출되는 자원(resource)들의 URL을 수집하게 된다. 이때, 수집된 URL들은 다음 방문할 URL로 추가된다(S1060).
또한, S1070 단계에서는, 상기 제1 웹 페이지에 포함되는 태그 및 속성값들을 추출하게 된다.
이때, 상기 추출되는 태그 목록에는 <FORM> 태그와 <A> 태그가 포함될 수 있다.
또한, 상기 추출되는 속성 목록에는 cite, href, data-path, xmins, itemtype이 포함되어 URL이 추출될 수 있다. 여기서, src, data-src, srcset 속성에서 얻을 수 있는 URL들은 상기 S1050 단계에서 수집되기 때문에 S1070 단계에서는 제외될 수 있다.
이어서, S1080 단계에서는, 상기 추출된 속성값에 URL이 존재하는지 판단한다.
이에 따라, 상기 추출된 속성값에 URL이 존재하는 경우, 상기 추출된 속성값에 포함된 URL을 정적 수집한다(S1090). 이때, 수집된 URL들도 다음 방문할 URL로 추가된다(S1100).
나아가, 상기 추출된 태그에 존재하는 URL도 수집될 수 있다.
또한, 상기 추출된 태그에 <A> 태그가 존재하는 경우에는 클릭 이벤트를 발생시켜 호출되는 URL을 동적 수집할 수도 있다.
또한, 상기 추출된 태그에 <FORM> 태그가 존재하는 경우에는 URL 뿐만 아니라 파라미터도 수집할 수 있다.
다음으로, S1110 단계에서는 상기 제1 웹 페이지의 소스 코드에 "on 이벤트"가 존재하는지 여부를 판단하게 된다.
이에 따라, S1120 단계에서는 상기 제1 웹 페이지의 소스 코드에 "on 이벤트"가 존재하는 경우, 상기 "on 이벤트"를 발생시켜 호출되는 URL을 동적 수집하게 된다. 이때, 수집된 URL들도 다음 방문할 URL로 추가된다(S1130).
나아가, 상기 URL 수집 장치(110)는 상기 일련의 단계를 거치면서 수집된 URL들을 재귀적으로 방문하면서 웹 페이지로부터 URL을 수집하게 된다.
또한, 본 발명의 또 다른 측면에 따른 컴퓨터 프로그램은 앞서 살핀 URL 수집 방법의 각 단계를 컴퓨터에서 실행시키기 위하여 컴퓨터로 판독 가능한 매체에 저장된 컴퓨터 프로그램인 것을 특징으로 한다. 상기 컴퓨터 프로그램은 컴파일러에 의해 만들어지는 기계어 코드를 포함하는 컴퓨터 프로그램뿐만 아니라, 인터프리터 등을 사용해서 컴퓨터에서 실행될 수 있는 고급 언어 코드를 포함하는 컴퓨터 프로그램일 수도 있다. 이때, 상기 컴퓨터로서는 퍼스널 컴퓨터(PC)나 노트북 컴퓨터 등에 한정되지 아니하며, 서버, 스마트폰, 태블릿 PC, PDA, 휴대전화 등 중앙처리장치(CPU)를 구비하여 컴퓨터 프로그램을 실행할 수 있는 일체의 정보처리 장치를 포함한다. 또한, 상기 컴퓨터로 판독 가능한 매체는 전자적 기록 매체(예를 들면, 롬, 플래시 메모리, 등), 마그네틱 저장매체(예를 들면, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같이 컴퓨터로 판독이 가능한 일체의 저장매체를 포함한다.
또한, 도 8에서는 본 발명의 일 실시예에 따른 URL 수집 장치(110)의 구성도를 예시하고 있다.
도 8에서 볼 수 있는 바와 같이 본 발명의 일 실시예에 따른 URL 수집 장치(110)는 웹 서버 접속부(111), 웹 페이지 전송부(112) 및 URL 동적 수집부(113)를 포함하여 구성될 수 있다.
아래에서는 본 발명의 일 실시예에 따른 URL 수집 장치(110)를 각 구성요소 별로 나누어 살핀다. 본 발명의 일 실시예에 따른 URL 수집 장치(110)에 대한 보다 자세한 내용은 앞서 설명한 본 발명의 일 실시예에 따른 URL 수집 방법에 대한 설명으로부터 유추될 수 있는 바, 아래에서 보다 자세한 설명은 생략한다.
먼저, 웹 서버 접속부(111)에서는 제1 URL의 웹 서버(120)에 접속하게 된다.
또한, 웹 페이지 전송부(112)에서는 상기 웹 서버(120)로부터 제1 웹 페이지를 전송받게 된다.
마지막으로, URL 동적 수집부(113)에서는 상기 제1 웹 페이지의 소스 코드 중 일부 또는 전부를 수행하면서 호출되는 하나 이상의 URL을 수집하게 된다.
이때, 상기 URL 동적 수집부(113)에서는, 상기 제1 웹 페이지를 구성(rendering)하면서 호출되는 자원(resource)들의 URL을 수집할 수 있다.
또한, 상기 URL 동적 수집부(113)에서는, 상기 제1 웹 페이지의 소스 코드에서 이벤트가 수행되는 태그를 산출한 후, 상기 태그의 이벤트를 수행하여 호출되는 URL을 수집할 수도 있다.
또한, 상기 URL 동적 수집부(113)에서는, 상기 제1 웹 페이지의 소스 코드에서 이벤트가 수행되는 속성을 산출한 후, 상기 속성의 이벤트를 수행하여 호출되는 URL을 수집할 수도 있다.
또한, 상기 URL 동적 수집부(113)에서는, 상기 제1 웹 페이지의 소스 코드 중 URL을 호출할 수 있는 일부 코드를 선별하여 수행하면서 호출되는 URL을 수집할 수도 있다.
또한, 상기 URL 동적 수집부(113)에서는, 상기 제1 웹 페이지의 소스 코드 중 스크립트가 실행되면서 호출되는 URL을 수집할 수도 있다.
이때, 상기 URL 동적 수집부(113)에서는, 상기 제1 웹 페이지의 소스 코드를 수행하되, 상기 소스 코드의 수행에 따라 상기 웹 서버(120)로 전송되어야 할 데이터의 일부 또는 전부를 차단할 수도 있다.
나아가, 상기 URL 동적 수집부(113)에서는, 상기 웹 서버(120)에 접속하기에 앞서 상기 제1 URL이 접속이 허용되는 유효한 URL인지 검증할 수도 있다.
이에 따라, 본 발명의 일 실시예에 따른 URL 수집 방법, 장치 및 컴퓨터 프로그램에서는, 웹 페이지의 소스 코드를 파싱하여 소스 코드에 노출된 URL을 수집하는데 그치지 않고 웹 페이지의 소스 코드를 수행하면서 호출되는 URL까지 수집함으로써, 웹 페이지로부터 보다 효과적으로 URL을 수집할 수 있게 된다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서 본 발명에 기재된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의해서 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100 : URL 수집 시스템
110 : URL 수집 장치
111 : 웹 서버 접속부
112 : 웹 페이지 전송부
113 : URL 동적 수집부
120, 120a, 120b : 웹 서버
130 : 통신 네트워크

Claims (15)

  1. URL 수집 장치가 제1 URL의 웹 서버에 접속하는 단계;
    상기 URL 수집 장치가 상기 웹 서버로부터 제1 웹 페이지를 전송받는 단계; 및
    상기 URL 수집 장치가 상기 제1 웹 페이지의 소스 코드 중 일부 또는 전부를 수행하면서 호출되는 하나 이상의 URL을 수집하는 URL 동적 수집 단계;
    를 포함하며,
    상기 URL 동적 수집 단계에서는,
    상기 URL 수집 장치가 상기 제1 웹 페이지의 소스 코드를 수행하되, 상기 소스 코드의 수행에 따라 상기 웹 서버로 전송되어야 할 데이터의 일부 또는 전부를 차단하는 것을 특징으로 하는 URL 수집 방법.
  2. 제1항에 있어서,
    상기 URL 동적 수집 단계는,
    상기 URL 수집 장치가 상기 제1 웹 페이지를 구성(rendering)하면서 호출되는 자원(resource)들의 URL을 수집하는 자원 URL 수집 단계;를 포함하는 것을 특징으로 하는 URL 수집 방법.
  3. 제1항에 있어서,
    상기 URL 동적 수집 단계는,
    상기 제1 웹 페이지의 소스 코드에서 이벤트가 수행되는 태그를 산출하는 이벤트 태그 산출 단계; 및
    상기 태그의 이벤트를 수행하여 호출되는 URL을 수집하는 이벤트 태그 URL 수집 단계;를 포함하는 것을 특징으로 하는 URL 수집 방법.
  4. 제3항에 있어서,
    상기 이벤트 태그 URL 수집 단계에서는,
    상기 제1 웹 페이지의 소스 코드에 <A> 태그가 존재하는 경우,
    상기 <A> 태그의 클릭 이벤트를 발생시켜 호출되는 URL을 수집하는 것을 특징으로 하는 URL 수집 방법.
  5. 제1항에 있어서,
    상기 제1 웹 페이지의 소스 코드에 <FORM> 태그가 존재하는 경우,
    상기 <FORM> 태그의 "action" 속성에 포함되는 URL 과 함께 파라미터(parameter) 정보도 함께 수집하는 FORM 태그 URL 수집 단계;를 더 포함하는 것을 특징으로 하는 URL 수집 방법.
  6. 제1항에 있어서,
    상기 URL 동적 수집 단계는,
    상기 제1 웹 페이지의 소스 코드에서 이벤트가 수행되는 속성을 산출하는 이벤트 속성 산출 단계; 및
    상기 속성의 이벤트를 수행하여 호출되는 URL을 수집하는 이벤트 속성 URL 수집 단계;를 포함하는 것을 특징으로 하는 URL 수집 방법.
  7. 제6항에 있어서,
    상기 이벤트 속성 URL 수집 단계에서는,
    상기 제1 웹 페이지의 소스 코드에 "on 이벤트"가 존재하는 경우,
    상기 "on 이벤트"를 발생시켜 호출되는 URL을 수집하는 것을 특징으로 하는 URL 수집 방법.
  8. 제1항에 있어서,
    상기 URL 동적 수집 단계에서,
    상기 URL 수집 장치는 상기 소스 코드 중 URL을 호출할 수 있는 일부 코드를 선별하여 수행하면서 호출되는 URL을 수집하는 것을 특징으로 하는 URL 수집 방법.
  9. 제1항에 있어서,
    상기 URL 동적 수집 단계에서,
    상기 URL 수집 장치는 상기 소스 코드 중 스크립트가 실행되면서 호출되는 URL을 수집하는 것을 특징으로 하는 URL 수집 방법.
  10. 삭제
  11. 제1항에 있어서,
    상기 URL 동적 수집 단계에서,
    상기 URL 수집 장치는 상기 소스 코드의 수행에 의하여 상기 웹 서버로 전송되는 데이터가 상기 제1 웹 페이지에 대한 URL 수집에 장애를 일으킬 수 있는 데이터인 경우 차단하는 것을 특징으로 하는 URL 수집 방법.
  12. 제1항에 있어서,
    상기 URL 수집 장치가 상기 웹 서버에 접속하기에 앞서 상기 제1 URL이 접속이 허용되는 유효한 URL인지 검증하는 URL 검증 단계;를 더 포함하는 것을 특징으로 하는 URL 수집 방법.
  13. 제1항에 있어서,
    상기 제1 웹 페이지의 소스 코드를 분석하여 소스 코드에 노출된 하나 이상의 URL을 수집하는 URL 정적 수집 단계; 및
    상기 URL 동적 수집 단계에서 수집된 URL과 상기 URL 정적 수집 단계에서 수집된 URL을 비교하여 중복된 URL 을 제거하는 중복 URL 제거 단계;를 더 포함하는 것을 특징으로 하는 URL 수집 방법.
  14. 컴퓨터에서 제1항 내지 제9항, 제11항 내지 제13항 중 어느 한 항에 기재된 URL 수집 방법의 각 단계를 실행시키기 위한 컴퓨터로 판독 가능한 매체에 저장된 컴퓨터 프로그램.
  15. 제1 URL의 웹 서버에 접속하는 웹 서버 접속부;
    상기 웹 서버로부터 제1 웹 페이지를 전송받는 웹 페이지 전송부; 및
    상기 제1 웹 페이지의 소스 코드 중 일부 또는 전부를 수행하면서 호출되는 하나 이상의 URL을 수집하는 URL 동적 수집부;
    를 포함하며,
    상기 URL 동적 수집부에서는,
    상기 제1 웹 페이지의 소스 코드를 수행하되, 상기 소스 코드의 수행에 따라 상기 웹 서버로 전송되어야 할 데이터의 일부 또는 전부를 차단하는 것을 특징으로 하는 URL 수집 장치.
KR1020190036359A 2019-03-28 2019-03-28 웹 페이지에서 url을 수집하는 방법, 장치 및 컴퓨터 프로그램 KR102247065B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190036359A KR102247065B1 (ko) 2019-03-28 2019-03-28 웹 페이지에서 url을 수집하는 방법, 장치 및 컴퓨터 프로그램
US16/828,055 US11829434B2 (en) 2019-03-28 2020-03-24 Method, apparatus and computer program for collecting URL in web page

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190036359A KR102247065B1 (ko) 2019-03-28 2019-03-28 웹 페이지에서 url을 수집하는 방법, 장치 및 컴퓨터 프로그램

Publications (2)

Publication Number Publication Date
KR20200114486A KR20200114486A (ko) 2020-10-07
KR102247065B1 true KR102247065B1 (ko) 2021-05-03

Family

ID=72604310

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190036359A KR102247065B1 (ko) 2019-03-28 2019-03-28 웹 페이지에서 url을 수집하는 방법, 장치 및 컴퓨터 프로그램

Country Status (2)

Country Link
US (1) US11829434B2 (ko)
KR (1) KR102247065B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100571302B1 (ko) * 2005-12-30 2006-04-17 (주)첫눈 프로그램적으로 링크된 웹 리소스의 주소정보를 수집하는방법 및 그 장치

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6751736B1 (en) * 2000-03-14 2004-06-15 International Business Machines Corporation Method and apparatus for E-commerce by using optional fields for virtual bar codes
US7260564B1 (en) * 2000-04-07 2007-08-21 Virage, Inc. Network video guide and spidering
US8014608B2 (en) * 2006-03-09 2011-09-06 Lexmark International, Inc. Web-based image extraction
TW201030541A (en) * 2009-02-12 2010-08-16 Sunplus Technology Co Ltd Method and system to realize downloading network data into multimedia player
WO2013009713A2 (en) * 2011-07-08 2013-01-17 Uab Research Foundation Syntactical fingerprinting
US9639629B1 (en) * 2011-08-31 2017-05-02 Instart Logic, Inc. Accelerating the downloading of content to an application
US20140373032A1 (en) * 2013-06-12 2014-12-18 Microsoft Corporation Prefetching content for service-connected applications
US10482507B2 (en) * 2013-09-18 2019-11-19 Telefonaktiebolaget Lm Ericsson (Publ) Handling digital advertisements in a communication network
KR20150133370A (ko) 2014-05-19 2015-11-30 주식회사 케이티 웹서비스 접속제어 시스템 및 방법
US10452730B2 (en) * 2015-12-22 2019-10-22 Usablenet Inc. Methods for analyzing web sites using web services and devices thereof
US10268976B2 (en) * 2016-02-17 2019-04-23 SecurityScorecard, Inc. Non-intrusive techniques for discovering and using organizational relationships

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100571302B1 (ko) * 2005-12-30 2006-04-17 (주)첫눈 프로그램적으로 링크된 웹 리소스의 주소정보를 수집하는방법 및 그 장치

Also Published As

Publication number Publication date
US20200311170A1 (en) 2020-10-01
KR20200114486A (ko) 2020-10-07
US11829434B2 (en) 2023-11-28

Similar Documents

Publication Publication Date Title
US10747505B1 (en) API specification generation
CN104766014B (zh) 用于检测恶意网址的方法和系统
US9178793B1 (en) Engine for processing content rules associated with locations in a page
US8131753B2 (en) Apparatus and method for accessing and indexing dynamic web pages
US20190102351A1 (en) Generating configuration information for obtaining web resources
US10582550B2 (en) Generating sequenced instructions for connecting through captive portals
CN108334641B (zh) 采集用户行为数据的方法、系统、电子设备、存储介质
CN109948334B (zh) 一种漏洞检测方法、系统及电子设备和存储介质
US9491223B2 (en) Techniques for determining a mobile application download attribution
CN108494762A (zh) 网页访问方法、装置及计算机可读存储介质、终端
WO2017124692A1 (zh) 查找表单页面和目标页面转化关系的方法和装置
CN108984202B (zh) 一种电子资源分享方法、装置和存储介质
CN104598218A (zh) 用于合并和重用门户信息的方法和系统
CN110598135A (zh) 网络请求处理方法、装置、计算机可读介质及电子设备
CN104834588A (zh) 检测常驻式跨站脚本漏洞的方法和装置
CN104023046A (zh) 移动终端识别方法和装置
US20140074814A1 (en) Method and apparatus for switching search engine to repeat search
CN113312633A (zh) 一种网站漏洞扫描方法、装置、设备及存储介质
KR101282975B1 (ko) 문서 요소를 분리 구조화하여 표준화한 후 웹페이지를 재구성하는 웹화면 크롭 서버 장치
KR102247065B1 (ko) 웹 페이지에서 url을 수집하는 방법, 장치 및 컴퓨터 프로그램
CN116991872A (zh) 数据查询方法、设备及计算机可读存储介质
KR101248867B1 (ko) 웹페이지에서 크롭 영역과 겹쳐지는 문서요소만을 재구성하여 크롭하는 웹화면 크롭 서버 장치
CN105740290A (zh) 移动设备自适应网络搜索的系统和方法
KR20200114485A (ko) 웹사이트에서 수집된 url을 처리하는 방법, 장치 및 컴퓨터 프로그램
US20230333917A1 (en) Methods for providing compliance indicators for api specifications

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant