Ниже приведён список из 27 интересных фактов о Linux, его создателе Линусе Торвальдсе и о том, какое влияние оказала его «хобби»-операционная система на мир, в котором мы живём.
С момента своего создания в 1991 году операционная система с открытым исходным кодом, похожая на Unix, произвела революцию в мире, дала толчок стартапам, породила новые отрасли и позволила создавать новые типы гаджетов, устройств и шлюзов.
Linux является доминирующей операционной системой в облаке, в сфере Интернета вещей и на мобильных устройствах. И хотя она, возможно, и не «выиграла» войну за настольные компьютеры (пока), нельзя отрицать, что её совместный, свободно распространяемый характер оказал значительное влияние на многих её конкурентов.
Бьющееся сердце современного мира и вездесущая сила, пронизывающая повседневную цифровую жизнь: Linux повсюду. Он используется в высокоскоростных поездах и мощных суперкомпьютерах, а также в смартфонах, космических роботах и сверхзащищённых маршрутизаторах.
Итак, вот список из 27 фактов о Linux, искусно составленный из источников сообщества, интервью с его создателем и общедоступных данных.
1. В ядре Linux более 40 миллионов строк кода по состоянию на 2025 год. Это может показаться многовато, но на самом деле это самое маленькое ядро за последнее время! Тем не менее, несмотря на недавние сокращения, огромное количество строк означает, что Linux остается единственным крупнейшим проектом с открытым исходным кодом на планете.
2. Linux едва не назвали не Linux! Линус хотел назвать свой «хобби-проект» «FreaX» (сочетание слов «free», «freak» и «Unix»). К счастью, его переубедил владелец сервера, на котором размещался его ранний код, который предпочёл название «Linux» (сочетание слов «Linus» и «Unix»).
3. Несмотря на то, что он написал 100% кода для первой версии Linux, менее 1% кода последней версии ядра написан Линусом Торвальдсом. Однако парень не сидит сложа руки: сейчас Линус занят управлением и объединением кода, написанного другими разработчиками.
4. Linux используется во всех крупных космических программах в мире, включая НАСА и ЕКА. Его также используют частные космические компании, такие как SpaceX, которая завершила 65 космических миссий (и продолжает их) с помощью отказоустойчивой системы Linux в своих мощных ракетах Falcon 9.
5. Говоря о более широкой вселенной, в настоящие астероиды, названные в честь Linux и Линуса Торвальдса — будь то космический гик или технический, похоже, нам, гикам, нравится держаться вместе!
6. Такс, талисман Linux, — это пингвин, но вы когда-нибудь задумывались, почему это пингвин? Ответ зависит от того, кого вы спросите: Линус рассказывает историю о том, как его укусил злой пингвин, заразивший его (выдуманной) болезнью под названием «пингвинит». Другие говорят, что выбор пал на пингвина из-за любви Линуса к этому животному и/или из-за его непригодности в качестве корпоративного логотипа.
7. Linux полностью доминирует на суперкомпьютерах. По состоянию на 2018 год 100% из 500 самых быстрых суперкомпьютеров в мире работают на Linux. Впечатляет!
8. Сообщество разработчиков Linux невероятно активно. Изменения в ядре вносились со средней скоростью 7,8 исправлений в час за последние 15 месяцев, согласно цифрам, собранным людьми из некоммерческой организации The Linux Foundation (которые платят зарплату Линусу).
9. Ранняя разработка Linux велась на основе операционной системы MINIX, что побудило Линуса использовать для своего молодого проекта файловую систему, аналогичную Minix. Она просуществовала недолго: показав свою неэффективность, Линус позже заменил ее на «расширенную файловую систему», более известную как ext, версии которой используются и по сей день.
10. Linux 1.0 был выпущен 14 марта 1994 года , более чем через три года после первоначального заявления Линуса. Он содержал 176 250 строк кода. Версия 2.0 вышла в 1996 году.
11. Linux работает на от смартфонах и серверах до подводных лодок и космических ракет. В нашем списке из 25 устройств, работающих на Linux, представлены наиболее впечатляющие примеры использования универсального ядра.
12. Стив Джобс предложил Линусу Торвальдсу работу в 2000 году при условии, что он прекратит разработку Linux. Линус (к счастью) отказался.
13. Нужны доказательства того, насколько успешен Linux? Взгляните на его давнего главного конкурента, Microsoft. Компания, которая, как известно, пыталась «уничтожить» проект в конце 90-х — начале 2000-х годов, теперь использует Linux в своём серверном бизнесе. Она даже вносит свой вклад в разработку ядра!
14. Если говорить о вкладе, то Google, Intel, Huawei, Samsung, Red Hat, Canonical и Facebook входят в число ведущих разработчиков ядра Linux в последние годы.
15. Линус родился в Финляндии, двуязычной стране, и считает шведский своим «родным языком». Он говорит, что ему часто «неудобно» говорить по-английски из-за различий в произношении, но он предпочитает читать книги на английском.
16. Сейчас это, возможно, самый крупный проект свободного программного обеспечения (см. № 1), но когда в 1991 году было выпущено первое ядро, оно состояло из сравнительно небольшого количества строк кода — всего 10 тысяч!
17. После пересмотра графика разработки и выпуска новая версия ядра Linux теперь выходит примерно раз в 66 дней, а в промежутках регулярно появляются новые точечные выпуски.
18. Linux — не единственное знаменитое творение Линуса Торвальдса . Знаменитый финн также является автором системы контроля версий Git и приложения для подводного плавания «Subsurface».
19. Те захватывающие дух спецэффекты, которые вы видите в фильмах-блокбастерах? Что ж, они (отчасти) созданы благодаря Linux. По оценкам, 90% голливудских визуальных эффектов создаются с помощью Linux на каком-то этапе производственного процесса.
20. Согласно данным, полученным с сайта openhub.net, более 95% Linux написано на языке C.
21. Как бы странно это ни звучало, 13,3% новейшего ядра Linux состоит из… пустых строк. Бессмысленно? Едва ли: пустые строки являются частью строгого стиля кодирования, который делает ядро аккуратным, эффективным и упорядоченным.
22. Android — самая успешная операционная система на планете — без вариантов — с более чем 2 миллиардами активных пользователей в месяц по всему миру, по данным Google. А на чём работает Android? Конечно же, на ядре Linux!
23. Каждому выпуску ядра присваивается кодовое название. Среди недавних кодовых названий — «Бесстрашный койот» (v4.13) и «Застенчивый крокодил» (v5.0).
24. По данным Red Hat, 9 из 10 крупнейших публичных облаков работают на Linux. Они, вероятно, знают, о чём говорят, ведь это одна из самых успешных компаний в истории Linux!
25. Ubuntu — самая популярная в мире настольная операционная система на базе Linux. По оценкам, у неё 20 миллионов пользователей по всему миру. Доля Linux на рынке оценивается в 2–3% от общего числа настольных компьютеров.
26. первой книгой, опубликованной о Linux , была "Установка Linux и начало работы" Мэтта Уэлша в 1993 году. Первый специализированный журнал, Linux Journal, был опубликован годом позже, в марте 1994 года. В первом номере было опубликовано интервью с Лайнусом.
27. Linux — самый известный пример программного обеспечения с открытым исходным кодом, но знаете ли вы, что так было не всегда? Ранние версии Linux распространялись с лицензией, запрещающей коммерческое использование или распространение. В 1992 году была выпущена версия 0.12, в которой Линус принял GPL, сделав свой код доступным для всех.
Источник: www.omgubuntu.co.uk
Было время, когда С++ не хватало динамизма, и увлечься этим языком было трудно. Но всё изменилось, когда было принято решение развить стандарт C++. С 2011 года язык стал более динамичным и постоянно развивается. В статье мы рассмотрим некоторые интересные функциональные возможности языка.
Когда в 11 версии C++ только появилось auto
, жизнь стала намного легче.
Идея auto
состояла в том, чтобы заставить компилятор C++ определять тип ваших данных во время компиляции, вместо того чтобы заставлять вас каждый раз объявлять тип. Это было удобно, если у вас были типы данных вроде map<string, vector <pair <int, int>>>
?
auto an_int = 26; // при компиляции тип выводится в int
auto a_bool = false; // в bool
auto a_float = 26.04f; // в float
auto ptr = &a_float; // и даже в указатель
auto data; // а можно ли так? Вообще-то нельзя.
Посмотрите на строку номер 5. Вы не можете объявить что-либо без инициализатора. Строка 5 не сообщает компилятору, каким может быть тип данных.
Изначально auto было несколько ограничено. Затем, в более поздних версиях языка, у него появилось больше возможностей.
В строках 7 и 8 была использована инициализация в скобках. Эта функция также была добавлена в 11 версии C++.
Не забывайте, что в случае использования auto у компилятора должен быть способ определить ваш тип.
Теперь встаёт хороший вопрос, что произойдёт, если мы напишем auto a = {1, 2, 3}? Это ошибка компиляции? Это вектор?
На самом деле, в 11 версии C++ был представлен std::initializer_list<type>. Инициализированный список в скобках будет считаться легковесным контейнером, если объявлен как auto.
И как упоминалось ранее, определять типы объектов компилятором полезно, когда у вас есть сложные структуры данных:
Не забудьте проверить строку 25! Выражение auto [v1, v2] = itr.second
— новая функция в 17 версии C++. Это называется структурным связыванием. В предыдущих версиях приходилось извлекать каждую переменную отдельно. Но структурное связывание сделало этот процесс более удобным.
Более того, если вы хотите получить данные, используя ссылку, то просто добавьте символ — auto &[v1, v2] = itr.second
.
В 11 версии C++ появились лямбда-выражения. Это что-то вроде анонимных функций в JavaScript. Они являются безымянными функциональными объектами и захватывают переменные в различных областях на основе некоторого краткого синтаксиса. Они также могут быть присвоены переменным.
Лямбды будут полезны, если вам нужно сделать в коде быстрое и небольшое изменение, и вы не хотите писать для этого отдельную функцию. Другое довольно распространённое использование функции — сравнение.
std::vector<std::pair::<int, int>> data = {{1, 3}, {7, 6}, {12, 4}}; // обратите внимание на скобочную инициализацию
std::sort(begin(data), end(data), [ ](auto a, auto b) { // auto!
return a.second < b.second;
});
Приведённый выше пример может многое сказать.
Во-первых, обратите внимание, как фигурные скобки упрощают вам жизнь. Затем следуют универсальные begin()
, end()
, которые тоже были добавлены в 11 версии. После идёт лямбда-выражение в качестве компаратора ваших данных. Параметры лямбда-выражения объявлены с помощью auto
, что было добавлено в 14 версии С++. До этого auto
нельзя было использовать в качестве параметров функции.
Обратите внимание, мы начинаем лямбда-выражение с квадратных скобок [ ]
. Они определяют область действия лямбды — сколько у неё полномочий над локальными переменными и объектами.
Как определено в этом потрясающем репозитории по современному C++:
[ ]
— ничего не захватывает. Таким образом, вы не можете использовать любую локальную переменную внешней области видимости в лямбда-выражении. Вы можете использовать только параметры.[=]
— захватывает локальные объекты (локальные переменные, параметры) в области видимости по значению. Вы можете использовать, но не изменять их.[&]
— захватывает локальные объекты (локальные переменные, параметры) в области видимости по ссылке. Вы можете изменить их, как в примере, приведённом ниже.[this]
— захватывает этот указатель по значению.[a, &b]
— захватывает объект a
по значению, объект b
по ссылке.Так что, если внутри лямбда-функции вы хотите преобразовать данные в какой-то другой формат, вы можете применить её, воспользовавшись преимуществами области видимости. Например:
В приведённом выше примере, если вы захватили локальные переменные по значению ([factor]
) в лямбда-выражении, то вы не можете изменить factor
в 5 строке. Вы просто не имеете права делать это. Не злоупотребляйте своими правами!
Наконец, обратите внимание, что мы берём переменную val
в качестве ссылки. Это гарантирует, что любое изменение внутри лямбда-функции фактически изменяет vector
.
Вам точно понравится эта возможность в С++ 17.
if
или switch
. Это поможет сделать код лаконичным и чистым. Общая форма:Скажем, у вас есть какое-то выражение для оценки, и его значение не изменится после инициализации. Вы можете предварительно рассчитать значение, а затем использовать его в качестве макроса. Или, как предложил C++ 11, можно использовать constexpr
.
Программисты стремятся максимально сократить время выполнения программ. Поэтому если некоторые операции можно отдать на выполнение компилятору, это стоит сделать.
Приведённый выше код — распространённый пример использования constexpr
.
Поскольку мы объявили функцию вычисления Фибоначчи как constexpr
, компилятор может предварительно вычислить fib(20)
во время компиляции. Так что после неё он может заменить строку с
const long long bigval = fib (20);
на
const long long bigval = 2432902008176640000;
Обратите внимание, что переданный аргумент является константным значением. Важный момент: в функциях, объявленных constexpr
, передаваемые аргументы также должны быть constexpr
или const
. В противном случае они будут вести себя как обычные функции, и во время компиляции предварительный расчёт выполняться не будет.
Переменные также могут быть constexpr
. В этом случае, как вы можете догадаться, эти переменные должны вычисляться во время компиляции. Иначе вы получите ошибку компиляции.
Интересно, что позже в C++ 17 были представлены constexpr-if
и constexpr-lambda
.
Как и пара, кортеж представляет собой набор значений фиксированного размера для различных типов данных.
auto user_info = std::make_tuple("M", "Chowdhury", 25); // используем auto, чтобы уменьшить описание типов
// чтобы получить доступ к данным
std::get<0>(user_info);
std::get<1>(user_info);
std::get<2>(user_info);
// в 11 версии С++ мы использовали tie, чтобы сделать связывание
std::string first_name, last_name, age;
std::tie(first_name, last_name, age) = user_info;
// но в 17 версии стало гораздо удобнее
auto [first_name, last_name, age] = user_info;
Иногда удобнее использовать std::array
вместо кортежа. Такой массив подобен обычному массиву в C вместе с несколькими функциями стандартной библиотеки C++. Эта структура данных была добавлена в 11 версии C++.
Очень подробное название для функции. Идея состоит в том, что с 17 версии типы шаблонных параметров будут выводиться и для стандартных шаблонных классов. Ранее это поддерживалось только для функций.
std::pair<std::string, int> user = {"M", 25}; // раньше
std::pair user = {"M", 25}; // C++ 17
В этом примере для первого элемента кортежа будет выведен тип const char *
, а не std::string
.
Выводимый тип задаётся неявно. Это становится ещё удобнее для кортежей.
// раньше
std::tuple<std::string, std::string, int> user ("M", "Chy", 25);
// C++ 17
std::tuple user2("M", "Chy", 25);
Эта функция не имеет никакого смысла, если вы слабо знакомы с шаблонами в C++.
Указатели могут быть адскими.
Из-за свободы, которую предоставляют такие языки, как C++, иногда становится очень легко выстрелить себе в ногу. И во многих случаях именно указатели ответственны за вред, нанесённый компьютеру.
К счастью, в C++11 появились умные указатели, которые намного удобнее, чем простые. Они помогают программистам предотвращать утечки памяти, освобождая её, когда это возможно. Они также обеспечивают исключительную безопасность.
Источник: tproger.ru
Кастомизация — это не только способ сделать свою систему более красивой, но и способ сделать её более функциональной. Ты сможешь настроить всё на свой вкус, удалив лишнее и добавив необходимое. Твой компьютер — это твой стиль, так что давай откроем перед тобой этот мир!
Многие при переходе с Windows на Linux теряются в разнообразии и множестве окружений рабочего стола. Некоторым было бы комфортнее осваивать Linux в привычном для себя интерфейсе. Но не секрет, что вид любого дистрибутива Linux можно изменить до неузнаваемости и настроить под свои нужды.
В этой статье, на примере Linux Mint, мы преобразим стандартную cinnamon к привычному интерфейсу пользователей Windows, а именно сделаем её похожей на Windows 11.
Итак, что мы имеем в самом начале:
Первое, что мы делаем — это доустанавливаем для себя апплеты на панель задач. Для этого нажимаем правой кнопкой мышки по панели задач и выбираем пункт «апплеты».
В появившемся окошке выбираем вкладку «Загрузка», в поиске пишем «погода» и загружаем одноименный апплет. Там же можно добавить и другие полезные апплеты, выбор большой. Затем выбираем вкладку «Настройка», находим загруженный апплет, выделяем его и в низу нажимаем на «+» (добавить). Теперь апплет погоды добавлен на панель, позже мы переместим его на нужное нам место.
Теперь займемся панелью. Щёлкаем правой кнопкой мышки по панели задач и выбираем пункт «Настройки панели».
Значение высоты панели выставляем на 43px. Затем в области «Внешний вид панели» на вкладке «Правая зона» выставляем значения полей «Размер цветной иконки» и «Размер символической иконки (пиксел)» на 16px.
Закрываем окно настройки панели и снова кликаем правой кнопкой мышки по панели задач и ползунком включаем «Режим редактирования панели», что дает нам возможность убрать ненужные нам апплеты, а также перемещать их по своему усмотрению.
Для начала в правой области панели задач по правому клику мышки мы удаляем ненужные нам апплеты (я, например удалил у себя апплет «избранное» и «принтеры», остальные оставил).
Разместим элементы панели задач, так, как они располагались бы в Windows 11. Для этого мышкой перемещаем апплеты «Меню» и «Сгруппированный список окон» в центр панели задач. Слева на панели задач левой кнопкой мышки удаляем оставшиеся апплеты (например, оставшиеся разделители), а апплет «Погода» из правой части панели перетаскиваем в левую.
В правой стороне панели необходимо удалить апплет «Угловая панель», а значок «Уведомления» переместить в самый конец панели задач.
Должно получиться нечто подобное:
Теперь настроим отображаемое время на панели задач, для этого выходим из режима редактирования панели (правой кнопкой мышки по панели задач и отключаем бегунком этот режим) и правой кнопкой кликаем по часам, в открывшемся меню выбираем «настройки».
Включаем бегунок «Задать свой формат даты» и в поле «Формат даты» прописываем следуюущие значения: %H:%M:%S%n %H %B %Y
Чтобы отцентровать отображаемое время можно перед первым символом «%» поставить три-четыре пробела.
В поле «Формат даты для всплывающей подсказки прописываем: %A, %B %e, %H:%M
Далее настроим отображение и переключение языка раскладки клавиатуры. Кликаем левой кнопкой мышки на флаг языка и в меню выбираем «Настройки клавиатуры».
В появившемся окне настроек выбираем вкладку «Раскладки» и внизу нажимаем кнопку «Параметры...», там находим пункт «Переключение на другую раскладку» и в открывшемся списке выбираем комбинацию «ALT+SHIFT»
В Linux Mint наблюдается баг при отображении раскладки клавиатуры в виде флага, когда значение размера значков установлено на 16px: при наведении курсора мышки на флаг он уверичивается в размере и в исходное состояние не возвращается, а так и остаётся увеличенным. Поэтому вместо отображения флага мы сделаем буквенное отображение состояния раскладки клавиатуры, для этого в области «Параметры экрана» выставляем чекбоксы в положение как показанно на скриншоте:
(Отключаем чекбокс «Использовать флаг страны...» и включаем два последующих)
Далее настроим отображение значков на рабочем столе. Правой кнопкой кликаем по рабочему столу и выбираем пункт «Настроить». В появившемся окне отключаем бегунок «Авторасположение» и внизу нажимаем «Настройки рабочего стола», где выбираем какие значки мы хотим видеть у себя на рабочем столе.
Пришло время для настройки необходимых тем, для того чтобы интерфейс нашего Cinnamon превратился в Windows 11.
Сначала необходимо подготовить необходимые папки в домашнем каталоге. Запускаем приложение «Файлы» и переходим в домашний каталог. Нажимаем комбинацию клавиш Ctrl+H для того чтобы увидеть скрытые папки и файлы. Проверяем имеются ли папки .icons и .themes (должны начинаться с точки), если таких папок нет, то создаем их. В папку .icons мы поместим тему иконок, а в папку .themes тему рабочего стола и отображения окон.
- Скачиваем тему иконок с сайта https://www.pling.com/p/1546069 , либо если там тема стала недоступной, то скачать её можно с этого сайта по прямой ссылке — Win11.tar.xz. Распаковываем архив и заходим в папку Win11, там мы обнаружим две папки: Win11 и Win11-dark, которые необходимо скопировать в папку .icons домашнего каталога (~/.icons/).
- Скачиваем тему курсоров с сайта https://www.pling.com/p/2171879/ , либо если там тема стала недоступной, то скачать её можно с этого сайта по прямой ссылке — windows-cursors.tar.gz. Распаковываем архив и папку windows-cursors копируем в папку .icons домашнего каталога (~/.icons/).
- Cкачиваем тему для окон и рабочего стола с сайта - https://www.pling.com/p/2278411/ , либо если там тема стала недоступной, то скачать её можно с этого сайта по прямой ссылке — Win11-round-Light.tar.xz. Распаковываем архив и папку Win11-round-Light копируем в папку .themes домашнего каталога (~/.themes/).
- Cтандартные обои для рабочего стола скачиваем отсюда — win11.jpg и перемещаем скачанный файл win11.jpg в папку Изображения домашней папки (~/Изображения/)
Чтобы не отображать скрытые файлы и папки в домашнем каталоге приложения файлы необходимо в домашней папке снова нажать комбинацию клавиш Ctrl+H.
Приступим к установке тем. Нажимаем кнопку пуск и запускаем параметры системы.
В появившемся окне настроек кликаем по разделу темы.
Указатель мыши выбираем — windows-cursors
Приложения выбираем — Win11-round-Light
Значки выбираем — Win11
Рабочий стол выбираем — Win11-round-Light
Закрываем окно настроек и изменим значок кнопки Пуск.
Нажимаем правой кнопкой мышки по кнопке Пуск и выбираем настройка…
В появившемся окне в поле значок нажимаем на иконку, затем в поиске пишем «start» и выбираем иконку start-here. Нажимаем кнопку Выбрать и закрываем окно настроек.
Устанавливаем стандартные обои рабочего стола, для этого запускаем приложение Файлы, переходим в папку Изображения и кликаем правой кнопкой мышки по файлу win11.jpg, затем выбираем «Сделать фоном...»
Почти всё готово, но мы видим, что на панели справа не отображается значок уведомлений, исправим это.
Включаем режим редактирования панели, как мы это делали ранее, значок уведомлений должен появиться справ на панели. Кликаем по нему правой кнопкой мыши и выбираем «Настройки...»
В окне настроек включаем пункты «Игнорировать временные уведомления» и «Показывать количество уведомлений».
Нажимаем кнопку «Открыть настройки уведомлений» и включаем пункты «Включить уведомления» и «Показывать уведомления в нижней части экрана».
Закрываем окно настроек и выключаем режим редактирования панели.
Вот и всё интерфейс выглядит как Windows 11. Вот что в итоге получилось:
Было:
Стало:
HTML (HyperText Markup Language) — это язык разметки, который используется для создания веб-страниц. Его история начинается в конце 1980-х годов...
Тим Бернерс-Ли, британский ученый, работавший в Европейском центре ядерных исследований (CERN), задумался о способе обмена научной информацией между исследователями.
В то время существовало множество различных систем для обмена данными, но они не были совместимы друг с другом. Это создавало сложности в обмене информацией и замедляло научный прогресс.
Тим Бернерс-Ли предложил создать единый язык разметки, который позволил бы связывать документы через гипертекстовые ссылки. Так появился HTML, который стал основой для Всемирной паутины (World Wide Web). HTML позволил создавать документы, которые могли быть легко доступны и читаемы на любом компьютере, независимо от операционной системы и программного обеспечения. Это был революционный шаг, который открыл новые горизонты для обмена информацией и взаимодействия между людьми по всему миру.
HTML стал первым шагом к созданию глобальной информационной сети, которая сегодня известна как интернет. Он позволил ученым и исследователям легко делиться своими открытиями и результатами исследований, что значительно ускорило научный прогресс. Впоследствии HTML стал основой для создания коммерческих веб-сайтов, что привело к бурному развитию электронной коммерции и изменило способ ведения бизнеса.
Первая версия HTML, известная как HTML 1.0, была выпущена в 1993 году. Она содержала базовый набор тегов, которые позволяли создавать простые веб-страницы. Основные элементы включали заголовки, абзацы, списки и гиперссылки. Вот пример простой HTML-страницы на основе HTML 1.0:
<!DOCTYPE html>
<html>
<head>
<title>Пример HTML 1.0</title>
</head>
<body>
<h1>Заголовок 1 уровня</h1>
<p>Это абзац текста.</p>
<a href="https://example.com">Пример ссылки</a>
</body>
</html>
HTML 1.0 был простым и ограниченным, но он заложил основу для дальнейшего развития веб-технологий. В то время веб-страницы были статичными, и возможности для интерактивности были минимальными. Однако HTML 1.0 открыл двери для создания первых веб-сайтов и положил начало эре интернета. Веб-разработчики начали экспериментировать с новыми возможностями, что привело к появлению первых коммерческих веб-сайтов и онлайн-сервисов.
HTML 1.0 также сыграл важную роль в стандартизации веб-технологий. Он установил основные правила и принципы, которые до сих пор используются в веб-разработке. Это позволило разработчикам создавать веб-страницы, которые были совместимы с различными браузерами и платформами, что значительно упростило процесс разработки и поддержки веб-сайтов.
С развитием интернета и увеличением числа пользователей возникла необходимость в более мощных и гибких инструментах для создания веб-страниц. Это привело к появлению новых версий HTML, каждая из которых добавляла новые возможности и улучшения.
HTML 2.0 был выпущен в 1995 году и включал в себя все элементы HTML 1.0, а также добавил новые возможности, такие как формы для ввода данных и таблицы для структурирования информации. Это сделало веб-страницы более интерактивными и удобными для пользователей. Формы позволили создавать интерактивные элементы, такие как поля ввода, кнопки и выпадающие списки, что значительно расширило возможности взаимодействия с пользователями.
HTML 2.0 также включал улучшенную поддержку гипертекстовых ссылок, что позволило создавать более сложные и взаимосвязанные веб-страницы. Это способствовало развитию гипертекстовых систем и улучшило навигацию по веб-сайтам. Веб-разработчики начали использовать HTML 2.0 для создания более сложных и функциональных веб-сайтов, что привело к росту популярности интернета.
HTML 3.2, выпущенный в 1997 году, добавил поддержку стилей (CSS) и скриптов (JavaScript), что позволило создавать более сложные и динамичные веб-страницы. Это была важная веха в развитии веб-дизайна, так как разработчики получили возможность контролировать внешний вид и поведение веб-страниц. CSS позволил отделить структуру документа от его стиля, что упростило разработку и поддержку веб-сайтов.
JavaScript, в свою очередь, позволил добавлять интерактивные элементы и динамическое поведение на веб-страницы. Это открыло новые возможности для создания интерактивных веб-приложений и улучшило пользовательский опыт. Веб-разработчики начали активно использовать CSS и JavaScript для создания более привлекательных и функциональных веб-сайтов, что привело к появлению новых профессий, таких как веб-дизайнеры и фронтенд-разработчики.
HTML 4.01, выпущенный в 1999 году, стал стандартом для веб-разработки на многие годы. Он включал в себя улучшенную поддержку стилей и скриптов, а также новые элементы и атрибуты для создания более семантически правильных и доступных веб-страниц. Вот пример использования таблицы в HTML 4.01:
<!DOCTYPE html>
<html>
<head>
<title>Пример таблицы</title>
</head>
<body>
<table border="1">
<tr>
<th>Имя</th>
<th>Возраст</th>
</tr>
<tr>
<td>Иван</td>
<td>25</td>
</tr>
<tr>
<td>Мария</td>
<td>30</td>
</tr>
</table>
</body>
</html>
HTML 4.01 также ввел концепцию разделения структуры и стиля, что способствовало лучшей организации кода и облегчило поддержку веб-страниц. Это позволило разработчикам создавать более сложные и масштабируемые веб-приложения, которые были легче поддерживать и обновлять. HTML 4.01 стал основой для многих современных веб-технологий и стандартов, которые используются до сих пор.
HTML 4.01 также включал улучшенную поддержку мультимедиа, что позволило добавлять на веб-страницы изображения, аудио и видео. Это значительно расширило возможности веб-дизайна и улучшило пользовательский опыт. Веб-разработчики начали активно использовать мультимедийные элементы для создания более привлекательных и информативных веб-сайтов.
HTML5, выпущенный в 2014 году, стал настоящей революцией в мире веб-разработки. Он был разработан с учетом потребностей современных веб-приложений и включал множество новых возможностей и улучшений.
HTML5 ввел новые семантические элементы, такие как <header>
, <footer>
, <article>
, <section>
, которые позволяют лучше структурировать контент и делают его более доступным для поисковых систем и вспомогательных технологий. Эти элементы помогают улучшить SEO (поисковую оптимизацию) и делают веб-страницы более понятными для поисковых систем.
Семантические элементы также улучшают доступность веб-страниц для людей с ограниченными возможностями. Они помогают вспомогательным технологиям, таким как экранные читалки, лучше понимать структуру и содержание веб-страницы, что делает интернет более доступным для всех пользователей.
HTML5 добавил поддержку встроенных мультимедийных элементов, таких как <audio>
и <video>
, что позволило воспроизводить аудио и видео непосредственно на веб-страницах без необходимости использования сторонних плагинов. Вот пример использования видео в HTML5:
<!DOCTYPE html>
<html>
<head>
<title>Пример видео</title>
</head>
<body>
<video controls>
<source src="video.mp4" type="video/mp4">
Ваш браузер не поддерживает видео.
</video>
</body>
</html>
Это значительно упростило процесс добавления мультимедийного контента на веб-страницы и улучшило пользовательский опыт. Веб-разработчики начали активно использовать встроенные мультимедийные элементы для создания более интерактивных и привлекательных веб-сайтов.
HTML5 также улучшил поддержку форм, добавив новые типы ввода, такие как email
, date
, number
, и новые атрибуты, такие как placeholder
и required
, что упростило создание и валидацию форм. Это значительно упростило процесс взаимодействия пользователей с веб-сайтами и улучшило пользовательский опыт.
Новые типы ввода и атрибуты позволили разработчикам создавать более удобные и интуитивно понятные формы, что повысило эффективность взаимодействия с пользователями. Веб-разработчики начали активно использовать новые возможности HTML5 для создания более функциональных и удобных веб-приложений.
HTML5 включил множество новых API, таких как Geolocation API, Web Storage API, Canvas API, которые расширили возможности веб-приложений и позволили создавать более интерактивные и функциональные веб-сайты. Эти API предоставили разработчикам доступ к новым функциям и возможностям, что значительно расширило возможности веб-разработки.
Geolocation API позволяет определять местоположение пользователя, что открыло новые возможности для создания геолокационных сервисов и приложений. Web Storage API предоставляет возможность хранения данных на стороне клиента, что улучшило производительность и удобство использования веб-приложений. Canvas API позволяет создавать сложные графические элементы и анимации, что значительно улучшило визуальное восприятие веб-сайтов.
Сегодня HTML продолжает развиваться и адаптироваться к новым требованиям и технологиям. Современные веб-страницы становятся все более интерактивными и сложными, и HTML играет ключевую роль в этом процессе. Веб-разработчики активно используют HTML5 вместе с CSS3 и JavaScript для создания современных веб-приложений.
Среди текущих трендов можно выделить развитие прогрессивных веб-приложений (PWA), которые объединяют лучшие черты веб-сайтов и мобильных приложений. PWA позволяют создавать веб-приложения, которые работают офлайн, быстро загружаются и предоставляют пользователям удобный и интуитивно понятный интерфейс.
Также активно развивается направление веб-компонентов, которое позволяет создавать переиспользуемые элементы интерфейса. Веб-компоненты позволяют разработчикам создавать модульные и масштабируемые веб-приложения, что значительно упрощает процесс разработки и поддержки.
HTML продолжит эволюционировать, чтобы соответствовать требованиям времени. В будущем можно ожидать появления новых семантических элементов, улучшенной поддержки мультимедиа и новых API, которые сделают веб-приложения еще более мощными и удобными. Веб-разработчики будут продолжать использовать HTML в сочетании с другими веб-технологиями для создания инновационных и функциональных веб-приложений.
HTML прошел долгий путь от простого языка разметки до мощного инструмента для создания современных веб-приложений. Его история — это история развития интернета и веб-технологий, и она продолжается. Веб-разработчики по всему миру продолжают использовать HTML для создания новых и инновационных веб-приложений, которые улучшают пользовательский опыт и делают интернет более доступным и функциональным.
Источник: https://sky.pro
В последних версиях Linux Mint подключение к OpenVPN упростилось до нельзя. Теперь клиент уже предустановлен в системе, а для подключения достаточно импортировать конфиг.
Для этого переходим в параметры сети:
Значок сети на панели → Параметры сети
Создаём новое подключения и выбираем "Импортировать из файла":
Создание нового подключения
На вкладке IPv4 установите флажок "Использовать это подключение только для ресурсов этой сети", если через VPN не планируется выход в Интернет:
Активируйте, если наблюдаются проблемы с доступом в Интернет
Подключение станет доступно в общем списке сетей:
Подключение добавлено
sudo apt install network-manager-openvpn
sudo systemctl start openvpn
sudo systemctl enable openvpn
Источник: dzen.ru/
Какую файловую систему выбрать при установке Linux? Какие они эти файловые системы? В чем их сходство и различие? Просто о сложном: как не запутаться при установке системы.
Представьте, что ваш жесткий диск — это библиотека. Файловая система — это каталог, который помогает быстро находить книги (файлы) и следить за порядком. Без нее данные превратились бы в беспорядочную кучу. В Linux существует несколько вариантов таких «каталогов», и каждый подходит для разных задач. Разберемся, какой выбрать, если вы впервые устанавливаете систему.
Для новичков важно выбрать баланс между надежностью и простотой. Вот ключевые варианты:
ext4
Что это? ext4 (Fourth Extended Filesystem) — это четвертая версия файловой системы ext, которая является стандартом для большинства дистрибутивов Linux. Она была разработана как улучшение ext3 и включает в себя множество новых функций и улучшений. ext4 поддерживает большие объемы данных, улучшенную производительность и надежность. Она использует журналирование, что позволяет быстро восстанавливать данные после сбоев. ext4 также поддерживает расширенные атрибуты файлов и большие файлы (до 16 терабайт).
Плюсы:
Надежная журналируемая система (запись изменений в «журнал» для восстановления после сбоев).
Поддержка дисков до 1 эксабайта (это 1 миллион терабайт!).
Высокая совместимость: работает во всех дистрибутивах.
Минусы:
Нет встроенной поддержки снапшотов или сжатия данных.
Что это? Btrfs (B-Tree File System) — это современная файловая система, разработанная для предоставления передовых функций, таких как снапшоты, сжатие данных, динамическое управление разделами и высокая надежность. Она использует структуру данных B-Tree для управления файлами и метаданными, что обеспечивает высокую производительность и масштабируемость. Btrfs также поддерживает копирование при записи (COW), что позволяет создавать снапшоты и восстанавливать данные до предыдущих состояний.
Плюсы:
Снапшоты (моментальные снимки системы для отката изменений).
Сжатие данных (экономия места без потери скорости).
Динамическое управление разделами (не нужно заранее задавать размер).
Минусы:
Менее стабильна в экзотических сценариях.
Сложнее в настройке для новичков.
Что это? XFS — это высокопроизводительная файловая система, разработанная компанией Silicon Graphics (SGI) для работы с большими файлами и высокими нагрузками. Она была создана для использования в серверных средах и поддерживает большие объемы данных (до 8 эксабайт). XFS использует журналирование для обеспечения надежности и быстрого восстановления после сбоев. Она также поддерживает расширенные атрибуты файлов и большие файлы (до 8 эксабайт). XFS оптимизирована для работы с видеофайлами, базами данных и другими приложениями, требующими высокой производительности.
Плюсы:
Высокая скорость обработки крупных данных.
Надежное журналирование.
Минусы:
Сложности с уменьшением размера раздела.
Менее удобна для домашнего использования.
Что это? ZFS (Zettabyte File System) — это мощная файловая система, разработанная компанией Sun Microsystems, которая фокусируется на целостности данных и высокой надежности. Она поддерживает гигантские объемы данных (до 256 зеттабайт) и использует проверку данных на ошибки для обеспечения их целостности. ZFS также поддерживает снапшоты, сжатие данных, дедупликацию и динамическое управление разделами. Она требует много оперативной памяти для работы и не встроена в ядро Linux, что требует дополнительных действий для ее установки и настройки.
Плюсы:
Проверка данных на ошибки (самолечение).
Поддержка гигантских объемов.
Минусы:
Требует много оперативной памяти.
Не встроена в ядро Linux (нужны дополнительные действия).
Что это? F2FS (Flash-Friendly File System) — это файловая система, разработанная компанией Samsung специально для использования с SSD и флеш-накопителями. Она оптимизирована для увеличения срока службы SSD и обеспечения высокой производительности. F2FS использует логарифмическую структуру для управления данными, что позволяет минимизировать износ флеш-памяти и улучшить производительность. Она также поддерживает сжатие данных и снапшоты. F2FS менее распространена и не все дистрибутивы Linux поддерживают ее по умолчанию.
Плюсы:
Увеличивает срок службы SSD.
Минусы:
Меньшая распространенность (не все дистрибутивы поддерживают).
Рекомендация: ext4.
Простота: Установщики Ubuntu, Fedora и других дистрибутивов предлагают ext4 по умолчанию. Вам не нужно ничего настраивать.
Стабильность: Проверена годами — данные не потеряются из-за случайного сбоя.
Совместимость: Не возникнет проблем при подключении диска к другой системе.
А если хочется экспериментировать?
Попробуйте Btrfs, если:
Хотите использовать снапшоты для резервных копий.
Готовы следовать инструкциям (например, в openSUSE Btrfs настроена «из коробки»).
XFS — если работаете с видео или большими базами данных.
F2FS — для SSD в легковесных дистрибутивах (например, Garuda Linux).
Запустите установщик (например, Ubuntu).
На этапе разметки диска выберите «Стереть диск и установить Linux» — система сама создаст разделы с ext4.
Для ручной настройки:
Укажите точку монтирования (например, / для корневого раздела).
Выберите файловую систему из выпадающего списка.
Не переживайте из-за «идеального» выбора. Для первого раза ext4 — лучший вариант. Освоите базовые навыки — сможете перейти на Btrfs или другие системы. Linux тем и хорош, что позволяет менять настройки по мере роста ваших знаний. Удачной установки!
P.S. Не забудьте сделать бэкап данных перед экспериментами с разделами!
Источник: https://dzen.ru/
Для привлечения внимания пользователей к сайту разработчики используют различные графические элементы. Одним из таких элементов является favicon. В статье рассказывается, что такое favicon, зачем он нужен сайту и как его оптимизировать. Даётся подробная инструкция, как его создать и добавить на сайт с помощью HTML-кода.
Favicon — это графический элемент, который является иконкой сайта и находится на вкладке веб-ресурса. Правильно настроенный favicon помогает пользователям легче находить сайт среди множества открытых вкладок и закладок.
Хорошо продуманный фавикон помогает создать запоминающийся образ бренда, что особенно важно в условиях конкурентной среды.
Favicon выполняет несколько ключевых функций:
Фавикон различных сайтов видно в окне браузера на вкладках:
Иконка сайта может иметь разный формат, что главным образом влияет на её отображение:
Создать значок сайта можно с помощью множества доступных онлайн-инструментов.
Первый шаг — выбрать или сгенерировать изображение. Например, подойдёт логотип вашей компании, символ или другой элемент, который точно передаёт суть вашего бизнеса. Рекомендуемые размеры для фавиконов — 16x16 пикселей для стандартного отображения на вкладках браузеров и 32x32 пикселя для более качественного отображения на устройствах с высоким разрешением. Помните, что изображение должно быть чётким и легко различимым.
После того как вы выбрали изображение, следующим шагом является его преобразование в один из форматов, наиболее подходящих для фавиконов. Для конвертации используйте онлайн-конвертеры, например, CloudConvert или ConvertICO.
Убедитесь, что размер файла фавикона не превышает 100 КБ. Чем меньше весит иконка, тем быстрее она будет загружаться на сайте, что особенно важно для мобильных устройств. Сжимайте изображения при помощи инструментов, например, TinyPNG или ImageOptim, чтобы уменьшить вес файла без значительной потери качества.
Для более быстрой разработки фавикона можно воспользоваться сервисами:
Этот инструмент позволяет загружать собственные изображения или создавать текстовые иконки, выбирая шрифты, цвета и фон.
Это онлайн-редактор, в котором можно создавать и редактировать значки непосредственно в браузере. Здесь вы сможете нарисовать иконку пиксель за пикселем или загрузить готовое изображение, а затем настроить его.
Этот сервис генерирует полный набор иконок для всех устройств и платформ, включая Android и iOS. Он предоставляет подробные инструкции по добавлению сгенерированных файлов на ваш сайт, что упрощает процесс интеграции.
Теперь, когда у вас есть готовая иконка, необходимо добавить её на интернет-страницу. Это делается с помощью тега <link>, который помещается в секцию <head> вашего HTML-документа.
Пример HTML-кода для добавления favicon:
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" href="favicon.ico" type="image/x-icon">
<title>Мой сайт</title>
</head>
<body>
<h1>Добро пожаловать на мой сайт!</h1>
</body>
</html>
В этом примере favicon.ico — это имя вашего файла с иконкой. Убедитесь, что файл находится в той же папке, что и ваш HTML-документ. Если вы используете другие форматы, замените
type="image/x-icon"
на соответствующий тип, например,
type="image/png"
для PNG.
Для лучшей поддержки различных устройств и браузеров вы можете указать разные размеры иконок, используя атрибуты sizes и type.
Пример:
<link rel="icon" href="favicon-16x16.png" sizes="16x16" type="image/png">
<link rel="icon" href="favicon-32x32.png" sizes="32x32" type="image/png">
<link rel="icon" href="favicon-96x96.png" sizes="96x96" type="image/png">
Браузеры будут выбирать наиболее подходящую иконку в зависимости от устройства и разрешения экрана.
Мобильные устройства требуют особого подхода к иконкам. Используйте следующие метатеги в секции <head>, чтобы иконки корректно отображались в телефонах:
<link rel="apple-touch-icon" sizes="180x180" href="apple-icon.png">
<link rel="icon" type="image/png" sizes="192x192" href="android-icon.png">
<link rel="icon" type="image/png" sizes="512x512" href="android-icon.png">
После добавления значка на ваш сайт важно тщательно протестировать его отображение в различных браузерах и на разных устройствах.
Проверьте, как ваш значок выглядит в популярных браузерах, таких как «Яндекс Браузер», Google Chrome, Mozilla Firefox, Safari и Microsoft Edge. Каждый из них может обрабатывать фавиконы немного по-разному. Например, Chrome может кешировать старое изображение, если вы вносите изменения, поэтому лучше открыть сайт в режиме инкогнито или очистить кеш браузера, чтобы увидеть обновлённый значок.
Не забудьте протестировать favicon и на мобильных устройствах. На смартфонах и планшетах значок может отображаться иначе, особенно в зависимости от операционной системы (iOS или Android). Проверьте, как смотрится и отображается иконка на разных экранах, включая устройства с высокой плотностью пикселей (Retina).
Если ваша иконка не отображается, на то может быть несколько причин. Разберём основные причины ошибок и предложим их решение.
Вы должны проверить, правильно ли вы указали расположение файла в HTML-коде. Например, если ваш файл называется favicon.ico и находится в папке images, путь должен выглядеть так:
<link rel="icon" href="images/favicon.ico" type="image/x-icon">
Если файл находится в корневой директории вашего веб-ресурса, путь будет:
href="favicon.ico"
Проверьте, не допущена ли опечатка в названии файла и его расширении. Также убедитесь, что файл действительно существует на сервере, иначе иконка не будет отображаться.
Если ваш значок не отображается или выглядит неправильно, возможно, проблема в кеше браузера. Очистив кеш, обновите страницу вашего сайта и проверьте, отображается ли новый фавикон.
Также стоит убедиться, что файл иконки имеет правильный формат и тип MIME. Подробнее о форматах иконок мы рассказывали выше.
Чтобы проверить тип MIME, вы можете использовать инструменты разработчика в вашем браузере. Откройте вкладку «Сеть» и обновите страницу, затем найдите ваш файл иконки в списке ресурсов. Убедитесь, что указанный тип MIME соответствует формату файла, например, image/x-icon для .ico и image/png для .png.
Используя описанные выше методы, вы сможете без труда интегрировать иконку на свой сайт.
Источник: adminvps.ru
С помощью парсинга можно быстро и эффективно собирать информацию с веб-сайтов. В этой статье разберемся, как работает этот процесс, рассмотрим полезные библиотеки и инструменты и научимся парсить сайты на Python.
Парсинг (англ. parsing — разбор) — это процесс автоматического анализа веб-сайтов для сбора структурированной информации. Еще парсинг часто называют веб-скрапингом. Представьте, что вы ищете на новостном сайте статьи про Python и сохраняете каждую в заметки: копируете заголовок и ссылку. С помощью парсинга можно автоматизировать этот процесс. Все данные будет искать и сохранять скрипт, а вам останется только проверять файл с результатами.
Часто парсинг используют боты, которые потом предоставляют доступ к собранным структурированным данным. Это может быть список статей на сайте, вакансий на платформе по поиску работы или предложений на досках объявлений. Например, один из героев нашего блога написал бот, который нашел ему работу за месяц. Если у сайта нет полноценного открытого API, то парсер ищет данные с помощью GET-запросов к серверу, а это создает дополнительную нагрузку на сервер.
Это накладывает некоторые этические ограничения на скрипты для парсинга веб-сайтов:
Надо быть готовым к тому, что некоторые владельцы веб-сайтов ограничивают парсинг и пытаются с ним бороться. В этих случаях приходится смириться с политикой сервиса или использовать более продвинутых ботов, которые имитируют поведение пользователя и получают доступ к странице через собственный экземпляр браузера. Этот способ сложнее, чем отправка запроса на сервер, но надежнее.
С помощью парсинга можно быстро собрать сразу много данных, а не тратить время на ручное исследование веб-сайтов. В некоторых задачах именно время является ключевым фактором для перехода к автоматизации. Вот сферы, в которых обычно применяют веб-парсинг:
Для парсинга удобно использовать Python из-за его простого синтаксиса и интерпретируемого подхода. Скрипты можно писать быстро и не собирать весь проект снова после незначительных изменений в коде. Разработанный парсер можно без проблем перенести практически на любую платформу или запустить в облаке, автоматизировав процесс хранения информации.
Еще одно преимущество Python — его популярность. Для языка программирования есть большое количество сторонних библиотек для различных задач и активное сообщество, которое может помочь советом. Одна из полезных библиотек для парсинга веб-сайтов — BeautifulSoup. С ее помощью можно легко анализировать HTML-файлы и находить в них нужные данные. В этой статье будем парсить сайт с ее помощью.
Есть несколько популярных способов запуска кода на Python:
Для работы нам понадобятся библиотеки BeautifulSoup, requests и lxml. Их можно установить с помощью следующей команды в терминале:
Для начала парсинга надо получить страницу, из которой будем вытаскивать полезные данные. Для этого будем использовать библиотеку requests, чтобы отправить GET-запрос, в качестве ответа получить код страницы и сохранить его. Попробуем распарсить вот эту статью, получив заголовок и первый абзац. Код выглядит следующим образом:
Что в коде:
В ответе мы получим весь код страницы, включая CSS-стили и JavaScript. Вот так это выглядит:
Код страницы у нас уже есть, но теперь из него надо получить полезные данные. Обозначим, что для решения нашей задачи необходимо получить заголовок статьи и первый абзац. Для этого понадобятся возможности библиотеки BeautifulSoup. Но сперва надо найти теги элементов, которые будем извлекать из кода страницы.
Для этого потребуется веб-инспектор в любом браузере. Мы будем использовать Safari, но этот режим есть и в других браузерах. К примеру, в Google Chrome он открывается сочетанием клавиш Сtrl + Shift + I (Windows) или ⌥ + ⌘ + I (macOS). После этого можно выбрать на странице элемент и увидеть его код в инспекторе.
Заголовок статьи находится в теге <h1>, поэтому попробуем получить его содержимое с помощью библиотеки BeautifulSoup. Для этого передадим в функцию find искомый тег:
Все получилось и Python вывел в консоль текст заголовка, но с тегами. Надо избавиться от них. Это можно сделать с помощью преобразования содержимого переменной title в текст. После этого Python удалит теги, оставив только их содержимое:
Теперь надо повторить весь порядок действий для вывода первого абзаца. Начинаем с поиска тега в инспекторе и после этого вытаскиваем его из файла и преобразуем в текст.
Мы в точности повторили весь порядок действий, но парсер вывел совсем не ту строчку. Все дело в том, что мы искали элемент по тегу <p>. В HTML-файле их может быть несколько, а BeautifulSoup ищет самый первый. Поэтому запрос надо уточнить и сделать его более конкретным.
Для этого можно указать дерево наследования элементов. К примеру, если тег <p> входит в <article>, а тот — в <main>, то код запроса можно будет записать так: soup.find(‘main’).find(‘article’).find(‘p’). Еще можно искать элемент по его классу. Для этого в функцию надо передать тег и его класс: soup.find(‘p’, class_=’paragraph’).
В нашем случае запрос будет выглядеть следующим образом:
Таким образом можно распарсить любую веб-страницу и получить необходимые данные, а потом использовать их по своему усмотрению. К примеру, строить график изменения цен на товары в онлайн-магазинах или автоматически отправлять ссылки на новые статьи с кратким содержанием в Telegram.
Сейчас наш код выводит результат парсинга веб-страницы в консоль. Эти данные никуда не сохраняются и к ним сложно получить доступ. Для этого каждый раз надо будет запускать скрипт. Упростим задачу и запишем данные в файл.
Для этого воспользуемся встроенной функцией write(). Сперва откроем файл в режиме записи:
Если файла с таким названием нет, то Python сам создаст его в директории проекта.
После этого запишем данные, полученные во время парсинга, и обязательно закроем файл:
Источник: blog.skillfactory.ru