Найти в Дзене
IT специалист

Поиск устаревшей версии сайта.

Мы подключаемся к сайту,— 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 старой веб- страницы, хранящейся в архиве). И опять же это полноценная программа, которую вы можете запустить самостоятельно. Мы почти не проверяли данные на ошибки, чтобы пример оставался коротким. Номера строк не являются частью программы и включены только для того, чтобы вам было проще следовать описанию, представленному после кода.

  1. Импортируем (делаем доступным для этой программы) весь код из модуля стандартной библиотеки, который называется webbrowser.
  2. Импортируем весь код из модуля стандартной библиотеки, который называется json.
  3. Импортируем только функцию urlopen из модуля стандартной библиотеки urllib request.
  4. Пустая строка (мы не хотим перегрузить восприятие).
  5. Выводим на экран приветственный текст.
  6. Выводим на экран вопрос об URL, считываем пользовательский ввод и сохраняем это в переменной с именем site.
  7. Выводим на экран еще один вопрос и на этот раз считываем год, месяц и день, а затем сохраняем их в переменной с именем era.
  8. Создаем строковую переменную с именем url, чтобы сайт Wayback Machine искал копию требуемого сайта по дате.
  9. Соединяемся с сервером, расположенным по этому адресу, и запрашиваем определенный веб-сервис.
  10. Получаем ответ и присваиваем его переменной contents.
  11. Дешифруем содержимое переменной contents в текстовую строку формата JSON и приписываем ее переменной text.
  12. Преобразуем переменную text в data— структуру данных языка Python, предназначенную для работы с видео.
  13. Проверяем на ошибки: помещаем следующие четыре строки в блок try и, если находим ошибку, запускаем последнюю строку программы (она идет после ключевого слова except).
  14. Получив совпадение по сайту и дате, извлекаем нужное значение из трехуровневого словаря Python. Обратите внимание на то, что в этой и двух последующих строках используются отступы — тем самым Python легче понять, что данные строки находятся в блоке try.
  15. Выводим на экран полученный URL.
  16. Сообщаем о том, что случится, когда выполнится следующая строка.
  17. Отображаем полученный URL в браузере.
  18. Если во время выполнения предыдущих строк что-то пошло не так, Python перейдет сюда.
  19. Если программа дала сбой, выводим сообщение и имя сайта, который мы искали. Эта строка также имеет отступ, поскольку должна выполняться только в том случае, если выполняется строка except.

При запуске этой программы в окне терминала, введя URL сайта и дату, мы получим следующий результат:

-2

Ниже на рисунке показано то, что появится в браузере:

-3

Если Вы решили качественно изменить свой набор навыков и стать действительно компетентным в области IT. Подписывайтесь на этот канал, новые публикации будут выходить с такой периодичностью, чтобы Вам было легче запоминать полученную информацию. Изучайте, обязательно пробуйте все повторить самостоятельно, а потом, немного отдохните от информации.

Сегодня многие находятся в состоянии гонки за первое место и совсем не берегут своё здоровье, но в конечном счете, этот маленький нюанс (отдых) приводит к полному провалу. Не спешите, и Вы станете действительно лучшим специалистом в области IT. А мы Вам в этом поможем, абсолютно бесплатно.😉