Мы подключаемся к сайту,— Wayback machine из internet archive (http:/.../). сохраняющего миллиарды веб-страниц, в том числе фильмы, телешоу, музыкальные композиции, игры и иные цифровые артефакты за последние 20 лет).
Программа из примера попросит вас ввести URL и дату. Затем она спросит у Wayback Machine, имеется ли копия этого веб-сайта за указанную дату. Если копия есть, API вернет информацию о ней программе, которая, в свою очередь, выведет URL и отобразит его в веб-браузере. Суть заключается в.том, чтобы увидеть, как Python справляется с разнообразными задачами — принимает пользовательские данные, общается с веб-сайтами в Интернете и получает от
них данные, извлекает оттуда URL и убеждает веб-браузер отобразить этот URL.
Если бы мы получали обычную веб-страницу, заполненную текстом, отформа- тированным как HTML, нам пришлось бы сначала придумать, как отобразить ее, а потом выполнить много действий — все это можно радостно перепоручить. веб- браузеру. Мы также можем попробовать извлечь именно те данные, которые нам нужны (это называется «веб-скрапинг»). Любой из выбранных вариантов потребует выполнения большего количества работы и увеличит про- грамму. Вместо этого Wayback Machine возвращает данные в формате JSON. JSON, или JavaScript Object Notation,— это читабельный для человека текстовый формат, который описывает типы и значения, а также выстраивает данные в определенном порядке. Он немного похож на языки программирования и уже стал популярным способом обмена данными между разными языками программирования и системами.
Программы, написанные на языке Python, могут преобразовывать текст формата JSON в структуры данных, как если бы вы написали программу для их создания самостоятельно. Наша небольшая программа выбирает лишь один фрагмент данных (URL старой веб- страницы, хранящейся в архиве). И опять же это полноценная программа, которую вы можете запустить самостоятельно. Мы почти не проверяли данные на ошибки, чтобы пример оставался коротким. Номера строк не являются частью программы и включены только для того, чтобы вам было проще следовать описанию, представленному после кода.
- Импортируем (делаем доступным для этой программы) весь код из модуля стандартной библиотеки, который называется webbrowser.
- Импортируем весь код из модуля стандартной библиотеки, который называется json.
- Импортируем только функцию urlopen из модуля стандартной библиотеки urllib request.
- Пустая строка (мы не хотим перегрузить восприятие).
- Выводим на экран приветственный текст.
- Выводим на экран вопрос об URL, считываем пользовательский ввод и сохраняем это в переменной с именем site.
- Выводим на экран еще один вопрос и на этот раз считываем год, месяц и день, а затем сохраняем их в переменной с именем era.
- Создаем строковую переменную с именем url, чтобы сайт Wayback Machine искал копию требуемого сайта по дате.
- Соединяемся с сервером, расположенным по этому адресу, и запрашиваем определенный веб-сервис.
- Получаем ответ и присваиваем его переменной contents.
- Дешифруем содержимое переменной contents в текстовую строку формата JSON и приписываем ее переменной text.
- Преобразуем переменную text в data— структуру данных языка Python, предназначенную для работы с видео.
- Проверяем на ошибки: помещаем следующие четыре строки в блок try и, если находим ошибку, запускаем последнюю строку программы (она идет после ключевого слова except).
- Получив совпадение по сайту и дате, извлекаем нужное значение из трехуровневого словаря Python. Обратите внимание на то, что в этой и двух последующих строках используются отступы — тем самым Python легче понять, что данные строки находятся в блоке try.
- Выводим на экран полученный URL.
- Сообщаем о том, что случится, когда выполнится следующая строка.
- Отображаем полученный URL в браузере.
- Если во время выполнения предыдущих строк что-то пошло не так, Python перейдет сюда.
- Если программа дала сбой, выводим сообщение и имя сайта, который мы искали. Эта строка также имеет отступ, поскольку должна выполняться только в том случае, если выполняется строка except.
При запуске этой программы в окне терминала, введя URL сайта и дату, мы получим следующий результат:
Ниже на рисунке показано то, что появится в браузере:
Если Вы решили качественно изменить свой набор навыков и стать действительно компетентным в области IT. Подписывайтесь на этот канал, новые публикации будут выходить с такой периодичностью, чтобы Вам было легче запоминать полученную информацию. Изучайте, обязательно пробуйте все повторить самостоятельно, а потом, немного отдохните от информации.
Сегодня многие находятся в состоянии гонки за первое место и совсем не берегут своё здоровье, но в конечном счете, этот маленький нюанс (отдых) приводит к полному провалу. Не спешите, и Вы станете действительно лучшим специалистом в области IT. А мы Вам в этом поможем, абсолютно бесплатно.😉