1.2 Загальна архітектура

Чотири компонента пошукача WebMagic структуровані в Downloader,PageProcessor, Scheduler,Pipeline контактують поміж собою. Ці компоненти відповідають чотирьом здатність життєвого циклу пошукача: завантаження, обробки, управління і здатність зберігання. Архітектура WebMagic подібна до Scapy, але реалізована на Java.

Пошукач має кілька компонентів, але організованих таким чином, щоб вони могли взаємодіяти один з одним, процес реалізації можна розглядатити пошукач, як великий контейнер з логіка у ядрі ​​WebMagic.

Загальна архітектура WebMagic виглядає наступним чином:

image

1.2.1 чотири компонента WebMagic

1.Downloader завантажувач

Downloader відповідає за завантаження з Інтернет-сторінки, для подальшої обробки. У WebMagic за замовчуванням інструмент завантаження - Apache HttpClient.

2.PageProcessor аналіз сторінки

PageProcessor відповідає за аналіз сторінки, витягувати корисну інформацію, а також відкриття нових посилань. WebMagic використовувати Jsoup в якості синтаксичного аналізу інструментів HTML, на основі його розробки аналітичного інструменту XPath Xsoup.

З цих чотирьох компонентів, тільки PageProcessor не той самий для кожної сторінки для кожного сайту, цю частину користувач повинен налаштувати.

3.Scheduler планувальник

Менеджер планувальника Scheduler буде давати завдання сканувати URL по черзі. WebMagic за замовчуванням від JDK використовує менеджер черги URL-ів у пам'яті memory queue management, та може встановлювати пріоритети. Також підтримує використання розподіленого управління через Redis.

Якщо проект має деякі особливі потреби, що не бóли реалізовіні, тоді зможете налаштувати свій власний планувальник Scheduler.

4.Pipeline конвеєрне збереження даних

Конвеєрна обробка даних Pipeline відповідає за прийняття результатів, включаючи перерахунки, зберігання в файли, у бази даних і так далі. WebMagic надається за замовчуванням "на консоль" і другий спосіб у програмі "Зберегти в файл" результат.

Pipeline визначає спосіб збереження результатів, якщо ви хочете зберегти у визначеній базі даних, тоді потрібно написати відповідну обробку даних. Як правило потрібно тільки написати Pipeline.

1.2.2 для об'єктів передачі даних

1. Запит Request

Request - це пакетний рівень з URL-адресою, Request запит відповідний до URL-адреси.

Він є носієм для взаэмодії PageProcessor та Downloader. Для Downloader це єдиний спосіб впливати на PageProcessor.

На додаток до самого URL, він містить поля зі структурою ключ-значення extra. Ви можете зберегти деякі додаткові спеціальні extra атрибути, а потім прочитати в інших місцях для виконання різних функцій. Наприклад, деяка додаткова інформація на одній сторінці, що використана при роботі в іншій, і так далі.

2. Сторінка Page

Page представленя сторінки Downloader для її завантаження - зміст може бути HTML, чи він може бути JSON або в інших текстових форматах.

Процес екстракції сторінки Page прописаний у ядрі WebMagic, який забезпечує способи видобутку та зберегання результатів, і так далі. Наразі у розділі 4 ми будемо детально її використовувати.

3. Результуюча одиниця ResultItems

ResultItems еквівалентно до колекції - мапи Map у Java, яка проводить обробку результатів PageProcessor для подальшого використання у конвеерному збереженню результатів Pipeline. API у нього та у мапи Map дуже схожі, окрім поля skip яке при встановлені true означає, що не повинен бути оброблений Pipeline конвеєром збереження результатів.

1.2.3 Керування запуском движка пошукача --Spider

Spider is the core WebMagic internal processes. A property Downloader, PageProcessor, Scheduler, Pipeline is the Spider, these properties can be freely set by setting this property can perform different functions. Spider WebMagic also operate the entrance, which encapsulates the creation of crawlers, start, stop, multi-threading capabilities. Here is a set of each component, and set an example of multi-threading and startup. See detailed Spider setting Chapter 4 - crawler configuration, start and stop.

Павук Spider є внутрішнім процесом ядра WebMagic. Павук Spider має властивісті Downloader, PageProcessor, Pipeline, що можуть бути встановлені setter -ами у різні функції. Павук Spider WebMagic - це товка вхіду, яка інкапсулює створення пошукових роботів, запуск, зупинку, можливості роботи у багатопоточному режимы. Ось набір кожного компонента, і наведений приклад запуску у багатопоточності. Детальніше про налаштування павука у частині 4 - Конфігурація пошукача, запуск і зупинка.

public static void main(String[] args) {
    Spider.create(new GithubRepoPageProcessor())
            // From https://github.com/code4craft began to grasp    
            .addUrl("https://github.com/code4craft")
            // Set the Scheduler, use Redis to manage URL queue
            .setScheduler(new RedisScheduler("localhost"))
            // Set Pipeline, will result in json way to save a file
            .addPipeline(new JsonFilePipeline("D:\\data\\webmagic"))
            //Open 5 simultaneous execution threads
            .thread(5)
            //Start crawler
            .run();
}

1.2.4 Швидкий старт

Склалося враження, що приведена велика кількість компонентів, але насправді не турбуйтесь - бо старту їх потрібно не так багато конфігурувати, тому що велика частина модулів WebMagic вже забезпечує реалізацію за замовчуванням.

Загалом, для отримання пошукача необхідності написати класс з імплементацію PageProcessor, де create-том створюється Spider із початковими даними для сканеру. У розділі 4 ми розповімо як писати налаштовання шукача PageProcessor і Spider щоб розпочати - Імплементація PageProcessor.

results matching ""

    No results matching ""