2009-08-14 2 views
3

화면 긁기는 유용한 도구처럼 보입니다. 다른 사람의 사이트로 이동하여 데이터를 훔칠 수 있습니다.화면 긁기가 가치가있을 수있는 사례를 찾고 싶습니다.

하지만이 기능이 얼마나 유용 할 지 모르겠다.

대부분의 응용 프로그램 데이터는 웹에서도 해당 응용 프로그램에 매우 한정적입니다. 예를 들어 StackOverflow의 모든 질문과 답변 또는 모든 결과가 Google에서 제외되었다고 가정 해 봅니다 (가능한 경우). 경쟁 질문이 있거나 답장 사이트 (도난당한 데이터가 즉시 분명함) 또는 경쟁 검색 엔진 (이 경우 내 알고리즘이 없으면 내 데이터가 매우 빨리 고쳐질 것입니다).

내 질문에 어떤 응용 프로그램의 데이터가 어떤 외부 응용 프로그램에 유용 할 수 있습니까? 요점을 설명하기위한 실용적인 예를 찾고 있습니다.

+0

누군가의 데이터를 도용하는 것을 "누군가의 데이터를 도용"이라고합니다. 화면 스크래핑은 사용 가능한 최상의 자동화/통합 옵션이기 때문에 사용자가 다른 응용 프로그램에서 데이터를 읽는 응용 프로그램 중 하나입니다. 더 이상 안전하게 수정할 수없는 구형 "빅 아이언"시스템 터미널 프로그램을 다룰 때 드문 선택이 아닙니다. . – StingyJack

답변

3

좋은 예가 StackOverflow입니다. 데이터를 CC 라이센스에 따라 they've released it으로 긁어 낼 필요가 없습니다. 이미 커뮤니티는 통계를 정리하고 재미있는 그래프를 작성하고 있습니다.

ProgrammableWeb에는 인기있는 매시업 예제가 많이 있습니다. BarCampsHack Days과 같은 이벤트에서 동료 마시 서 (O_o)와도 만날 수 있습니다 (침낭 가져 가기). Yahoo APIs (특히 Pipes)에서 제공하는 풍부한 정보를 살펴보고 개발자가 어떤 작업을하고 있는지 확인하십시오.

데이터를 도용하거나 재 게시하지 마십시오. 데이터를 더욱 잘 이해하고, 새로운 방식으로 이해하고, 검색하고, 탐색 할 수 있습니다. 항상 데이터 소스를 인용하고 도움을 준 사람들에게 감사하십시오. 새로운 언어를 배우거나 데이터를 이해하거나 semantic web을 홍보하는 데 사용하십시오. 그것이 이익이 아니라는 것을 기억하십시오! Web 서비스는 역 검색을 제공하지 않을 때 도움이 :)

5

사이트가 공개적으로 (여전히) XML 서비스로 사용할 수없는 데이터를 제공 할 때 유용합니다. 나는 비행 추적 데이터를 회사의 인트라넷 애플리케이션 중 하나로 끌어 들이기 위해 긁어 모으기를 사용했던 고객이있었습니다.

이 기술은 연구에도 사용됩니다. 나는 몇몇 온라인 사전의 내용을 연설로 비교하고자하는 의뢰인이 있었으며,이 모든 사이트는 긁어 내야 만했다.

아니요, 데이터를 "도용"하는 기술입니다. 모든 일반적인 사용 제한이 적용됩니다. 많은 사이트에서 스크래핑을 방지하기 위해 보안 문자 메커니즘을 구현하며 이러한 문제를 해결하는 것은 적절하지 않습니다.

+0

왜 응용 프로그램 내에서 비행 추적 데이터가 필요합니까? 왜이 정보를 이미 제공하고있는 사이트에 링크하지 않는 것이 좋을까요? – 010

+1

@ 010 많은 이유 ... 예를 들어 비행 추적 정보가있는 사이트에는 응용 프로그램에 중요하지 않은 불필요한 데이터가 있거나 의도 한 방식에 적합하지 않은 형식으로 표시 될 수 있습니다 그걸 써. 사용자가 응용 프로그램 내에서 직접 데이터를 임베드 할 수있을 때 사용자를 다른 곳으로 이동시키는 것은 번거롭지 않습니다. – Donut

+0

@dgritsko - 좋은 지적입니다. 감사. – 010

2

