맨위로가기

데이터 스크레이핑

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

데이터 스크레이핑은 컴퓨터 프로그램이 최종 사용자에게 표시하기 위한 데이터를 추출하는 기술을 의미한다. 이는 데이터를 자동화된 처리에 적합한 형태로 제공하는 대신, 사람이 읽기 쉬운 형태로 구성된 데이터를 대상으로 한다. 데이터 스크레이핑은 레거시 시스템이나 API가 없는 시스템에서 데이터를 추출하는 데 유용하며, 스크린 스크레이핑, 웹 스크레이핑, 보고서 마이닝 등의 기술이 존재한다. 하지만, 데이터 스크레이핑은 대상 시스템의 변경에 취약하고, 시스템 부하를 증가시키며, 윤리적 및 법적 문제와 마주할 수 있다. 데이터 스크레이핑은 금융, 마케팅, 공공, 학술 연구 등 다양한 분야에서 활용된다.

2. 데이터 스크레이핑의 개념과 특징

데이터 스크레이핑은 다른 데이터 교환 수단이 없을 때 사용하는 임시방편으로, 프로그래밍 및 처리 비용이 높고 출력 구조 변경에 취약하다는 단점이 있다. 사람이 보기에는 쉬운 변화도 컴퓨터 프로그램은 오류를 발생시킬 수 있다.[1]

주로 현재 컴퓨터 하드웨어와 호환되지 않는 레거시 시스템이나, 편리한 API를 제공하지 않는 외부 시스템과 인터페이스할 때 사용된다. 외부 시스템 운영자는 부하 (컴퓨팅) 증가, 광고 수익 감소, 정보 통제력 상실 등을 이유로 스크레이핑을 꺼릴 수 있다.[1]

2. 1. 일반적인 파싱과의 차이점

일반적으로 프로그램들 간의 데이터 전송은 사람이 아닌 컴퓨터에 의한 자동화된 처리에 적합한 자료 구조를 사용하여 수행된다. 이러한 교환식 포맷프로토콜들은 보통 완고하게 구조화되어 있고 잘 문서화되어 있으며 쉽게 구문 분석이 가능하고 모호성을 최소한으로 유지시킨다. 아주 가끔은 인간이 읽기 쉽지 않은 형태로 구성되어 있는 경우가 있다.

그러므로 데이터 스크레이핑을 정규적인 구문 분석과 구별하는 주요 요소는 "스크레이핑"이 되는 출력물이 최종 사용자에게 표시할 것을 염두에 둔다는 점이다. (다른 프로그램에게 입력을 전달하는 것이 아니라) 그러므로 편리한 구문 분석을 위해 문서화/구조화가 되어 있지 않을 수 있다. 데이터 스크레이핑은 이진 데이터 (일반적으로 이미지 또는 멀티미디어 데이터), 표시 장치 서식, 중복된 레이블, 불필요한 주석 및 자동 처리를 방해하거나 관련 없는 기타 정보를 포함하기도 한다.[1]

2. 2. 데이터 스크레이핑의 주요 특징

데이터 스크레이핑은 일반적인 구문 분석과 다음과 같은 주요 특징에서 구별된다.

  • 목적: 데이터 스크레이핑의 출력물은 다른 프로그램이 아닌 최종 사용자에게 보여주기 위한 것이다. 반면, 일반적인 구문 분석은 컴퓨터가 자동화된 처리를 하기 위한 자료 구조를 만드는 것이 목적이다.
  • 구조: 데이터 스크레이핑 대상은 편리한 구문 분석을 위해 문서화되거나 구조화되어 있지 않을 수 있다. 반면, 일반적인 구문 분석 대상은 엄격하게 구조화되고 잘 문서화되어 있다.
  • 내용: 데이터 스크레이핑은 이진 데이터(이미지, 멀티미디어 데이터 등), 디스플레이 서식 지정, 과잉 레이블, 과도한 주석 등 자동화된 처리에 불필요한 정보를 포함할 수 있다.


데이터 스크레이핑은 다음과 같은 상황에서 주로 사용된다.

2. 3. 데이터 스크레이핑의 한계

데이터 스크레이핑은 높은 프로그래밍 및 처리 오버헤드 외에도, 출력 디스플레이 구조가 자주 변경된다는 한계가 있다. 인간은 이러한 변화에 쉽게 대처할 수 있지만, 컴퓨터 프로그램은 오류 메시지를 출력하거나, 손상된 결과를 내놓거나, 심지어 프로그램 충돌을 일으킬 수 있다. 이러한 오류는 컴퓨터에 존재하는 오류 처리 로직의 품질과 범위에 따라 달라진다.[1]

