전통문화대전망 - 전통 미덕 - 웹 크롤러의 현재 연구 결과와 기존 문제점은 무엇입니까?

웹 크롤러의 현재 연구 결과와 기존 문제점은 무엇입니까?

웹 크롤러는 스파이더(또는 로봇, 크롤러)와 같은 단어를 무료로 번역한 것으로, 검색 엔진 기술을 통합하고 기술적 수단을 통해 최적화하여 인터넷에서 데이터를 추출하는 효율적인 정보 크롤링 도구입니다. HTML(Hypertext Markup Language)을 통해 표준화된 모든 웹페이지 정보를 검색, 크롤링 및 저장합니다.

동작 메커니즘은 인터넷의 특정 사이트에 요청을 보내고, 연결이 설정된 후 해당 사이트와 상호 작용하고, HTML 형식으로 정보를 얻은 후 다음 사이트로 이동하고 위의 작업을 반복하는 것입니다. 프로세스. 이러한 자동화된 작업 메커니즘을 통해 대상 데이터는 로컬 데이터에 저장되어 사용됩니다. 웹 크롤러가 하이퍼텍스트 링크에 ​​접근하면 HTML 태그에서 다른 웹페이지를 가리키는 주소 정보를 자동으로 얻을 수 있어 자동으로 효율적이고 표준화된 정보 획득이 가능합니다.

인류 경제사회에서 인터넷이 점점 더 널리 사용되면서, 그것이 다루는 정보의 규모는 기하급수적으로 증가하고, 정보의 형태와 유통도 다양해지고, 글로벌화되고 있어 전통적인 검색 엔진 기술은 더 이상 만족할 수 없습니다. 점점 더 정교해지고 전문화되는 정보 수집 및 처리 요구 사항은 큰 과제에 직면해 있습니다. 웹 크롤러는 탄생 이후 빠르게 발전해 왔으며 정보 기술 분야의 주요 연구 초점이 되었습니다. 현재 주류 웹 크롤러 검색 전략은 다음과 같습니다.

>>>>

깊이 우선 검색 전략

초기 크롤러 개발에서는 깊이 우선, 즉 HTML 파일에 기반한 더 많은 검색 전략을 사용했습니다. , 하이퍼링크 태그 중 하나를 선택하여 하이퍼링크가 가장 낮은 수준으로 탐색될 때까지 심층 검색을 수행합니다. 논리적 작업을 통해 이 수준에서 검색이 종료된 다음 이 루프를 종료하고 상위 루프로 돌아가서 검색을 시작합니다. 다른 하이퍼링크 태그는 초기 파일 내의 하이퍼링크가 탐색될 때까지입니다.

깊이 우선 검색 전략의 장점은 웹 사이트의 모든 정보를 검색할 수 있다는 것입니다. 이는 특히 깊게 중첩된 문서 세트에 적합하지만 단점은 데이터 구조가 점점 더 복잡해진다는 것입니다. 복잡하면 사이트의 수직 레벨이 무한정 증가하고 서로 다른 레벨 사이에 상호 참조가 나타나 무한 루프가 발생하므로 프로그램을 강제로 종료해야만 탐색을 종료할 수 있습니다. 중복 및 중복의 양.

>>>>

폭 우선 검색 전략

깊이 우선 검색 전략에 해당하는 것이 너비 우선 검색 전략입니다. 최상위 수준에서 최하위 계층까지 루프가 시작되고, 첫 번째 수준 페이지의 모든 하이퍼링크가 먼저 검색됩니다. 첫 번째 수준 페이지 탐색이 완료된 후 두 번째 수준 페이지의 검색 주기가 맨 아래 계층까지 시작됩니다. . 특정 레이어의 모든 하이퍼링크가 선택되면 해당 레이어의 정보 검색 과정에서 얻은(및 시드로 사용되는) 다음 수준 하이퍼링크를 기반으로 새로운 검색 라운드가 시작되고 얕은 하이퍼링크가 먼저 처리됩니다. 링크.

