Skip to content

JohnyCeleron/WebCrawler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Собственный WebCrawler

Автор: Попов Михаил (LDG200@yandex.ru)

Описание: Данное консольное приложение представляет собой Crawler (без возможности индексирования), который бегает по url страницам и выкачивает от туда данные

Инструкция:

  1. Перед использованием архиватора надо перейти в тот каталог (который будем называть рабочим), где будут хранится выкаченные данные
  2. Для того, чтобы каждый раз не прописывать длинный путь до исполняемого .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 - модуль, который имеет абстрактный класс WebCrawler
  • default_crawler.py - модуль, который содержит класс DefaultCrawler
  • image_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%

About

This project is a training course in Python

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published