
Фокусированный веб-сканер, который использует классификаторы страниц и приоритизацию ссылок для эффективного сбора веб-страниц, специфичных для предметной области или соответствующих шаблонам, с поддержкой индексации в Elasticsearch и сканирования через прокси TOR.
ACHE — это фокусированный веб-краулер. Он собирает веб-страницы, удовлетворяющие определённым критериям, например, страницы, принадлежащие заданному домену или содержащие указанный пользователем шаблон. ACHE отличается от универсальных краулеров тем, что использует классификаторы страниц для различения релевантных и нерелевантных страниц в заданной предметной области. Классификатор страниц может быть как простым регулярным выражением (например, соответствующим каждой странице, содержащей определённое слово), так и моделью классификации на основе машинного обучения. ACHE также может автоматически научиться расставлять приоритеты ссылок, чтобы эффективно находить релевантный контент, избегая загрузки нерелевантного.
ACHE поддерживает множество функций, таких как:
Начиная с версии 0.11.0, ACHE распространяется под лицензией Apache 2.0. Предыдущие версии распространялись под лицензией GNU GPL.
Дополнительная информация доступна в документации проекта.
Вы можете собрать ACHE из исходного кода, загрузить исполняемый двоичный файл с помощью conda или использовать Docker для создания образа и запуска ACHE в контейнере.
Необходимые компоненты: Вам понадобится установить свежую версию Java (JDK 8 или новее).
Чтобы собрать ACHE из исходного кода, выполните следующие команды в терминале:
git clone https://github.com/ViDA-NYU/ache.git
cd ache
./gradlew installDist
в результате будет создан пакет установки в каталоге ache/build/install/.
Затем вы можете сделать команду ache доступной в терминале, добавив бинарные файлы ACHE в переменную окружения PATH:
export ACHE_HOME="{путь-к-клонированному-репозиторию-ache}/ache/build/install/ache"
export PATH="$ACHE_HOME/bin:$PATH"
Необходимые компоненты: Вам понадобится установить свежую версию Docker. См. https://docs.docker.com/engine/installation/ для получения подробной информации об установке Docker для вашей платформы.
Мы публикуем предварительно собранные образы Docker на Docker Hub для каждой выпущенной версии. Вы можете запустить последний образ с помощью:
docker run -p 8080:8080 vidanyu/ache:latest
Альтернативно, вы можете собрать образ самостоятельно и запустить его:
git clone https://github.com/ViDA-NYU/ache.git
cd ache
docker build -t ache .
docker run -p 8080:8080 ache
Dockerfile предоставляет два тома данных, чтобы вы могли смонтировать каталог с вашими конфигурационными файлами (в /config) и сохранить данные краулера (в /data) после остановки контейнера.
Необходимые компоненты: В вашей системе должен быть установлен пакетный менеджер Conda.
Если вы используете Conda, вы можете установить ache из Anaconda Cloud, выполнив:
conda install -c vida-nyu ache
ПРИМЕЧАНИЕ: В Anaconda Cloud публикуются только помеченные версии (tagged), поэтому версия, доступная через Conda, может быть не самой актуальной. Если вы хотите попробовать самую свежую версию, пожалуйста, клонируйте репозиторий и соберите из исходного кода или используйте версию Docker.
Перед запуском обхода необходимо создать конфигурационный файл с именем ache.yml.
В репозитории, в каталоге config, предоставлены несколько примеров конфигураций, которые помогут вам начать.
Вам также понадобится файл конфигурации классификатора страниц с именем pageclassifier.yml.
Подробности о настройке классификатора страниц см. в документации по классификаторам страниц.
После настройки классификатора последнее, что вам понадобится — это файл начальных ссылок (seed file), т.е. простой текстовый файл, содержащий по одному URL на строку. Краулер будет использовать эти URL для начальной загрузки обхода.
Наконец, вы можете запустить краулер с помощью следующей команды:
ache startCrawl -o <путь-к-каталогу-вывода-данных> -c <путь-к-конфигурации> -s <файл-начальных-ссылок> -m <путь-к-модели>
где,
<путь-к-конфигурации> — это путь к каталогу конфигурации, содержащему ache.yml.<файл-начальных-ссылок> — это файл начальных ссылок, содержащий начальные URL.<путь-к-модели> — это путь к каталогу модели, содержащему файл pageclassifier.yml.<путь-к-каталогу-вывода-данных> — это путь к каталогу вывода данных.Пример запуска ACHE с использованием образца предварительно обученной модели классификатора страниц и образца файла начальных ссылок, доступных в репозитории:
ache startCrawl -o output -c config/sample_config -s config/sample.seeds -m config/sample_model
Краулер запустится и будет выводить логи в консоль. Нажмите Ctrl+C в любой момент, чтобы остановить его (это может занять некоторое время).
Для длительных обходов следует запускать ACHE в фоновом режиме, используя такие инструменты, как nohup.
ACHE может выводить данные в нескольких форматах. В настоящее время доступны следующие форматы данных:
Подробнее о настройке форматов данных см. на странице документации по форматам данных.
Мы приветствуем обратную связь от пользователей. Пожалуйста, отправляйте любые предложения, вопросы или сообщения об ошибках через Github issue tracker.
У нас также есть чат-комната на Gitter.
Мы приветствуем вклад в код. Мы используем стиль кода, основанный на Google Style Guide, но с отступами в 4 пробела. Файл конфигурации форматирования Eclipse доступен в репозитории.