이 모드의 한 가지 장점은 검색 개체의 수직 구조 수준이 아무리 복잡하더라도 무한 루프를 크게 피할 수 있다는 것입니다. 두 개의 HTML 파일 사이의 최단 경로를 찾으십시오. 일반적으로 크롤러가 가질 것으로 기대하는 대부분의 기능은 현재 너비 우선 검색 전략을 사용하여 상대적으로 쉽게 구현할 수 있으므로 최적이라고 간주됩니다.

그러나 단점은 시간이 많이 소모되기 때문에 특정 사이트를 순회해야 하거나 HTML 파일이 깊게 중첩되어 있는 상황에서는 너비 우선 검색 전략이 적합하지 않다는 것입니다.

>>>>

집중 검색 전략

깊이 우선, 너비 우선과 달리 집중 검색 전략은 "일치"를 기준으로 데이터 소스를 검색합니다. 우선순위 원칙" 액세스는 특정 매칭 알고리즘을 기반으로 수요 주제와 관련된 데이터 문서를 적극적으로 선택하고 우선순위를 제한하여 후속 데이터 캡처를 안내합니다.

이러한 유형의 집중 크롤러는 방문한 페이지의 하이퍼링크에 대한 우선 순위 점수를 결정하고 점수에 따라 링크를 순환 대기열에 삽입합니다. 이 전략은 크롤러가 더 높은 수준의 잠재적인 일치 항목을 추적하는 데 도움이 될 수 있습니다. 목표 정보의 양과 질이 충분할 때까지 페이지를 표시합니다. 집중된 크롤러 검색 전략은 주로 우선 순위 점수 모델의 설계, 즉 링크의 가치를 구별하는 방법에 있다는 것을 쉽게 알 수 있습니다. 서로 다른 점수 모델은 동일한 링크에 대해 서로 다른 점수를 부여하며 이는 직접적으로 영향을 미칩니다. 정보 수집의 효율성과 품질.

동일한 메커니즘 하에서 하이퍼링크 태그에 대한 채점 모델은 자연스럽게 HTML 페이지 평가로 확장될 수 있습니다. 왜냐하면 각 웹 페이지는 수많은 하이퍼링크 태그로 구성되기 때문입니다. 값이 높을수록 해당 페이지의 값도 높아지며, 이는 검색 전문화 및 검색 엔진의 폭넓은 적용을 위한 이론적, 기술적 지원을 제공합니다. 현재 일반적인 집중 검색 전략에는 '통합 학습'과 '컨텍스트 매핑'을 기반으로 하는 두 가지 유형이 있습니다.

응용 관점에서 현재 국내 주류 검색 플랫폼은 주로 폭 우선 검색 전략을 채택하고 있으며, 주로 국내 네트워크 시스템의 정보 가치 밀도가 낮은 반면 수평 가치 밀도는 낮다는 점을 고려합니다. 높은. 그러나 이는 인용률이 낮은 일부 네트워크 문서를 분명히 생략하게 되며, 너비 우선 검색 전략의 수평적 가치 강화 효과로 인해 링크가 거의 없는 이러한 정보 소스는 제한 없이 무시됩니다.

이를 바탕으로 선형 검색 전략을 채택하면 이러한 상황이 완화되고, 업데이트된 데이터 정보를 기존 데이터 웨어하우스에 지속적으로 도입하고, 오히려 여러 차례의 가치 판단을 통해 데이터를 계속 저장할지 여부를 결정할 수 있습니다. "간단하고 거칠게" 생략하여 닫힌 루프에서 새로운 정보를 차단하는 것보다 좋습니다.

>>>>

동적 웹페이지 데이터

기존 웹 크롤러 기술은 주로 정적 페이지 정보를 캡처하는 데 제한되어 있으며 모드는 상대적으로 단일합니다. 최근에는 Web2.0/AJAX와 같은 기술이 주류가 되면서 강력한 대화형 기능으로 인해 동적 페이지가 네트워크 정보 전달의 주류가 되었으며 정적 페이지를 주류로 대체했습니다. AJAX는 JavaScript 기반 비동기(비동기) 요청 및 응답 메커니즘을 사용하여 전체 웹 페이지를 새로 고치지 않고 데이터를 지속적으로 업데이트합니다. 그러나 기존 크롤러 기술에는 JavaScript 의미 체계에 대한 인터페이스 및 상호 작용 기능이 부족하여 새로 고치지 않는 동적 페이지를 트리거하기가 어렵습니다. . 비동기 호출 메커니즘과 반환된 데이터 내용을 구문 분석하면 필요한 정보를 저장할 수 없습니다.

또한 JQuery와 같이 JavaScript를 캡슐화하는 다양한 프런트 엔드 프레임워크는 DOM 구조를 많이 조정합니다. 웹 페이지의 기본 동적 콘텐츠도 DOM에서 검색할 필요가 없습니다. 서버는 첫 번째 요청이 있을 때 이를 정적 태그 형태로 클라이언트에 보내는 대신 사용자의 작업에 지속적으로 응답하고 비동기 호출 메커니즘을 통해 이를 동적으로 그립니다. 한편으로 이 모드는 사용자 경험을 크게 최적화하는 동시에 서버의 상호 작용 부담을 크게 줄여줍니다. 그러나 DOM 구조(상대적으로 변하지 않은 정적)에 익숙한 크롤러 프로그램에는 큰 문제가 됩니다. 페이지).

전통적인 크롤러 프로그램은 주로 "프로토콜 중심"을 기반으로 하지만 인터넷 2.0 시대에는 AJAX 기반의 동적 상호 작용 기술 환경에서 크롤러 엔진이 "이벤트 중심"에 의존해야 합니다. 데이터 서버로부터의 꾸준한 데이터 스트림. 이벤트 중심이 되려면 크롤러 프로그램은 세 가지 기술적 문제를 해결해야 합니다. 첫째, JavaScript의 대화형 분석 및 해석, 둘째, DOM 이벤트의 처리 및 해석 배포, 셋째, 동적 DOM 콘텐츠 의미 추출입니다.

Qianxiu의 ForeSpider 데이터 수집 시스템은 다양한 동적 웹사이트를 완벽하게 지원하며 대부분의 웹사이트는 시각적 작업을 통해 얻을 수 있습니다. 엄격한 크롤러 방지 메커니즘을 갖춘 웹사이트의 경우 ForeSpider의 내부 스크립팅 언어 시스템과 간단한 스크립팅 언어를 통해 쉽게 얻을 수 있습니다.

>>>>

분산 데이터 수집

분산 크롤러 시스템은 컴퓨터 클러스터에서 실행되고 클러스터의 각 노드에서 실행되는 크롤러 시스템입니다. 크롤러 프로그램의 작동 원리는 중앙 집중식 크롤러 시스템과 동일하지만 분산형은 서로 다른 컴퓨터 간의 작업 분할, 리소스 할당 및 정보 통합을 조정해야 한다는 점입니다. 분산 크롤러 시스템의 컴퓨터 단말에 마스터 노드를 이식하고, 이를 통해 로컬 중앙집중형 크롤러를 호출하여 작동하는데, 이를 바탕으로 서로 다른 노드 간의 정보 상호작용이 매우 중요하므로 성공의 열쇠로 결정되었습니다. 분산 크롤러 시스템의 핵심은 작업 협업을 설계하고 구현할 수 있는지 여부에 있습니다.

또한 기본 하드웨어 통신 네트워크도 매우 중요합니다. 여러 노드를 사용하여 웹 페이지를 크롤링할 수 있고 동적 리소스 할당이 가능하므로 검색 효율성 측면에서 분산 크롤러 시스템은 중앙 집중식 크롤러 시스템보다 훨씬 높습니다.

