Содержание

  1. Выражения
  2. Символы и классы символов
  3. Границы
  4. Квантификаторы
    1. Типы квантификаторов
    2. Жадность квантификаторов
  5. Группы
  6. Lookahead/begind
  7. Специальные конструкции

Домашнее задание 9. Web Crawler

Web Crawler
  1. Напишите Web Crawler, обходящий HTML-страницы на заданную глубину и вытаскивающий из них картинки.
  2. Информация о HTML странице (класс Page:
    • String url – URL страницы (идентификатор);
    • String title – заголовок страницы (содержимое элемента title);
    • List<Page> links – ссылки (атрибут href элемента a), в порядке появления на странице;
    • List<Page> backLinks – ссылки, ведущие на страницу;
    • List<Image> images – Картинки на странице (элемент img), в порядке появления на странице.
  3. Информация о картинке (класс Image):
    • String url – URL картинки (идентификатор);
    • String file – имя файла, в котором сохранена картинка;
    • List<String> pages – страницы, на которых встречается картинка.
  4. Интерфес Web Crawler:
    public interface WebCrawler {
        Page crawl(String url, int depth);
    }
                
  5. При загрузке на глубину два, должны быть загружены и проанализированы переданная страница и страницы, на которые она ссылается.
  6. Для загрузки страниц и картинок можно использовать метод openStream класса URL.
  7. Вы можете считать, что все страницы имеют кодировку UTF-8.