데이터 스크레이핑은 대상 시스템이 레거시 시스템이라 현재의 컴퓨터 하드웨어와 호환되는 다른 메커니즘이 없거나, 더 편리한 API를 제공하지 않는 제3자 시스템과 인터페이스해야 할 때 주로 수행된다. 제3자 시스템 운영자는 시스템 부하 증가, 광고 수익 손실, 정보 내용 제어 손실 등의 이유로 스크레이핑을 원치 않을 수 있다.[1]

일반적으로 데이터 스크레이핑은 다른 데이터 교환 메커니즘이 없을 때만 사용되는 '임시'적이고 세련되지 않은 기술로 간주된다.[1]

3. 데이터 스크레이핑 기술 종류

일반적으로 프로그램들 간의 데이터 전송은 사람이 아닌 컴퓨터에 의한 자동화된 처리에 적합한 자료 구조를 사용하여 수행된다. 이러한 교환식 포맷프로토콜들은 보통 엄격하게 구조화되어 있고 잘 문서화되어 있으며, 쉽게 구문 분석이 가능하고 모호성을 최소한으로 유지한다. 하지만, 아주 가끔은 인간이 읽기 쉽지 않은 형태로 구성되어 있는 경우가 있다.

데이터 스크레이핑과 정규적인 구문 분석을 구별하는 주요 요소는 "스크레이핑"의 출력물이 최종 사용자에게 표시될 것을 염두에 둔다는 점이다. 다른 프로그램에 입력을 전달하는 것이 아니기 때문에, 편리한 구문 분석을 위해 문서화 또는 구조화가 되어 있지 않을 수 있다. 데이터 스크레이핑은 바이너리 데이터 (일반적으로 이미지나 멀티미디어 데이터), 디스플레이 서식 지정, 과잉 레이블, 과도한 주석, 자동화된 처리를 저해하는 기타 정보를 포함하기도 한다.

데이터 스크레이핑은 대상이 레거시 시스템이거나, 더 편리한 API가 제공되지 않는 서드 파티 시스템일 경우 주로 사용된다. 서드 파티 시스템 관리자는 부하 증가, 광고 수입 감소, 콘텐츠 통제 불가능 등의 이유로 스크레이핑을 원하지 않을 수 있다.

스크린 스크레이핑은 일반적으로 다른 이용 가능한 메커니즘이 없는 경우에 사용되는 임시방편적인 방법으로, 막대한 프로그래밍과 처리 오버헤드가 필요하다. 또한, 출력이 인간을 대상으로 하기 때문에 구조가 빈번하게 변경될 수 있으며, 이는 컴퓨터 프로그램의 크래시나 잘못된 결과 표시로 이어질 수 있다.

데이터 스크레이핑의 적법성과 윤리성은 종종 논쟁의 대상이 된다. 공개적으로 접근 가능한 데이터를 스크레이핑하는 것은 일반적으로 합법적이지만, 웹사이트의 서비스 약관을 위반하거나, 보안 조치를 위반하거나, 사용자 개인 정보를 침해하는 방식으로 스크래핑하는 것은 법적 조치로 이어질 수 있다. 또한 일부 웹사이트는 robots.txt에서 데이터 스크레이핑을 금지하기도 한다.

3. 1. 스크린 스크레이핑

화면의 일부분과 스크린 스크레이핑 인터페이스(빨간 화살표가 있는 파란 상자). 데이터 캡처 과정을 사용자가 지정하고 있다.


스크린 스크레이핑은 보통 웹 스크레이핑처럼 데이터를 파싱하는 대신 소스로부터 시각 데이터를 프로그래밍적으로 모으는 일과 관련된다.[13] 원래 "스크린 스크레이핑"은 컴퓨터 디스플레이 단말기화면으로부터 텍스트 데이터를 읽는 기법을 의미했다. 이는 일반적으로 터미널의 메모리를 읽어들임으로써 수행되었으며 이는 보조 포트를 사용해서, 또는 컴퓨터 시스템의 터미널 출력 포트를 다른 컴퓨터의 입력 포트에 연결시킴으로써 가능했다. 스크린 스크레이핑이라는 용어는 또한 데이터의 양방향 교환을 의미하기도 한다. 단순한 경우 제어 프로그램이 사용자 인터페이스를 둘러보는 일이 있고, 더 복잡한 시나리오의 경우 인간이 사용하도록 의도된 인터페이스에 제어 프로그램이 데이터를 입력하는 일을 들 수 있다.