사이트가 API를 통해 액세스 할 수있는 이점이 있고 (그렇게하기가 자유롭고 합법적 인) 데이터가 있지만 아직 구현하지 않은 경우 화면 스크래핑은 기본적으로 기능을 직접 사용할 수 있습니다.
실용적인 예 - 화면을 스크래핑하면 현재 SO가 없기 때문에 SO 계열 사이트의 정보를 결합하는 매시업을 만들 수 있습니다.

+0

복제가 즉시 명백하기 때문에 그렇게 실용적이지는 않습니다. – 010

+1

콘텐츠 제작자의 원래 목적을 뒤바침해서는 안되며 데이터를 더욱 유용하게 사용하는 방법을 확장해야합니다. 온라인 사전을 비교하는 harpo의 이야기는이 점의 좋은 예입니다. – Donut

+0

@dgritsko - 네, 그 말을하는 좋은 방법입니다. 감사. – 010

1

내 경험에 비추어 볼 때 하나의 예입니다.

저는 건물에 있던 iPhone 앱의 위도와 경도가 전 세계 주요 도시 목록을 필요로했습니다. 앱은 그 데이터를 iPhone의 geolocation 기능과 함께 사용하여 앱의 각 사용자가 가장 가까운 주요 도시 (정확한 위치를 표시하지 않음)를 표시하고 지구의 3D 지구본에 배치합니다.

어디서나 XML/Excel/CSV 형식으로 적절한 목록을 찾을 수 없었지만 필요한 정보가 (대략) this wikipedia page 인 것으로 나타났습니다. 그래서 나는 그 페이지를 긁어 데이터를 데이터베이스에로드하는 빠른 스크립트를 작성했습니다.

+0

좋은 예. 웹 페이지를 로컬로 복사하고 텍스트 편집기 및 일부 정규식을 사용하여 데이터를 제거하는 등의 다른 방법으로이 작업을 수행 할 수도 있습니다. 그러나이 경우에는 근근이 살아가는 것이 일을 끝내는 데 사용할 수있는 가장 빠른 도구이거나 사용하기에 가장 쉬운 도구 일 것이라고 판단한 것입니까? – 010

+0

@ 010 - 아마도 텍스트 편집기를 사용하여 그것을 할 수는 있지만 화면 스크래퍼 작성에 대한 좋은 점은 사람들이 해당 페이지로 이동하여 목록에 도시를 추가하면 (분명히 꽤 불완전합니다) 스크래퍼를 다시 실행하여 새로운 것을 꺼내십시오. –

+0

아, 맞아. 그건 좋은 지적이야. 감사. – 010

2

글쎄, 메인 프레임에서 데이터를 수집합니다. 이것이 일부 사람들이 스크린 스크래핑을 사용하는 한 가지 이유입니다. 메인 프레임은 여전히 ​​금융 세계에서 사용되고 있으며 종종 지난 세기에 작성된 소프트웨어를 실행합니다. 이 소프트웨어를 작성한 사람들은 이미 은퇴했을 것입니다.이 소프트웨어는 이러한 조직에 매우 중요하기 때문에 새로운 코드를 추가해야 할 때 정말 싫어합니다. 따라서 스크린 스크래핑은 메인 프레임과 통신하여 메인 프레임에서 정보를 수집 한 다음이 정보가 필요한 모든 프로세스로 전송할 수있는 쉬운 인터페이스를 제공합니다. 메인 프레임 응용 프로그램을 다시 작성 하시겠습니까? 음, 메인 프레임의 소프트웨어는 매우 오래된 것일 수 있습니다. COBOL로 작성된 30 년이 넘는 메인 프레임에서 소프트웨어를 보았습니다.이러한 응용 프로그램은 잘 작동하며 종종 30 년 이상 작업해온 일부 코드가 손상 될 수 있으므로 부품을 다시 작성할 필요가 없습니다. 깨진 것이 아니라면 고치지 마십시오. 물론 추가 코드를 작성할 수는 있지만 프로덕션 환경에서 메인 프레임 코드를 사용하려면 시간이 오래 걸립니다. 숙련 된 메인 프레임 개발자는 찾기가 어렵습니다.

나 자신도 소프트웨어 프로젝트에서 화면 스크래핑을 사용해야했다. 이것은 시작한 모든 하위 프로세스의 콘솔에 출력을 캡처해야하는 일정 응용 프로그램이었습니다. 이것은 화면 긁기의 가장 단순한 형태입니다. 실제로 한 응용 프로그램의 출력을 다른 응용 프로그램의 입력으로 리디렉션하면 화면 긁기의 일종이라는 것을 깨닫지 못하는 사람들도 있습니다. :)

