Автор: Попов Михаил (LDG200@yandex.ru)
Описание: Данное консольное приложение представляет собой Crawler (без возможности индексирования), который бегает по url страницам и выкачивает от туда данные
Инструкция:
- Перед использованием архиватора надо перейти в тот каталог (который будем называть рабочим), где будут хранится выкаченные данные
- Для того, чтобы каждый раз не прописывать длинный путь до исполняемого .py файла, а писать просто
crawlerв консоли, надо добавить путь до каталога с этим проектом в PATH:C:<path>\WebCrawler- это тот путь, который надо добавить в PATH- В командной строке пишем
set path=%path%;C:<path>\WebCrawler- эта команда добавляет наш путь в PATH (Это команда работает на windows) (Можно ещё вручную добавить наш путь в PATH)
Команды:
crawler [--max_urls] [--max_depth] start_urls {default, image}
- positional arguments:
start_urls- URL, с которых будет происходить обходdefault- режим обхода, при котором Crawler просто проходит по url ссылкам и ничего больше не делаетimage- режим обхода, при котором Crawler выкачивает ссылки на картинки с url страниц
- optional arguments:
--max_urls- максимальное количество URL, которое может обойти Crawler (по умолчанию: 100)--max_depth- максимальная глубина обхода (по умолчанию: 5)
Если Crawler был предварительно завершён, то в следующий раз crawler предложит пользователю продолжить работу с прошлыми параметрами.
Подробности реализации:
В папке src находятся модули, отвечающие за логику приложения:
crawler.py- модуль, который имеет абстрактный класс WebCrawlerdefault_crawler.py- модуль, который содержит класс DefaultCrawlerimage_crawler.py- модуль, который содержит класс ImageCrawler
console.py - модуль, который позволяет взаимодействовать с консолью
На модули crawler.py, image_crawler.py и default_crawler.py написаны тесты, которые можно найти в папке tests. Покрытие по строкам составляет около 86 %:
| Name | Stmts | Miss | Cover |
|---|---|---|---|
| crawler.py | 277 | 33 | 88% |
| image_crawler.py | 43 | 10 | 77% |
| default_crawler.py | 6 | 1 | 83% |
| Total | 326 | 44 | 86% |