1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-grabant

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Grabant

Go-язык, фреймворк для создания пауков, настраиваемые правила на JavaScript

Grabant — это фреймворк для разработки пауков на языке Go с использованием правил, написанных на JavaScript. Цель разработки — обеспечить совместимость с большинством существующих правил фреймворка Scrapy.

Описание

Некоторые пояснения и инструкции:

  • Сканируемая страница — это непосредственно сконфигурированная страница первого уровня, результаты сканирования которой представляют собой список страниц;
  • Список страниц — это страница второго уровня после сканирования, которая предназначена для извлечения содержимого страницы;
  • Страница содержимого — это настоящая страница, соответствующая необходимым правилам и выводящая содержимое;
  • При каждом сканировании страницы ссылки извлекаются и помещаются в очередь для сопоставления с правилами. Если правила для списка страниц пусты, все ссылки со страницы списка помещаются в очередь списка. Аналогично, данные со страницы содержимого извлекаются с помощью правил сопоставления XPath или регулярных выражений.

Пример: простое правило для сбора оценок фильмов на Douban:

var configs = {
    domains: ["movie.douban.com"],
    interval: 3000,
    scanurls: ["https://movie.douban.com/cinema/nowplaying/shenzhen/"],
    helperurlregexes: ["https://movie\\.douban\\.com/subject/\\d+/\\?from=playing_poster"],
    fields: [
        {
            name: "film Name",
            selector: "//*[@id=\"content\"]/h1/span[1]",
            required: true
        },
        {
            name: "Rank",
            selector: "//*[@id=\"interest_sectl\"]/div[1]/div[2]/strong"
            required: true
        }
    ]
};

// Создание объекта паука с использованием указанной конфигурации
var crawler = new Crawler(configs);
// Запуск паука
crawler.start();

В переменной configs содержатся поля JSON, которые имеют следующее значение:

  • domains: определяет домены, на которых будет выполняться сканирование.
  • interval: задержка в миллисекундах, необходимая для сканирования страницы.
  • scanUrls: URL-адреса входных страниц, с которых начинается сбор данных.
  • helperUrlRegexes: регулярные выражения для URL-адресов страниц содержимого.
  • fields: определение элемента данных, который будет извлечен со страницы содержимого, включая:
    • name: название элемента данных.
    • selector: правило сопоставления, которое может быть регулярным выражением или XPath.
    • selectortype: тип области сопоставления (по умолчанию XPath).
    • required: логическое значение, указывающее, что элемент данных должен присутствовать для выполнения сканирования.

Использование

Для использования Grabant выполните команду: grabant -rule /путь/к/файлу/с/правилами

Компиляция

Выполните следующие команды:

  1. go get github.com/robertkrimen/otto
  2. go get github.com/bitly/go-simplejson
  3. go build

Версия v0.01

Эта версия является прототипом и содержит множество потенциальных проблем, которые могут привести к сбоям из-за недостаточной строгости проверок. В отличие от Scrapy, в текущей версии Grabant есть два основных отличия:

  • Все поля в configs должны быть написаны строчными буквами.
  • В fields поддерживается только сопоставление с символьными регулярными выражениями.

На данный момент эта версия не реализует несколько объектов и методы обратного вызова, а поддерживает только простейшие правила JSON.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Grabant — это фреймворк для создания краулеров на языке Go с использованием правил, написанных на JavaScript. Разработка правил в Grabant похожа на создание правил для краулера Skynet. Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-grabant.git
git@api.gitlife.ru:oschina-mirror/mirrors-grabant.git
oschina-mirror
mirrors-grabant
mirrors-grabant
master