지속적인 진화를 거쳐 다양한 분산 크롤러 시스템은 시스템 구성 측면에서 고유한 특성을 가지며 작동 메커니즘과 저장 구조가 지속적으로 업데이트되고 있습니다. 그러나 주류 분산 크롤러 시스템은 일반적으로 '마스터-슬레이브'를 사용합니다. 내부 구조는 마스터 노드가 작업 분할, 자원 할당, 정보 통합을 통해 다른 슬레이브 노드를 제어하여 정보를 캡처하는 것을 의미합니다.

작업 방식 측면에서는 클라우드 플랫폼의 저렴하고 효율적인 특성을 바탕으로 분산 크롤러 시스템은 클라우드 컴퓨팅을 널리 활용하여 비용을 절감하고 대규모 소프트웨어 및 하드웨어 플랫폼을 구축하는 데 필요한 비용 투자를 줄입니다. . 저장방식 측면에서는 현재 분산형 정보저장이 인기를 끌고 있다. 즉, 파일을 분산 네트워크 시스템에 저장해 여러 노드의 데이터를 관리하는 것이 더욱 편리하다. 일반적으로 사용되는 분산 파일 시스템은 Hadoop 기반의 HDFS 시스템입니다.

현재 시장에 나와 있는 대부분의 시각적 범용 크롤러는 단순한 시각적 조작 대신 성능을 희생합니다. 그러나 ForeSpider 크롤러는 그렇지 않습니다. ForeSpider는 C++로 프로그래밍되었으며, 일반 데스크톱 컴퓨터의 일일 수집량은 500만 항목/일을 초과하고, 서버의 일일 수집량은 4000만 항목/일을 초과합니다. 시중의 다른 시각적 크롤러보다 10배 이상 빠릅니다. 동시에 ForeSpider에는 Qianxiu가 독립적으로 개발한 ForeLib 데이터베이스가 내장되어 있으며 무료이며 1,000만 개 이상의 레벨의 데이터 저장을 지원합니다.

>>>>

범용 및 주제 기반 웹 크롤러

수집 대상의 종류에 따라 웹 크롤러는 '보편적 웹 크롤러'로 요약할 수 있습니다. 웹 크롤러"와 "주제 웹 크롤러". "주제 웹 크롤러"에는 두 가지 유형이 있습니다.

범용 웹 크롤러는 더 큰 데이터 규모와 더 넓은 데이터 범위를 수집하는 데 중점을 두고 웹 페이지 수집 순서와 대상 웹 페이지의 테마 일치를 고려하지 않습니다.

네트워크 정보 규모가 기하급수적으로 증가하는 현재 상황에서 범용 웹 크롤러의 사용은 정보 수집 속도, 정보 가치의 밀도, 정보 전문성 수준에 따라 제한됩니다.

이러한 상황을 완화하기 위해 주제별 웹 크롤러가 탄생했습니다. 일반적인 목적의 웹 크롤러와 달리 주제 기반 웹 크롤러는 수집 대상과 웹 페이지 정보 간의 일치 정도에 더 중점을 두고 관련 없는 중복 정보를 피합니다. 이 선별 과정은 동적이며 주제 기반 웹 크롤러의 전체 작업 흐름을 통해 실행됩니다. 기술.

현재 시중에 나와 있는 범용 크롤러의 수집 능력은 제한적이고 낮으며, 웹페이지 구조가 복잡한 페이지는 수집할 수 없습니다. ForeSpider 크롤러는 웹페이지를 거의 100% 수집할 수 있는 범용 웹 크롤러로, 내부적으로 시각적 필터링, 정규식, 스크립트 및 기타 필터를 지원하며 관련이 없고 중복되는 콘텐츠를 100% 필터링하고 조건에 따라 콘텐츠를 필터링할 수 있습니다. 한 가지 유형의 웹사이트만 수집할 수 있는 테마 기반 크롤러에 비해 범용 크롤러는 수집 범위가 더 강력하고 경제적이며 합리적입니다.