Grabant
Go-язык, фреймворк для создания пауков, настраиваемые правила на JavaScript
Grabant — это фреймворк для разработки пауков на языке Go с использованием правил, написанных на JavaScript. Цель разработки — обеспечить совместимость с большинством существующих правил фреймворка Scrapy.
Некоторые пояснения и инструкции:
Пример: простое правило для сбора оценок фильмов на 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 /путь/к/файлу/с/правилами
Выполните следующие команды:
go get github.com/robertkrimen/otto
go get github.com/bitly/go-simplejson
go build
Эта версия является прототипом и содержит множество потенциальных проблем, которые могут привести к сбоям из-за недостаточной строгости проверок. В отличие от Scrapy, в текущей версии Grabant есть два основных отличия:
configs
должны быть написаны строчными буквами.fields
поддерживается только сопоставление с символьными регулярными выражениями.На данный момент эта версия не реализует несколько объектов и методы обратного вызова, а поддерживает только простейшие правила JSON.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )