데이터 스크랩
Data scraping시리즈의 일부 |
정보 보안 |
---|
관련 보안 카테고리 |
위협 |
|
방어. |
데이터 스크래핑은 컴퓨터 프로그램이 다른 프로그램에서 나오는 사람이 읽을 수 있는 출력으로부터 데이터를 추출하는 기술이다.
묘사
일반적으로 프로그램 간의 데이터 전송은 사람이 아닌 컴퓨터의 자동 처리에 적합한 데이터 구조를 사용하여 이루어집니다.이러한 교환 형식과 프로토콜은 일반적으로 엄격하게 구조화되고 문서화되어 있으며 쉽게 구문 분석되며 모호성을 최소화합니다.대부분의 경우 이러한 전송은 사람이 전혀 읽을 수 없습니다.
따라서 데이터 스크래핑과 일반 파싱을 구별하는 중요한 요소는 스크래핑되는 출력이 다른 프로그램에 대한 입력이 아니라 최종 사용자에게 표시되도록 의도되어 있다는 것입니다.따라서 이것은 일반적으로 문서화되어 있지 않으며 파싱이 용이하도록 구조화되어 있지 않습니다.데이터 스크랩에는 바이너리 데이터(보통 이미지 또는 멀티미디어 데이터), 디스플레이 포맷, 중복 라벨, 불필요한 주석 및 관련이 없거나 자동화된 처리를 방해하는 기타 정보가 포함됩니다.
데이터 스크랩은 기존 하드웨어와 호환되는 다른 메커니즘이 없는 레거시 시스템에 대한 인터페이스 또는 보다 편리한 API를 제공하지 않는 서드파티 시스템에 대한 인터페이스 중 하나를 수행하는 경우가 많습니다.두 번째 경우, 서드파티 시스템의 운영자는 시스템 부하 증가, 광고 수익 손실 또는 정보 콘텐츠의 통제 상실 등의 이유로 스크린 스크랩을 원치 않는 것으로 간주하는 경우가 많습니다.
데이터 스크래핑은 일반적으로 임시적이고 수준 낮은 기술로 간주되며, 데이터 교환을 위한 다른 메커니즘을 사용할 수 없는 경우에만 "최후의 수단"으로 사용됩니다.프로그래밍 및 처리 오버헤드가 높을 뿐만 아니라 사람이 사용하기 위한 출력 디스플레이는 구조를 자주 변경합니다.인간은 이것에 쉽게 대처할 수 있지만, 컴퓨터 프로그램은 실패할 것이다.컴퓨터에 존재하는 에러 처리 로직의 품질과 정도에 따라서는, 에러 메세지, 출력의 파손, 또는 프로그램의 크래쉬가 발생할 가능성이 있습니다.
기술적 변종
스크린 스크랩
물리적 "덤 터미널" IBM 3270s의 사용은 점차 줄어들고 있지만, 점점 더 많은 메인프레임 애플리케이션이 웹 인터페이스를 획득함에 따라 일부 웹 애플리케이션은 화면 스크래핑 기술을 계속 사용하여 오래된 화면을 캡처하고 데이터를 최신 프런트 [1]엔드로 전송합니다.
스크린 스크래핑은 보통 웹 스크래핑과 같이 데이터를 해석하는 대신 소스로부터의 시각 데이터의 프로그램 수집과 관련지어집니다.원래 스크린 스크랩은 컴퓨터 디스플레이 단말기의 화면에서 텍스트 데이터를 읽는 관행을 말합니다.이것은 일반적으로 보조 포트를 통해 단말기의 메모리를 읽거나 컴퓨터 시스템의 단말기 출력 포트를 다른 컴퓨터의 입력 포트에 연결함으로써 수행되었습니다.스크린 스크래핑이라는 용어는 데이터의 양방향 교환을 나타낼 때도 일반적으로 사용됩니다.이는 제어 프로그램이 사용자 인터페이스를 탐색하는 단순한 경우일 수도 있고 제어 프로그램이 인간이 사용하도록 의도된 인터페이스에 데이터를 입력하는 더 복잡한 시나리오일 수도 있다.
고전적인 스크린 스크레이퍼의 구체적인 예로서 1960년대에 만들어진 가상의 레거시 시스템, 즉 컴퓨터화된 데이터 처리의 시작을 생각해 보십시오.그 시대의 컴퓨터-사용자 인터페이스는 단순히 텍스트 기반의 멍청한 단말기로, 가상 텔레프린터와 거의 다를 바 없었다(이러한 시스템은 다양한 이유로 오늘날에도 여전히 사용되고[update] 있다).이러한 시스템을 보다 현대적인 시스템에 연결하고자 하는 욕구는 일반적입니다.견고한 솔루션에는 소스 코드, 시스템 문서, API, 50년 된 컴퓨터 시스템에 대한 경험이 있는 프로그래머 등 더 이상 사용할 수 없는 것이 필요한 경우가 많습니다.이러한 경우, 실행 가능한 유일한 해결책은 단말기에서 사용자인 것처럼 "사칭"하는 스크린 스크레이퍼를 작성하는 것입니다.스크린 스크레이퍼는 Telnet 경유로 레거시시스템에 접속하여 오래된 사용자 인터페이스의 네비게이션에 필요한 키 스트로크를 에뮬레이트하여 출력 결과를 처리하고 원하는 데이터를 추출하여 최신 시스템에 전달할 수 있습니다.변경 제어, 보안, 사용자 관리, 데이터 보호, 운영 감사, 로드 밸런싱, 큐 관리 등 대기업에 필요한 거버넌스와 제어를 제공하는 플랫폼을 기반으로 하는 이러한 종류의 정교하고 탄력적인 구현입니다.로봇 프로세스 자동화 소프트웨어의 일례라고 할 수 있습니다.인공지능을 기반으로 한 셀프 가이드의 RPA 2.0을 위한 RPA 또는 RPAAI입니다.
1980년대에는 로이터, 텔레이트 및 Quotron과 같은 금융 데이터 공급자가 인간 판독기를 위한 데이터를 24×80 형식으로 표시했습니다.이 데이터의 사용자, 특히 투자은행은 데이터를 다시 입력하지 않고도 이 문자 데이터를 숫자 데이터로 캡처하고 변환하여 거래 결정을 위한 계산에 포함시켰습니다.이 연습의 일반적인 용어는, 특히 영국에서, 종이 분쇄기를 통과한 결과를 상상할 수 있기 때문에, 페이지 분쇄기였습니다.내부적으로 로이터는 이 변환 프로세스에 대해 Logicizer라고 불리는 고급 컴퓨터 시스템을 VAX/VMS 상에서 실행하면서 "Logicized"[2]라는 용어를 사용했습니다.
보다 현대적인 화면 스크랩 기술에는 스크린에서 비트맵 데이터를 캡처하여 OCR 엔진을 통해 실행하거나 일부 특수 자동 테스트 시스템의 경우 스크린의 비트맵 데이터를 예상 [3]결과와 일치시킵니다.이는 GUI 애플리케이션의 경우 기본 프로그래밍 개체에 대한 참조를 프로그래밍 방식으로 얻어 그래픽 컨트롤을 쿼리하는 것과 결합할 수 있습니다.일련의 화면은 자동으로 캡처되어 데이터베이스로 변환됩니다.
이러한 기술에 대한 또 다른 현대적 적응은 일련의 화면을 입력으로 사용하는 대신 이미지 또는 PDF 파일 세트를 사용하는 것입니다. 따라서 일반적인 "문서 스크랩" 및 보고서 마이닝 기법과 중복되는 부분이 있습니다.
스크린 [4]스크랩에 사용할 수 있는 툴은 많이 있습니다.
웹 스크랩
웹 페이지는 텍스트 기반 마크업 언어(HTML 및 XHTML)를 사용하여 구축되며 많은 경우 텍스트 형식으로 유용한 데이터를 포함합니다.그러나 대부분의 웹 페이지는 자동 사용을 위해 설계된 것이 아니라 최종 사용자를 위해 설계되었습니다.그 때문에, Web 컨텐츠를 스크래핑 하는 툴킷이 작성되었습니다.웹 스크레이퍼는 웹 사이트에서 데이터를 추출하는 API 또는 도구입니다.Amazon AWS 및 Google과 같은 기업은 최종 사용자에게 웹 스크랩 도구, 서비스 및 공용 데이터를 무료로 제공합니다.새로운 형태의 웹 스크랩에는 웹 서버로부터의 데이터 피드를 듣는 것이 포함됩니다.예를 들어 JSON은 클라이언트와 웹 서버 간의 전송 스토리지 메커니즘으로 일반적으로 사용됩니다.
최근에는 DOM 해석, 컴퓨터 비전, 자연어 처리 등의 기술을 사용하여 웹 페이지를 볼 때 발생하는 인적 처리를 시뮬레이션하여 유용한 [5][6]정보를 자동으로 추출하는 웹 스크랩 시스템을 개발했습니다.
대규모 웹 사이트에서는 일반적으로 웹 스크래퍼로부터 데이터를 보호하고 IP 또는 IP 네트워크가 전송할 수 있는 요청 수를 제한하기 위해 방어 알고리즘을 사용합니다.이로 인해 웹사이트 개발자와 스크래핑 [7]개발자들 사이에 분쟁이 계속되고 있다.
보고서 마이닝
보고서 마이닝은 사람이 읽을 수 있는 컴퓨터 보고서에서 데이터를 추출하는 것입니다.종래의 데이터 추출에는, 현용 소스 시스템에의 접속, 적절한 접속 표준 또는 API, 및 통상, 복잡한 쿼리가 필요합니다.소스 시스템의 표준 보고서 옵션을 사용하여 출력을 프린터가 아닌 스풀 파일로 전송함으로써 보고서 [8]마이닝을 통해 오프라인 분석에 적합한 정적 보고서를 생성할 수 있습니다.이 접근방식을 사용하면 업무시간 중 CPU 사용량이 많아지지 않고 ERP 고객의 최종 사용자 라이센스 비용을 최소화할 수 있습니다.또한 매우 신속한 시제품 제작과 커스텀 보고서 작성을 실현할 수 있습니다.데이터 스크래핑 및 웹 스크래핑은 동적 출력과 상호 작용하지만 보고서 마이닝은 HTML, PDF 또는 텍스트와 같은 사람이 읽을 수 있는 형식으로 파일에서 데이터를 추출합니다.이것들은, 프린터에의 데이터 피드를 대행 수신하는 것으로, 거의 모든 시스템에서 간단하게 생성할 수 있습니다.이 접근법은 소스 시스템에 API를 프로그래밍할 필요 없이 데이터를 얻기 위한 빠르고 간단한 경로를 제공할 수 있습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ "1990년대에..체이스 뱅크에 따르면 2002년 2016년 여전히 주요 이슈입니다. Ron Lieber (May 7, 2016). "Jamie Dimon Wants to Protect You From Innovative Start-Ups". The New York Times.
- ^ 기고자들은 로이터의 모니터 네트워크에서 IDN으로의 전환 계획에 대해 걱정하고 있다, FX Week, 1990년 11월 2일
- ^ Yeh, Tom (2009). "Sikuli: Using GUI Screenshots for Search and Automation" (PDF). UIST.
- ^ "What is Screen Scraping". June 17, 2019.
- ^ "Diffbot aims to make it easier for apps to read Web pages the way humans do". MIT Technology Review. Retrieved 1 December 2014.
- ^ "This Simple Data-Scraping Tool Could Change How Apps Are Made". WIRED. Archived from the original on 11 May 2015. Retrieved 8 May 2015.
- ^ ""Unusual traffic from your computer network" - Search Help". support.google.com. Retrieved 2017-04-04.
- ^ Scott Steinacher, "Data Pump transforms host data", Info World, 1999년 8월 30일, 페이지 55
추가 정보
- 헤멘웨이, 케빈과 칼리샤인, 타라헥스를 염탐하다.매사추세츠주 캠브리지: 오라일리, 2003.ISBN 0-596-00577-6.