기본적으로 화면 스크래핑을 통해 하나의 (웹) 응용 프로그램을 다른 응용 프로그램과 연결할 수 있습니다. 종종 다른 솔루션이 너무 많은 시간을 들여야 할 때 사용되는 빠른 솔루션입니다. 모두는 그것을 싫어하지만, 그것이 절약되는 시간은 여전히 ​​매우 효율적입니다.

2

한 프로젝트에서 특정 파일 형식에 대한 번역 서비스를 제공하는 (저렴한) 상용 공급 업체를 발견했습니다. 공급 업체는 API를 제공하지 않았으며 (결국 저렴한 공급 업체 였음) 대신 업로드 및 다운로드 할 웹 양식이있었습니다.

하루에 수백 개의 파일이있는 유일한 방법은 Perl에서 WWW::Mechanize을 사용하고 로그인 및 업로드 상자를 통해 화면을 긁어내어 파일을 제출하고 반환 된 파일을 저장하는 것입니다. 그것은 추악하고 확실히 부서지기 쉽다 (만약 벤더가 최소한 사이트를 바꾼다면 앱을 망칠 수있다). 이제 1 년 넘게 일하고 있습니다.

+0

출력을 읽으려면 양식 제출을 시뮬레이션하려고 생각조차하지 못했습니다. 나는 기계화에 익숙하지 않다. 그러나 나는 그것이 폼을 통과하는 것이 당신이 가정하는 것처럼 복잡하지 않다는 것을 의미한다고 가정한다. – 010

+1

가장 큰 장애물은 자바 스크립트 범프를 넘나 드는 것이었지만 일단 완료되면 실제로 원활하게 처리되었습니다. –

1

웹 사이트의 데이터를 읽을 때 컴퓨터가 필요할 때마다. 화면 스크래핑은 모든 웹 사이트 API가 유용한 동일한 인스턴스에서 유용합니다. 그러나 일부 웹 사이트에는 API를 직접 만들 수있는 리소스가 없습니다. 화면 스크래핑은 개발자의 몫입니다.

예를 들어 스택 오버플로가 발생한 초기에는 누군가가 스택 오버플로 자체에서 해당 기능을 제공하기 전에 평판에 대한 변경 사항을 추적하는 도구를 만들었습니다. Stack Overflow에는 API가 없으므로 스크랩을 스크리닝하는 유일한 방법입니다.

2

XML 피드 또는 API에서 제공되는 정보를 제공하지 않는 인기 스포츠 사이트에서 점수를 받기를 원한다고 가정 해 보겠습니다.

1

명백한 경우를

희망입니다. 동일한 데이터 세트에 대해 역 검색을 구현할 수 있지만 전체 데이터 세트를 스크래핑해야합니다.

역방향 검색에서도 상당한 사전 처리가 필요한 경우 공정한 사용이 될 수 있습니다. 부분 일치를 지원해야하기 때문입니다. 데이터 원본에는 역방향 검색 옵션을 제공하는 기술적 기술이나 컴퓨팅 리소스가 없을 수 있습니다.

+0

역방향 검색 - 전화 번호가 있지만 이름이없는 역방향 전화 번호 조회 서비스를 의미합니까? 비정형 요구 사항 같아요, 안 그래요? – 010

+0

글쎄, 그것은 역방향 검색의 명확한 경우지만, 역방향 검색이 기술적으로 어렵지 않은 경우입니다. 개인적 경험으로 허용되는지 여부는 일반적으로 법적/규제 사항입니다. 좀 더 어려운 예는 xyz0000-xyz9999라는 숫자의 범위가 주어지면 "fax"라는 단어가 들어있는 항목을 찾습니다. – MSalters

0

매일 스크린 스크래핑을 사용하여 일부 전자 상거래 사이트를 실행하고 매일 내 공급 업체 도매 사이트에서 제품 목록을 자동으로 수집하기 위해 스크린 스크래핑 스크립트를 실행합니다. 이를 통해 여러 공급 업체가 제공하는 모든 제품에 대한 최신 정보를 얻을 수 있으며 가격 변경으로 인한 비 경제적 마진을 표시 할 수 있습니다.