고전적인 스크린 스크레이퍼의 구체적인 예로, 1960년대—컴퓨터화된 데이터 처리의 시작—부터 존재했던 가상의 레거시 시스템을 생각해 볼 수 있다. 그 시대의 컴퓨터 대 사용자 인터페이스는 종종 가상 전신 타자기에 지나지 않는 텍스트 기반의 덤 터미널이었다. 이러한 시스템을 보다 현대적인 시스템에 연결하려는 요구가 일반적이다. 강건한 솔루션은 종종 더 이상 사용할 수 없는 것들, 즉 소스 코드, 시스템 문서, API, 또는 50년 된 컴퓨터 시스템에 대한 경험이 있는 프로그래머를 필요로 한다. 이러한 경우, 유일한 실행 가능한 솔루션은 터미널 사용자인 척하는 스크린 스크레이퍼를 작성하는 것일 수 있다. 스크린 스크레이퍼는 텔넷을 통해 레거시 시스템에 연결하여, 오래된 사용자 인터페이스를 탐색하는 데 필요한 키 입력을 에뮬레이션하고, 결과로 생성된 디스플레이 출력을 처리하고, 원하는 데이터를 추출하여 최신 시스템으로 전달할 수 있다.

1980년대에 로이터 통신 (로이터), 텔레레이트, 쿼트론과 같은 금융 데이터 제공업체는 인간 독자를 위해 24×80 형식으로 데이터를 표시했다. 특히 투자 은행과 같은 이 데이터의 사용자들은 데이터를 데이터 입력원이 다시 입력하지 않고 거래 결정에 대한 계산에 포함하기 위해 이 문자 데이터를 캡처하고 숫자 데이터로 변환하는 애플리케이션을 작성했다. 특히 영국에서 이 관행에 대한 일반적인 용어는 결과가 종이 파쇄기를 통과한 것으로 상상할 수 있기 때문에 '페이지 파쇄'였다. 내부적으로 로이터는 이 변환 프로세스에 대해 '논리화'라는 용어를 사용했으며, VAX/VMS에서 Logicizer라는 정교한 컴퓨터 시스템을 실행했다.[3]

보다 현대적인 스크린 스크레이핑 기술에는 화면에서 비트맵 데이터를 캡처하여 OCR 엔진을 실행하거나, 일부 특수 자동화 테스트 시스템의 경우, 화면의 비트맵 데이터를 예상 결과와 일치시키는 것이 포함된다.[4]

3. 2. 웹 스크레이핑

웹 페이지는 텍스트 기반 마크업 언어(HTML, XHTML)를 사용하여 구축되며, 종종 텍스트 형태의 풍부하고 유용한 데이터를 포함한다. 그러나 대부분의 웹 페이지는 자동화된 사용보다는 인간 최종 사용자를 위해 설계되었다. 이 때문에 웹 콘텐츠를 스크레이핑하는 도구 키트가 만들어졌다. 웹 스크래퍼는 웹사이트에서 데이터를 추출하는 API 또는 도구이다.[6] 아마존 웹 서비스(Amazon AWS) 및 구글과 같은 회사는 최종 사용자에게 무료로 제공되는 웹 스크래핑 도구, 서비스 및 공개 데이터를 제공한다. 최신 형태의 웹 스크래핑은 웹 서버의 데이터 피드를 수신하는 것을 포함한다. 예를 들어, JSON은 클라이언트와 웹 서버 간의 전송 저장 메커니즘으로 일반적으로 사용된다. 웹 스크래퍼는 웹사이트의 URL을 사용하여 데이터를 추출하고, 이 데이터를 후속 분석을 위해 저장한다. 이 웹 스크래핑 방법은 효율적이고 정확한 방식으로 데이터를 추출할 수 있게 해준다.[7]

최근에는 기업들이 DOM 파싱, 컴퓨터 비전자연어 처리 기술을 사용하여 웹 페이지를 볼 때 발생하는 인간의 처리를 시뮬레이션하여 유용한 정보를 자동으로 추출하는 웹 스크래핑 시스템을 개발했다.[8][9]

대형 웹사이트는 일반적으로 웹 스크레이퍼로부터 데이터를 보호하고 IP 또는 IP 네트워크가 보낼 수 있는 요청 수를 제한하기 위해 방어 알고리즘을 사용한다. 이로 인해 웹사이트 개발자와 스크래핑 개발자 간에 지속적인 싸움이 벌어졌다.[10]

