Что ж, давайте теперь совместим эти две части и наконец сделаем то, ради чего мы здесь собрались. А именно пройдём по всем таблицам и для каждой из них посчитаем минимум-максимум по каждому городу. Ну, для этого скомбинируем наши программы. Возьмём всю программу, которая анализирует список страниц и готовит множество адресов, скопируем её. [БЕЗ_ЗВУКА] Возьмём нашу новую функцию, которую мы только что написали и протестировали на одной из страниц, [БЕЗ_ЗВУКА] [БЕЗ_ЗВУКА] добавим в эту программу. И теперь, вместо того чтобы, проходя по каждой из страниц, печатать её адрес, найдём на этих страницах таблицу и попросим компьютер напечатать всю информацию, которую сможет из страницы вытянуть наша чудесная функция обработки таблиц. Для этого для каждой из страниц [БЕЗ_ЗВУКА] запросим себе её текст со включенной функцией BeautifulSoup, на каждой из страниц найдём таблицу. Каждую из таблиц попросим превратить в словарь списков. [БЕЗ_ЗВУКА] И мы знаем, что словарь списков состоит из названия города и списка зарплат, поэтому пройдём по свежеполученному словарю списков, а именно пройдём по каждому городу из ключей нашего словаря и, как и в прошлом примере, просто выведем название города и список зарплат. [БЕЗ_ЗВУКА] Посмотрим, что наша скомбинированная из двух частей программа благодаря возможности языка Python в создании функций работает. Чудесно! Огромное количество данных. Все они готовы к использованию, все они такие разные. Давайте найдём какой-нибудь порядок в выводе и для этого возьмём нашу программу и попросим не просто выводить полный перечень информации, но и попросим компьютер рассказать, какого года эта статистика. Для этого обратим внимание, что на наших страницах указан год, и если мы посмотрим, где этот год указан, исследовав элемент или посмотрев HTML-код (в разных браузерах — по-разному), мы увидим, что, во-первых, год указан внутри названия таблицы, внутри тега caption, а во-вторых, он указан внутри тега b — тега жирности. Зная это, попросим компьютер напечатать не просто огромный перечень данных, но и попросим его на каждой странице найти внутри таблицы тег b и вывести на экран, что... [БЕЗ_ЗВУКА] попросим вывести то, какой год мы анализируем. Наверное, можно даже двоеточие поставить. Мы дополнили нашу программу, теперь должен быть немного более понятен вывод. Посмотрим, каким он будет теперь. Ага. Чудесно! Теперь у нас есть не просто куча данных, но и информация о том, за какой год у нас есть наши данные. Ну, и давайте наконец сделаем финальный шаг: доработаем нашу программу и вместо простого вывода названия города выведем минимальную зарплату и максимальную. Для этого поменяем буквально последнюю строчку в нашем цикле, воспользовавшись функциями min и max, которые находят минимальный и максимальный элемент предоставленного им списка. Посмотрим, как будет выглядеть наш вывод теперь. [БЕЗ_ЗВУКА] Восхитительно! А теперь давайте повторим, чему мы научились на этой неделе. [ЗВУК]