5. Використання анотацій при написанні пошукача

WebMagic підтримують використання унікального стилю для написання пошукача анотаціями, вводиться пакет розширенням webmagic-extension для використання цієї функції.

У режимі анотацій, використовуть простий базовий об'єкт та додають анотацію, щоб зменшити кількість коду та швидко завершити підготовку пошукового сканеру. Для простих сканерів, писати просто і легко зрозуміти, а також дуже легко управляти. Ось це одна з головних особливостей WebMagic, я назвав її - "Об'єкт/Екстракторний Мапінг" OEM (Object /Extraction Mapping).

Модель розробки заснована на анотаціях моделі полягає в наступному:

  1. Перш за все, необхідно визначити екстракцій дані і написати клас.
  2. Над початком класа поставити анотацію @TargetUrl, що визначає стартовій URL для завантаження і вилучення.
  3. Додайте анотацію @ExtractBy на поле класу, це поле визначає що саме буде екстрактовано (по селекторам чи регулярним виразам).
  4. Визначити куди зберігається результат.

Тут ми ще раз навели приклади GitHub із глави 4, для запису подібну функцію сканерів, щоб пояснити використання анотацій. Все, підготовку закінчено для такого хорошого пошукового сканеру, як цей, чи так не простіше?

@TargetUrl("https://github.com/\\w+/\\w+")
@HelpUrl("https://github.com/\\w+")
public class GithubRepo {

    @ExtractBy(value = "//h1[@class='entry-title public']/strong/a/text()", notNull = true)
    private String name;

    @ExtractByUrl("https://github\\.com/(\\w+)/.*")
    private String author;

    @ExtractBy("//div[@id='readme']/tidyText()")
    private String readme;

    public static void main(String[] args) {
        OOSpider.create(Site.me().setSleepTime(1000)
                , new ConsolePageModelPipeline(), GithubRepo.class)
                .addUrl("https://github.com/code4craft").thread(5).run();
    }
}

results matching ""

    No results matching ""