3. 3. 보고서 마이닝

보고서 마이닝은 사람이 읽을 수 있는 컴퓨터 보고서에서 데이터를 추출하는 것이다. 기존의 데이터 추출은 작동하는 소스 시스템과의 연결, 적절한 데이터베이스 연결 표준 또는 API가 필요하며 일반적으로 복잡한 쿼리가 필요하다. 하지만 보고서 마이닝은 소스 시스템의 표준 보고 옵션을 사용하고 출력을 스풀 파일로 지정하여 프린터 대신 정적 보고서를 생성하여 오프라인 분석에 적합하다.[11] 이 접근 방식은 업무 시간 동안의 집중적인 CPU 사용을 피할 수 있으며, ERP 고객의 최종 사용자 라이선스 비용을 최소화하고, 맞춤형 보고서의 매우 빠른 프로토타입 제작 및 개발을 제공할 수 있다. 보고서 마이닝은 HTML, PDF, 텍스트 등 사람이 읽을 수 있는 형식의 파일에서 데이터를 추출하는 것을 포함한다. 이러한 데이터는 프린터로의 데이터 피드를 가로채 거의 모든 시스템에서 쉽게 생성할 수 있으며, 소스 시스템에 대한 API를 프로그래밍할 필요 없이 데이터를 얻는 빠르고 간단한 경로를 제공한다.

4. 데이터 스크레이핑의 윤리적, 법적 문제

데이터 스크레이핑의 적법성과 윤리성은 종종 논쟁의 대상이 된다. 공개적으로 접근 가능한 데이터를 스크레이핑하는 것은 일반적으로 합법적이지만, 웹사이트의 서비스 약관을 위반하거나 보안 조치를 위반하거나 사용자 개인 정보를 침해하는 방식으로 스크래핑하는 것은 법적 조치로 이어질 수 있다.[11] 또한 일부 웹사이트는 robots.txt에서 데이터 스크레이핑을 금지하기도 한다.

4. 1. 서비스 약관 위반 문제

데이터 스크레이핑의 적법성과 윤리성은 종종 논쟁의 대상이 된다. 공개적으로 접근 가능한 데이터를 스크레이핑하는 것은 일반적으로 합법적이지만, 웹사이트의 서비스 약관을 위반하거나 보안 조치를 위반하거나 사용자 개인 정보를 침해하는 방식으로 스크레이핑하는 것은 법적 조치로 이어질 수 있다.[11] 또한 일부 웹사이트는 robots.txt에서 데이터 스크레이핑을 금지하기도 한다.

5. 데이터 스크레이핑의 활용 분야 및 사례

(원본 소스가 제공되지 않았으므로, 이전 결과물을 수정할 수 없습니다. 원본 소스가 있어야 수정 가능합니다.)

참조

[1] 학술지 Web scraping technologies in an API world https://academic.oup[...] 2013-04-30
[2] 뉴스 Jamie Dimon Wants to Protect You From Innovative Start-Ups https://www.nytimes.[...] 2016-05-07
[3] 뉴스 Contributors Fret About Reuters' Plan To Switch From Monitor Network To IDN http://www.fxweek.co[...] FX Week 1990-11-02
[4] 학술지 Sikuli: Using GUI Screenshots for Search and Automation http://groups.csail.[...] 2015-02-16
[5] 웹사이트 What is Screen Scraping http://www.prowebscr[...] 2019-06-17
[6] 학술지 SASSCAL WebSAPI: A Web Scraping Application Programming Interface to Support Access to SASSCAL's Weather Data 2021-07-28
[7] 서적 2019 International Conference on Computer Communication and Informatics (ICCCI) IEEE 2019-01-23
[8] 웹사이트 A Startup Hopes to Help Computers Understand Web Pages https://www.technolo[...] 2014-12-01
[9] 간행물 This Simple Data-Scraping Tool Could Change How Apps Are Made https://www.wired.co[...] 2015-05-08
[10] 웹사이트 "Unusual traffic from your computer network" https://support.goog[...] 2017-04-04
[11] 뉴스 Data Pump transforms host data https://web.archive.[...] InfoWorld 1999-08-30
[12] 뉴스 http://www.fxweek.co[...] FX Week 1990-11-02
[13] 뉴스 Jamie Dimon Wants to Protect You From Innovative Start-Ups https://www.nytimes.[...] 2016-05-07



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com