Проект Загрузчик страниц

Уровень: 3

Профессия Python-программист

Научитесь основам работы с HTTP с применением библиотеки requests. Узнаете как работать с HTML DOM средствами библиотеки BeautifulSoup и как производить над документами манипуляции. Попрактикуетесь во взаимодействии с диском — создании файлов и директорий, работе с файловыми путями. А в конце у вас получится удобный и полезный инструмент, применимый в повседневной жизни!

5
шагов
2-4
недели

Проект - важная часть обучения. Тут закрепляются навыки, полученные в курсах и приобретаются новые. Начните профессию, двигайтесь по шагам и приступайте к проекту, когда будете готовы

Цель

Основная задача этого проекта — закрепить знания о работе с файлами и HTTP, попрактиковаться в обработке ошибок.

Затрагиваемые темы:

  • Активный файловый ввод/вывод.
  • Работа с ошибками и исключениями.
  • Знакомство с модулями os и sys.
  • Работа с DOM и библиотекой BeautifulSoup. Базовые манипуляции над документами.
  • Работа с HTTP и библиотекой requests.

Описание

В рамках данного проекта необходимо реализовать утилиту для скачивания указанного адреса из сети. Принцип ее работы очень похож на то, что делает браузер при сохранении страниц сайтов.

Возможности утилиты:

  • Можно указать папку, в которую нужно положить готовый файл.
  • Утилита скачивает все ресурсы указанные на странице и меняет страницу так, что начинает ссылаться на локальные версии.

Пример использования:

$ page-loader --output=/var/tmp https://hexlet.io/courses

✔ https://ru.hexlet.io/lessons.rss
✔ https://ru.hexlet.io/assets/application.css
✔ https://ru.hexlet.io/assets/favicon.ico
✔ https://ru.hexlet.io/assets/favicon-196x196.png
✔ https://ru.hexlet.io/assets/favicon-96x96.png
✔ https://ru.hexlet.io/assets/favicon-32x32.png
✔ https://ru.hexlet.io/assets/favicon-16x16.png
✔ https://ru.hexlet.io/assets/favicon-128.png

Page was downloaded as 'ru-hexlet-io-courses.html'

Вопросы и ответы

Я — новичок. Справлюсь ли я с проектами?

Все зависит от вас! Проекты начинаются с базового уровня, и для старта вам не требуется большого опыта или знаний. Главное — задавать вопросы менторам и решать проблемы сразу. К тому же, вы можете остановиться в любой момент и продолжить с того же уровня в любое время в будущем.

Какое расписание у проекта?

У проектов нет расписаний, все проекты доступны 24 часа в сутки, и вы можете заниматься в удобное для вас время.

Как оплачивается проект?

Один проект стоит $97, и оплата снимается только если вы отправите на проверку первое задание в проекте. Если вы начнете проект, но не выполните первое задание, то деньги списываться не будут. Для участия в проекте нужно иметь активную месячную или годовую подписку, и деньги за проект будут списываться с вашей привязанной карты.

Зачем нужны проекты?

Проект помогает реализовать на практике то, что вы узнали на курсах. Важный момент: написанный вами код навсегда остается в вашем репозитории на GitHub. Фактически это ваша первая работа в портфолио.

Что делает ментор в проектах?

Ментор полностью поддерживает вас и делает все, чтобы вы успешно сдали все проекты. Менторы будут отвечать на все ваши вопросы, помогать решать проблемы, проверять задания и направлять к правильным решениям. Все шаги в проектах проходятся самостоятельно. Последний шаг - проверка ментором, и совместная работа над ошибками.

У меня есть другой вопрос

Пишите нам на [email protected], вам ответит живой человек из команды Хекслета. Или нажмите на иконку со знаком вопроса в правом нижнем углу экрана. Там есть ответы и на другие вопросы и удобная форма для отправки сообщения нам.