Работа с XML в Python через etree и ElementTree

Очередной шаг к освоению Python – работа с XML через библиотеки etree и ElementTree. Эти инструменты позволяют легко обрабатывать и создавать XML-файлы, помогая упрощать взаимодействие с данными. Установите необходимые библиотеки с помощью pip, выполнив команду pip install lxml для etree, которая предлагает мощный функционал и высокую производительность.

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

import xml.etree.ElementTree as ET
tree = ET.parse('example.xml')
root = tree.getroot()

Здесь root – это корень вашего XML-документа. Теперь вы можете проходить по элементам, узнавать их атрибуты и содержимое. Например, чтобы получить доступ к дочерним элементам, используйте методы find и findall, что делает работу с данными интуитивно понятной и быстрой.

Установка необходимых библиотек для работы с XML

Чтобы установить `lxml`, выполните следующую команду в терминале:

pip install lxml

Эта команда загрузит и установит библиотеку. После завершения установки вы сможете импортировать `lxml` в своих проектах для работы с XML.

Вот таблица для удобства сравнения библиотек:

Библиотека Описание Установка
xml.etree.ElementTree Стандартная библиотека для работы с XML. Не требуется установка
lxml Расширенные возможности и высокая производительность. pip install lxml

Теперь у вас есть все необходимое для работы с XML в вашем проекте. Используйте эти библиотеки в зависимости от своих требований. Если стандартной функциональности недостаточно, обращайтесь к `lxml` для решения более сложных задач.

Как установить библиотеку lxml через pip

Чтобы установить библиотеку lxml, откройте терминал или командную строку на вашем компьютере.

Введите следующую команду:

pip install lxml

Эта команда автоматически загрузит и установит lxml и все необходимые зависимости. Убедитесь, что у вас установлен Python и pip. Если pip не установлен, сначала установите его, следуя документации по Python.

После завершения установки, вы можете проверить корректность установки, выполнив команду:

pip show lxml

Эта команда отобразит информацию о библиотеке, включая версию и место установки. Теперь lxml готова к использованию в ваших проектах для работы с XML.

Обзор встроенной библиотеки xml.etree.ElementTree

Библиотека xml.etree.ElementTree предоставляет удобные инструменты для работы с XML-документами. Она позволяет парсить XML, изменять его содержимое и создавать новые документы. Вот основные возможности и функционал, которые стоит учитывать:

  • Парсинг XML: Используйте метод parse() для загрузки и обработки XML-файлов. Этот метод возвращает объект дерева, который можно обходить.
  • Поиск элементов: Применяйте методы find() и findall() для поиска узлов по тегам. Эти методы позволяют быстро получать доступ к нужным элементам.
  • Изменение узлов: Используйте методы append(), remove() и set() для редактирования дерева. Это дает возможность добавлять, удалять и изменять атрибуты узлов.
  • Сохранение изменений: Метод write() позволяет сохранять измененные деревья в новые файлы. Форматирование можно настроить с помощью параметров.

Библиотека отличается простотой использования и отсутствием необходимости в сторонних зависимостях, что делает её подходящей для небольших проектов и скриптов. Чтобы использовать xml.etree.ElementTree, подключите библиотеку с помощью следующей команды:

import xml.etree.ElementTree as ET

Удобство работы с XML-документами обуславливает широкое применение ElementTree в задачах, связанных с обработкой данных, конфигурацией и веб-разработкой. Стремитесь использовать её функции для достижения наилучших результатов в ваших проектах.

Сравнение lxml и ElementTree: что выбрать?

Если вам важно производительность и функциональность, выбирайте lxml. Этот модуль основан на более быстром C-библиотеке libxml2 и libxslt, что обеспечивает ему значительно лучшие показатели скорости обработки XML. Кроме того, lxml поддерживает XPath и XSLT, что расширяет возможности работы с документами.

Если ваша задача ограничивается простым парсингом и созданием XML-документов, выбирайте ElementTree. Этот стандартный модуль входит в состав Python и легко интегрируется в проекты. Он отлично справляется с базовыми операциями и его простота делает его привлекательным выбором для новичков.

Оба модуля имеют свои плюсы. lxml предлагает более мощные инструменты для сложных запросов и трансформаций, в то время как ElementTree обеспечивает отличную читаемость кода и простоту использования. При этом lxml более требователен к зависимостям и установке.

При решении, что использовать, подумайте о размере ваших данных и сложностях задач. Если работать с большими объемами информации или сложными структурами, lxml станет более предпочтительным выбором. Для небольших проектов или скриптов ElementTree будет удобнее и быстрее в настройке.

Личное предпочтение может зависеть от вашего опыта. Если вы предоставляете меньше ресурсов на проект и хотели бы избежать зависимости, начните с ElementTree. Если необходима производительность и нужно реализовать сложные задачи – выбирайте lxml.

Практические примеры работы с XML в Python

Работа с XML в Python упрощается с помощью библиотеки `xml.etree.ElementTree`. Эта библиотека позволяет легко парсить, создавать и модифицировать XML-документы. Начнем с нескольких практических примеров.

Для установки библиотеки необходимо выполнить команду:

pip install lxml

После установки можно использовать библиотеку, начнем с загрузки XML из файла и его парсинга:

import xml.etree.ElementTree as ET
# Загружаем XML документ
tree = ET.parse('example.xml')
root = tree.getroot()
print(root.tag)

Здесь мы загружаем XML-файл и получаем корневой элемент. Теперь рассмотрим, как извлечь данные:

# Извлечение данных из элементов
for child in root:
print(child.tag, child.attrib)
# Находим элементы по тегу
for elem in root.findall('.//item'):
print(elem.text)
# Создание нового XML
new_root = ET.Element('products')
item1 = ET.SubElement(new_root, 'item')
item1.text = 'Product 1'
item1.set('price', '10.00')
item2 = ET.SubElement(new_root, 'item')
item2.text = 'Product 2'
item2.set('price', '20.00')
# Запись в файл
tree = ET.ElementTree(new_root)
tree.write('new_example.xml')

Этот пример создает новый XML-документ с несколькими элементами и записывает его в файл. Для форматирования XML можно использовать `minidom`:

from xml.dom import minidom
xml_str = ET.tostring(new_root, encoding='unicode')
pretty_xml = minidom.parseString(xml_str).toprettyxml()
with open('pretty_example.xml', 'w') as f:
f.write(pretty_xml)
print(pretty_xml)

Эти примеры показывают основные возможности работы с XML в Python. Теперь вы можете парсить, создавать и форматировать XML-документы с помощью `ElementTree` и простых методов Python.

Действие Команда
Установить библиотеку pip install lxml
Загрузить XML ET.parse(‘example.xml’)
Извлечь элементы root.findall(‘.//item’)
Создать XML ET.Element(‘products’)
Записать в файл tree.write(‘filename.xml’)

Парсинг XML: чтение данных из файла

Используйте модуль xml.etree.ElementTree для быстрого парсинга XML-файлов. Сначала установите библиотеку, если она не установлена:

pip install lxml

Затем создайте простой файл XML для тестирования. Например:

<catalog>
<book>
<title>Python Programming</title>
<author>John Doe</author>
<year>2023</year>
</book>
<book>
<title>Learning XML</title>
<author>Jane Smith</author>
<year>2022</year>
</book>
</catalog>

Теперь загрузите этот файл и прочитайте его содержимое:

import xml.etree.ElementTree as ET
tree = ET.parse('catalog.xml')
root = tree.getroot()

Для получения данных о книгах используйте следующий код:

for book in root.findall('book'):
title = book.find('title').text
author = book.find('author').text
year = book.find('year').text
print(f'Книга: {title}, Автор: {author}, Год: {year}') 

Этот код перебирает элементы book и извлекает заголовок, автора и год. Изменяйте структуру XML, добавляя атрибуты или дополнительные элементы, а также адаптируйте код для получения других данных.

Если вам нужно обрабатывать более сложные XML-документы, используйте методы поиска с атрибутами:

for book in root.findall('book[@year="2023"]'):
title = book.find('title').text
print(f'Заголовок книги 2023 года: {title}') 

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

Создание XML: как сформировать структуру документа

Чтобы создать XML-документ, используйте библиотеку xml.etree.ElementTree. Начните с импорта необходимого модуля:

import xml.etree.ElementTree as ET

Создайте корневой элемент с помощью функции Element. Укажите имя вашего корневого элемента:

root = ET.Element("catalog")

Добавьте дочерние элементы. Для этого используйте SubElement и передайте родительский элемент и имя нового элемента:

book = ET.SubElement(root, "book")

Чтобы добавить атрибуты к элементу, воспользуйтесь аргументом attrib:

book.attrib = {"id": "1"}

Добавьте текстовое содержимое к элементу с помощью атрибута text:

book.text = "The Great Gatsby"

Повторите процесс для других элементов. Создайте подэлементы для book, например, author и year:


author = ET.SubElement(book, "author")
author.text = "F. Scott Fitzgerald"
year = ET.SubElement(book, "year")
year.text = "1925"

Когда структура готова, сохраните XML-документ в файл:

tree = ET.ElementTree(root)
tree.write("catalog.xml", encoding="utf-8", xml_declaration=True)

Эта команда создаст файл catalog.xml с вашей структурой. Для проверки используйте текстовый редактор или специализированное ПО для просмотра XML.

Пример итогового документа может выглядеть так:


<?xml version="1.0" encoding="utf-8"?>
<catalog>
<book id="1">
<author>F. Scott Fitzgerald</author>
<year>1925</year>
The Great Gatsby
</book>
</catalog>

Следуя этим шагам, вы создадите XML-документ, который легко читается и обрабатывается другими программами.

Модификация XML: редактирование узлов и атрибутов

Для редактирования узлов и атрибутов в XML используйте библиотеку ElementTree. Начните с импорта нужных модулей:

import xml.etree.ElementTree as ET

Теперь загрузите XML-файл и создайте объект дерева:

tree = ET.parse('file.xml')

Получите корневой элемент:

root = tree.getroot()

Чтобы изменить текст узла, найдите нужный узел. Предположим, у вас есть ``:</p> <pre><code>title = root.find('title') title.text = 'Новый заголовок'</code></pre> <p>Для изменения атрибута используйте метод `set`:</p> <pre><code>element = root.find('element_name') element.set('attribute_name', 'новое_значение')</code></pre> <p>Если нужно удалить узел, примените метод `remove`:</p> <pre><code>parent = root.find('parent_element') child = parent.find('child_element') parent.remove(child)</code></pre> <p>Для добавления нового узла используйте метод `append`:</p> <pre><code>new_element = ET.Element('new_element') new_element.text = 'Текст нового узла' root.append(new_element)</code></pre> <p>Сохраните изменения в XML-файл:</p> <pre><code>tree.write('updated_file.xml')</code></pre> <p>Эти шаги позволяют легко редактировать узлы и атрибуты, обеспечивая эффективное управление вашим XML-документом. Работайте с XML, модифицируя содержимое в нужном вам формате.</p> <h3>Сериализация XML: сохранение документа в файл</h3> <p>Чтобы сохранить XML-документ в файл, воспользуйтесь методом `ElementTree.write()`. Этот метод позволяет записать дерево элементов в файл с указанным именем и форматом.</p> <p>Пример кода для создания и сохранения XML-документа:</p> <pre><code>import xml.etree.ElementTree as ET # Создайте корневой элемент root = ET.Element("library") # Добавьте дочерние элементы book1 = ET.SubElement(root, "book") book1.set("title", "Python Programming") book1.set("author", "John Doe") book2 = ET.SubElement(root, "book") book2.set("title", "Learning XML") book2.set("author", "Jane Smith") # Создайте объект ElementTree tree = ET.ElementTree(root) # Сохраните файл tree.write("library.xml", encoding="utf-8", xml_declaration=True) </code></pre> <p>Здесь вы создаете корневой элемент «library», добавляете несколько книг с атрибутами и сохраняете полученный XML-документ в файл «library.xml». Атрибуты `encoding` и `xml_declaration` обеспечивают правильное кодирование и заголовок XML.</p> <p>Проверьте, что файл сохранился в нужной директории, и откройте его для просмотра. Вы увидите, что структура вашего документа организована, а информация правильно представлена.</p> <p>При необходимости настройте параметры, такие как `encoding`, чтобы соответствовать требованиям вашего проекта или среды. Это упростит работу с файлами XML в будущем.</p> </p> </div><!-- .entry-content --> </article><!-- #post-## --> <div class="entry-footer"> </div> <div class="b-share b-share--post"> <div class="b-share__title">Понравилась статья? Поделить с друзьями:</div> <span class="b-share__ico b-share__vk js-share-link" data-uri="http://vk.com/share.php?url=https%3A%2F%2Fxn----7sbbh7akdldfh0ai3n.xn--p1ai%2F%25d1%2580%25d0%25b0%25d0%25b1%25d0%25be%25d1%2582%25d0%25b0-%25d1%2581-xml-%25d0%25b2-python-%25d1%2587%25d0%25b5%25d1%2580%25d0%25b5%25d0%25b7-etree-%25d0%25b8-elementtree%2F"></span> <span class="b-share__ico b-share__fb js-share-link" data-uri="http://www.facebook.com/sharer.php?u=https%3A%2F%2Fxn----7sbbh7akdldfh0ai3n.xn--p1ai%2F%25d1%2580%25d0%25b0%25d0%25b1%25d0%25be%25d1%2582%25d0%25b0-%25d1%2581-xml-%25d0%25b2-python-%25d1%2587%25d0%25b5%25d1%2580%25d0%25b5%25d0%25b7-etree-%25d0%25b8-elementtree%2F"></span> <span class="b-share__ico b-share__tw js-share-link" data-uri="http://twitter.com/share?text=%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0+%D1%81+XML+%D0%B2+Python+%D1%87%D0%B5%D1%80%D0%B5%D0%B7+etree+%D0%B8+ElementTree&url=https%3A%2F%2Fxn----7sbbh7akdldfh0ai3n.xn--p1ai%2F%25d1%2580%25d0%25b0%25d0%25b1%25d0%25be%25d1%2582%25d0%25b0-%25d1%2581-xml-%25d0%25b2-python-%25d1%2587%25d0%25b5%25d1%2580%25d0%25b5%25d0%25b7-etree-%25d0%25b8-elementtree%2F"></span> <span class="b-share__ico b-share__ok js-share-link" data-uri="https://connect.ok.ru/dk?st.cmd=WidgetSharePreview&service=odnoklassniki&st.shareUrl=https%3A%2F%2Fxn----7sbbh7akdldfh0ai3n.xn--p1ai%2F%25d1%2580%25d0%25b0%25d0%25b1%25d0%25be%25d1%2582%25d0%25b0-%25d1%2581-xml-%25d0%25b2-python-%25d1%2587%25d0%25b5%25d1%2580%25d0%25b5%25d0%25b7-etree-%25d0%25b8-elementtree%2F"></span> <span class="b-share__ico b-share__gp js-share-link" data-uri="https://plus.google.com/share?url=https%3A%2F%2Fxn----7sbbh7akdldfh0ai3n.xn--p1ai%2F%25d1%2580%25d0%25b0%25d0%25b1%25d0%25be%25d1%2582%25d0%25b0-%25d1%2581-xml-%25d0%25b2-python-%25d1%2587%25d0%25b5%25d1%2580%25d0%25b5%25d0%25b7-etree-%25d0%25b8-elementtree%2F"></span> <span class="b-share__ico b-share__whatsapp js-share-link js-share-link-no-window" data-uri="whatsapp://send?text=%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0+%D1%81+XML+%D0%B2+Python+%D1%87%D0%B5%D1%80%D0%B5%D0%B7+etree+%D0%B8+ElementTree%20https%3A%2F%2Fxn----7sbbh7akdldfh0ai3n.xn--p1ai%2F%25d1%2580%25d0%25b0%25d0%25b1%25d0%25be%25d1%2582%25d0%25b0-%25d1%2581-xml-%25d0%25b2-python-%25d1%2587%25d0%25b5%25d1%2580%25d0%25b5%25d0%25b7-etree-%25d0%25b8-elementtree%2F"></span> <span class="b-share__ico b-share__viber js-share-link js-share-link-no-window" data-uri="viber://forward?text=%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0+%D1%81+XML+%D0%B2+Python+%D1%87%D0%B5%D1%80%D0%B5%D0%B7+etree+%D0%B8+ElementTree%20https%3A%2F%2Fxn----7sbbh7akdldfh0ai3n.xn--p1ai%2F%25d1%2580%25d0%25b0%25d0%25b1%25d0%25be%25d1%2582%25d0%25b0-%25d1%2581-xml-%25d0%25b2-python-%25d1%2587%25d0%25b5%25d1%2580%25d0%25b5%25d0%25b7-etree-%25d0%25b8-elementtree%2F"></span> <span class="b-share__ico b-share__telegram js-share-link js-share-link-no-window" data-uri="https://telegram.me/share/url?url=https%3A%2F%2Fxn----7sbbh7akdldfh0ai3n.xn--p1ai%2F%25d1%2580%25d0%25b0%25d0%25b1%25d0%25be%25d1%2582%25d0%25b0-%25d1%2581-xml-%25d0%25b2-python-%25d1%2587%25d0%25b5%25d1%2580%25d0%25b5%25d0%25b7-etree-%25d0%25b8-elementtree%2F&text=%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0+%D1%81+XML+%D0%B2+Python+%D1%87%D0%B5%D1%80%D0%B5%D0%B7+etree+%D0%B8+ElementTree"></span> </div> <meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-xml-%d0%b2-python-%d1%87%d0%b5%d1%80%d0%b5%d0%b7-etree-%d0%b8-elementtree/"/> <meta itemprop="dateModified" content="2025-01-11"/> <meta itemprop="datePublished" content="2025-01-11T20:11:00+03:00"/> <div class="wpdiscuz_top_clearing"></div> <div id='comments' class='comments-area'><div id='respond' style='width: 0;height: 0;clear: both;margin: 0;padding: 0;'></div><div id='wpd-post-rating' class='wpd-not-rated'> <div class='wpd-rating-wrap'> <div class='wpd-rating-left'></div> <div class='wpd-rating-data'> <div class='wpd-rating-value'> <span class='wpdrv'>0</span> <span class='wpdrc'>0</span> <span class='wpdrt'>голоса</span></div> <div class='wpd-rating-title'>Рейтинг статьи</div> <div class='wpd-rating-stars'><svg xmlns='https://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M0 0h24v24H0z' fill='none'/><path class='wpd-star' d='M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z'/><path d='M0 0h24v24H0z' fill='none'/></svg><svg xmlns='https://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M0 0h24v24H0z' fill='none'/><path class='wpd-star' d='M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z'/><path d='M0 0h24v24H0z' fill='none'/></svg><svg xmlns='https://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M0 0h24v24H0z' fill='none'/><path class='wpd-star' d='M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z'/><path d='M0 0h24v24H0z' fill='none'/></svg><svg xmlns='https://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M0 0h24v24H0z' fill='none'/><path class='wpd-star' d='M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z'/><path d='M0 0h24v24H0z' fill='none'/></svg><svg xmlns='https://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M0 0h24v24H0z' fill='none'/><path class='wpd-star' d='M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z'/><path d='M0 0h24v24H0z' fill='none'/></svg></div><div class='wpd-rate-starts'><svg xmlns='https://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M0 0h24v24H0z' fill='none'/><path class='wpd-star' d='M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z'/><path d='M0 0h24v24H0z' fill='none'/></svg><svg xmlns='https://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M0 0h24v24H0z' fill='none'/><path class='wpd-star' d='M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z'/><path d='M0 0h24v24H0z' fill='none'/></svg><svg xmlns='https://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M0 0h24v24H0z' fill='none'/><path class='wpd-star' d='M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z'/><path d='M0 0h24v24H0z' fill='none'/></svg><svg xmlns='https://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M0 0h24v24H0z' fill='none'/><path class='wpd-star' d='M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z'/><path d='M0 0h24v24H0z' fill='none'/></svg><svg xmlns='https://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M0 0h24v24H0z' fill='none'/><path class='wpd-star' d='M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z'/><path d='M0 0h24v24H0z' fill='none'/></svg></div></div> <div class='wpd-rating-right'></div></div></div> <div id="wpdcom" class="wpdiscuz_unauth wpd-default wpd-layout-1 wpd-comments-open"> <div class="wc_social_plugin_wrapper"> </div> <div class="wpd-form-wrap"> <div class="wpd-form-head"> <div class="wpd-sbs-toggle"> <i class="far fa-envelope"></i> <span class="wpd-sbs-title">Подписаться</span> <i class="fas fa-caret-down"></i> </div> <div class="wpd-auth"> <div class="wpd-login"> <a rel="nofollow" href="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/wp-login.php?redirect_to=https%3A%2F%2Fxn----7sbbh7akdldfh0ai3n.xn--p1ai%2F%25d1%2580%25d0%25b0%25d0%25b1%25d0%25be%25d1%2582%25d0%25b0-%25d1%2581-xml-%25d0%25b2-python-%25d1%2587%25d0%25b5%25d1%2580%25d0%25b5%25d0%25b7-etree-%25d0%25b8-elementtree%2F"><i class='fas fa-sign-in-alt'></i> авторизуйтесь</a> </div> </div> </div> <div class="wpdiscuz-subscribe-bar wpdiscuz-hidden"> <form action="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/wp-admin/admin-ajax.php?action=wpdAddSubscription" method="post" id="wpdiscuz-subscribe-form"> <div class="wpdiscuz-subscribe-form-intro">Уведомить о </div> <div class="wpdiscuz-subscribe-form-option" style="width:40%;"> <select class="wpdiscuz_select" name="wpdiscuzSubscriptionType"> <option value="post">новых последующих комментариях</option> <option value="all_comment" >новых ответах на мои комментарии</option> </select> </div> <div class="wpdiscuz-item wpdiscuz-subscribe-form-email"> <input class="email" type="email" name="wpdiscuzSubscriptionEmail" required="required" value="" placeholder="Email"/> </div> <div class="wpdiscuz-subscribe-form-button"> <input id="wpdiscuz_subscription_button" class="wpd-prim-button wpd_not_clicked" type="submit" value="›" name="wpdiscuz_subscription_button"/> </div> <input type="hidden" id="wpdiscuz_subscribe_form_nonce" name="wpdiscuz_subscribe_form_nonce" value="27f5ac4f67" /><input type="hidden" name="_wp_http_referer" value="/%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0-%D1%81-xml-%D0%B2-python-%D1%87%D0%B5%D1%80%D0%B5%D0%B7-etree-%D0%B8-elementtree/" /> </form> </div> <div class="wpd-form wpd-form-wrapper wpd-main-form-wrapper" id='wpd-main-form-wrapper-0_0'> <form method="post" enctype="multipart/form-data" data-uploading="false" class="wpd_comm_form wpd_main_comm_form" > <div class="wpd-field-comment"> <div class="wpdiscuz-item wc-field-textarea"> <div class="wpdiscuz-textarea-wrap "> <div class="wpd-avatar"> <img alt='guest' src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2056%2056'%3E%3C/svg%3E" data-lazy-srcset='https://secure.gravatar.com/avatar/932eed99562c2c3b0ec9b8c0193ec3c9b102f3d2cac5bb427fe74020dee6ba68?s=112&d=mm&r=g 2x' class='avatar avatar-56 photo' height='56' width='56' decoding='async' data-lazy-src="https://secure.gravatar.com/avatar/932eed99562c2c3b0ec9b8c0193ec3c9b102f3d2cac5bb427fe74020dee6ba68?s=56&d=mm&r=g"/><noscript><img alt='guest' src='https://secure.gravatar.com/avatar/932eed99562c2c3b0ec9b8c0193ec3c9b102f3d2cac5bb427fe74020dee6ba68?s=56&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/932eed99562c2c3b0ec9b8c0193ec3c9b102f3d2cac5bb427fe74020dee6ba68?s=112&d=mm&r=g 2x' class='avatar avatar-56 photo' height='56' width='56' decoding='async'/></noscript> </div> <div id="wpd-editor-wraper-0_0" style="display: none;"> <div id="wpd-editor-char-counter-0_0" class="wpd-editor-char-counter"></div> <label style="display: none;" for="wc-textarea-0_0">Label</label> <textarea id="wc-textarea-0_0" name="wc_comment" class="wc_comment wpd-field"></textarea> <div id="wpd-editor-0_0"></div> <div id="wpd-editor-toolbar-0_0"> <button title="Жирный" class="ql-bold" ></button> <button title="Курсив" class="ql-italic" ></button> <button title="Подчеркивание" class="ql-underline" ></button> <button title="Зачеркивание" class="ql-strike" ></button> <button title="Упорядоченный список" class="ql-list" value='ordered' ></button> <button title="Неупорядоченный список" class="ql-list" value='bullet' ></button> <button title="Цитата" class="ql-blockquote" ></button> <button title="Блок кода" class="ql-code-block" ></button> <button title="Ссылка" class="ql-link" ></button> <button title="Исходный код" class="ql-sourcecode" data-wpde_button_name='sourcecode'>{}</button> <button title="Спойлер" class="ql-spoiler" data-wpde_button_name='spoiler'>[+]</button> <div class="wpd-editor-buttons-right"> <span class='wmu-upload-wrap' wpd-tooltip='Прикрепить изображение к этому комментарию' wpd-tooltip-position='left'><label class='wmu-add'><i class='far fa-image'></i><input style='display:none;' class='wmu-add-files' type='file' name='wmu_files' accept='image/*'/></label></span> </div> </div> </div> </div> </div> </div> <div class="wpd-form-foot" style='display:none;'> <div class="wpdiscuz-textarea-foot"> <div class="wpdiscuz-button-actions"><div class='wmu-action-wrap'><div class='wmu-tabs wmu-images-tab wmu-hide'></div></div></div> </div> <div class="wpd-form-row"> <div class="wpd-form-col-left"> <div class="wpdiscuz-item wc_name-wrapper wpd-has-icon"> <div class="wpd-field-icon"><i class="fas fa-user"></i> </div> <input id="wc_name-0_0" value="" required='required' aria-required='true' class="wc_name wpd-field" type="text" name="wc_name" placeholder="Имя*" maxlength="50" pattern='.{3,50}' title=""> <label for="wc_name-0_0" class="wpdlb">Имя*</label> </div> <div class="wpdiscuz-item wc_email-wrapper wpd-has-icon"> <div class="wpd-field-icon"><i class="fas fa-at"></i> </div> <input id="wc_email-0_0" value="" required='required' aria-required='true' class="wc_email wpd-field" type="email" name="wc_email" placeholder="Email*"/> <label for="wc_email-0_0" class="wpdlb">Email*</label> </div> <div class="wpdiscuz-item wc_website-wrapper wpd-has-icon"> <div class="wpd-field-icon"><i class="fas fa-link"></i> </div> <input id="wc_website-0_0" value="" class="wc_website wpd-field" type="text" name="wc_website" placeholder="Веб-сайт"/> <label for="wc_website-0_0" class="wpdlb">Веб-сайт</label> </div> </div> <div class="wpd-form-col-right"> <div class="wc-field-submit"> <label class="wpd_label" wpd-tooltip="Сообщать о всех новых ответах на мои комментарии"> <input id="wc_notification_new_comment-0_0" class="wc_notification_new_comment-0_0 wpd_label__checkbox" value="comment" type="checkbox" name="wpdiscuz_notification_type" /> <span class="wpd_label__text"> <span class="wpd_label__check"> <i class="fas fa-bell wpdicon wpdicon-on"></i> <i class="fas fa-bell-slash wpdicon wpdicon-off"></i> </span> </span> </label> <input id="wpd-field-submit-0_0" class="wc_comm_submit wpd_not_clicked wpd-prim-button" type="submit" name="submit" value="Оставить комментарий" aria-label="Оставить комментарий"/> </div> </div> <div class="clearfix"></div> </div> </div> <input type="hidden" class="wpdiscuz_unique_id" value="0_0" name="wpdiscuz_unique_id"> <p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="726bdea983" /></p><p style="display: none !important;" class="akismet-fields-container" data-prefix="ak_"><label>Δ<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="ak_js" value="239"/><script>document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() );</script></p> </form> </div> <div id="wpdiscuz_hidden_secondary_form" style="display: none;"> <div class="wpd-form wpd-form-wrapper wpd-secondary-form-wrapper" id='wpd-secondary-form-wrapper-wpdiscuzuniqueid' style='display: none;'> <div class="wpd-secondary-forms-social-content"></div> <div class="clearfix"></div> <form method="post" enctype="multipart/form-data" data-uploading="false" class="wpd_comm_form wpd-secondary-form-wrapper" > <div class="wpd-field-comment"> <div class="wpdiscuz-item wc-field-textarea"> <div class="wpdiscuz-textarea-wrap "> <div class="wpd-avatar"> <img alt='guest' src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2056%2056'%3E%3C/svg%3E" data-lazy-srcset='https://secure.gravatar.com/avatar/064a3ebc81fb282222935f4c3aebdb868baeb7aed4cab19e5f4661ddbe3a2bf3?s=112&d=mm&r=g 2x' class='avatar avatar-56 photo' height='56' width='56' decoding='async' data-lazy-src="https://secure.gravatar.com/avatar/064a3ebc81fb282222935f4c3aebdb868baeb7aed4cab19e5f4661ddbe3a2bf3?s=56&d=mm&r=g"/><noscript><img alt='guest' src='https://secure.gravatar.com/avatar/064a3ebc81fb282222935f4c3aebdb868baeb7aed4cab19e5f4661ddbe3a2bf3?s=56&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/064a3ebc81fb282222935f4c3aebdb868baeb7aed4cab19e5f4661ddbe3a2bf3?s=112&d=mm&r=g 2x' class='avatar avatar-56 photo' height='56' width='56' decoding='async'/></noscript> </div> <div id="wpd-editor-wraper-wpdiscuzuniqueid" style="display: none;"> <div id="wpd-editor-char-counter-wpdiscuzuniqueid" class="wpd-editor-char-counter"></div> <label style="display: none;" for="wc-textarea-wpdiscuzuniqueid">Label</label> <textarea id="wc-textarea-wpdiscuzuniqueid" name="wc_comment" class="wc_comment wpd-field"></textarea> <div id="wpd-editor-wpdiscuzuniqueid"></div> <div id="wpd-editor-toolbar-wpdiscuzuniqueid"> <button title="Жирный" class="ql-bold" ></button> <button title="Курсив" class="ql-italic" ></button> <button title="Подчеркивание" class="ql-underline" ></button> <button title="Зачеркивание" class="ql-strike" ></button> <button title="Упорядоченный список" class="ql-list" value='ordered' ></button> <button title="Неупорядоченный список" class="ql-list" value='bullet' ></button> <button title="Цитата" class="ql-blockquote" ></button> <button title="Блок кода" class="ql-code-block" ></button> <button title="Ссылка" class="ql-link" ></button> <button title="Исходный код" class="ql-sourcecode" data-wpde_button_name='sourcecode'>{}</button> <button title="Спойлер" class="ql-spoiler" data-wpde_button_name='spoiler'>[+]</button> <div class="wpd-editor-buttons-right"> <span class='wmu-upload-wrap' wpd-tooltip='Прикрепить изображение к этому комментарию' wpd-tooltip-position='left'><label class='wmu-add'><i class='far fa-image'></i><input style='display:none;' class='wmu-add-files' type='file' name='wmu_files' accept='image/*'/></label></span> </div> </div> </div> </div> </div> </div> <div class="wpd-form-foot" style='display:none;'> <div class="wpdiscuz-textarea-foot"> <div class="wpdiscuz-button-actions"><div class='wmu-action-wrap'><div class='wmu-tabs wmu-images-tab wmu-hide'></div></div></div> </div> <div class="wpd-form-row"> <div class="wpd-form-col-left"> <div class="wpdiscuz-item wc_name-wrapper wpd-has-icon"> <div class="wpd-field-icon"><i class="fas fa-user"></i> </div> <input id="wc_name-wpdiscuzuniqueid" value="" required='required' aria-required='true' class="wc_name wpd-field" type="text" name="wc_name" placeholder="Имя*" maxlength="50" pattern='.{3,50}' title=""> <label for="wc_name-wpdiscuzuniqueid" class="wpdlb">Имя*</label> </div> <div class="wpdiscuz-item wc_email-wrapper wpd-has-icon"> <div class="wpd-field-icon"><i class="fas fa-at"></i> </div> <input id="wc_email-wpdiscuzuniqueid" value="" required='required' aria-required='true' class="wc_email wpd-field" type="email" name="wc_email" placeholder="Email*"/> <label for="wc_email-wpdiscuzuniqueid" class="wpdlb">Email*</label> </div> <div class="wpdiscuz-item wc_website-wrapper wpd-has-icon"> <div class="wpd-field-icon"><i class="fas fa-link"></i> </div> <input id="wc_website-wpdiscuzuniqueid" value="" class="wc_website wpd-field" type="text" name="wc_website" placeholder="Веб-сайт"/> <label for="wc_website-wpdiscuzuniqueid" class="wpdlb">Веб-сайт</label> </div> </div> <div class="wpd-form-col-right"> <div class="wc-field-submit"> <label class="wpd_label" wpd-tooltip="Сообщать о всех новых ответах на мои комментарии"> <input id="wc_notification_new_comment-wpdiscuzuniqueid" class="wc_notification_new_comment-wpdiscuzuniqueid wpd_label__checkbox" value="comment" type="checkbox" name="wpdiscuz_notification_type" /> <span class="wpd_label__text"> <span class="wpd_label__check"> <i class="fas fa-bell wpdicon wpdicon-on"></i> <i class="fas fa-bell-slash wpdicon wpdicon-off"></i> </span> </span> </label> <input id="wpd-field-submit-wpdiscuzuniqueid" class="wc_comm_submit wpd_not_clicked wpd-prim-button" type="submit" name="submit" value="Оставить комментарий" aria-label="Оставить комментарий"/> </div> </div> <div class="clearfix"></div> </div> </div> <input type="hidden" class="wpdiscuz_unique_id" value="wpdiscuzuniqueid" name="wpdiscuz_unique_id"> <p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="726bdea983" /></p><p style="display: none !important;" class="akismet-fields-container" data-prefix="ak_"><label>Δ<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_2" name="ak_js" value="48"/><script>document.getElementById( "ak_js_2" ).setAttribute( "value", ( new Date() ).getTime() );</script></p> </form> </div> </div> </div> <div id="wpd-threads" class="wpd-thread-wrapper"> <div class="wpd-thread-head"> <div class="wpd-thread-info " data-comments-count="0"> <span class='wpdtc' title='0'>0</span> комментариев </div> <div class="wpd-space"></div> <div class="wpd-thread-filter"> <div class="wpd-filter wpdf-reacted wpd_not_clicked wpdiscuz-hidden" wpd-tooltip="Самый популярный комментарий "> <i class="fas fa-bolt"></i></div> <div class="wpd-filter wpdf-hottest wpd_not_clicked wpdiscuz-hidden" wpd-tooltip="Цепочка популярного комментария"> <i class="fas fa-fire"></i></div> <div class="wpd-filter wpdf-sorting wpdiscuz-hidden"> <span class="wpdiscuz-sort-button wpdiscuz-date-sort-asc wpdiscuz-sort-button-active" data-sorting="oldest">Старые</span> <i class="fas fa-sort-down"></i> <div class="wpdiscuz-sort-buttons"> <span class="wpdiscuz-sort-button wpdiscuz-date-sort-desc" data-sorting="newest">Новые</span> <span class="wpdiscuz-sort-button wpdiscuz-vote-sort-up" data-sorting="by_vote">Популярные</span> </div> </div> </div> </div> <div class="wpd-comment-info-bar"> <div class="wpd-current-view"><i class="fas fa-quote-left"></i> Межтекстовые Отзывы </div> <div class="wpd-filter-view-all">Посмотреть все комментарии</div> </div> <div class="wpd-thread-list"> <div class="wpdiscuz-comment-pagination"> </div> </div> </div> </div> </div> <div id="wpdiscuz-loading-bar" class="wpdiscuz-loading-bar-unauth"></div> <div id="wpdiscuz-comment-message" class="wpdiscuz-comment-message-unauth"></div> <style> .related-posts-container { display: flex; flex-wrap: wrap; /* Позволяет карточкам переходить на следующую строку, если не помещаются */ justify-content: flex-start; /* Выравнивание карточек по левому краю */ gap: 20px; /* Промежуток между карточками */ } .related-post-card { display: flex; flex-direction: column; align-items: center; justify-content: center; margin: 10px; padding: 15px; background-color: #f9f9f9; border-radius: 10px; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); transition: all 0.3s ease; width: 180px; /* Уменьшаем ширину, чтобы они умещались в ряд */ text-align: center; } .related-post-card:hover { transform: translateY(-5px); box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2); } .related-p </style> <div class="related-posts-container"><li class='li1 related-post-card'><img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt='Основы парсинга на Python уроки и советы для начинающих' class='post-thumbnail' data-lazy-src="/wp-content/images/osnovi-parsinga-na-python-uroki-i-soveti-dlya-nachinayushix-razrabotchikov.jpg"><noscript><img src='/wp-content/images/osnovi-parsinga-na-python-uroki-i-soveti-dlya-nachinayushix-razrabotchikov.jpg' alt='Основы парсинга на Python уроки и советы для начинающих' class='post-thumbnail'></noscript><a href='https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/%d0%be%d1%81%d0%bd%d0%be%d0%b2%d1%8b-%d0%bf%d0%b0%d1%80%d1%81%d0%b8%d0%bd%d0%b3%d0%b0-%d0%bd%d0%b0-python-%d1%83%d1%80%d0%be%d0%ba%d0%b8-%d0%b8-%d1%81%d0%be%d0%b2%d0%b5%d1%82%d1%8b-%d0%b4%d0%bb%d1%8f/' title='Основы парсинга на Python уроки и советы для начинающих'>Основы парсинга на Python уроки и советы для начинающих</a></li><li class='li2 related-post-card'><img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt='Вывод массива POST в PHP руководство для разработчиков' class='post-thumbnail' data-lazy-src="/wp-content/images/kak-vivesti-massiv-post-v-php-polnoe-rukovodstvo-dlya-razrabotchikov.jpg"><noscript><img src='/wp-content/images/kak-vivesti-massiv-post-v-php-polnoe-rukovodstvo-dlya-razrabotchikov.jpg' alt='Вывод массива POST в PHP руководство для разработчиков' class='post-thumbnail'></noscript><a href='https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/%d0%b2%d1%8b%d0%b2%d0%be%d0%b4-%d0%bc%d0%b0%d1%81%d1%81%d0%b8%d0%b2%d0%b0-post-%d0%b2-php-%d1%80%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be-%d0%b4%d0%bb%d1%8f-%d1%80%d0%b0%d0%b7%d1%80/' title='Вывод массива POST в PHP руководство для разработчиков'>Вывод массива POST в PHP руководство для разработчиков</a></li><li class='li1 related-post-card'><img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt='Мультипроцессинг в Python практическое руководство для разработчиков' class='post-thumbnail' data-lazy-src="/wp-content/images/kak-effektivno-ispolzovat-multiprotsessing-v-python-rukovodstvo-dlya-.jpg"><noscript><img src='/wp-content/images/kak-effektivno-ispolzovat-multiprotsessing-v-python-rukovodstvo-dlya-.jpg' alt='Мультипроцессинг в Python практическое руководство для разработчиков' class='post-thumbnail'></noscript><a href='https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/%d0%bc%d1%83%d0%bb%d1%8c%d1%82%d0%b8%d0%bf%d1%80%d0%be%d1%86%d0%b5%d1%81%d1%81%d0%b8%d0%bd%d0%b3-%d0%b2-python-%d0%bf%d1%80%d0%b0%d0%ba%d1%82%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%be%d0%b5-%d1%80%d1%83/' title='Мультипроцессинг в Python практическое руководство для разработчиков'>Мультипроцессинг в Python практическое руководство для разработчиков</a></li><li class='li2 related-post-card'><img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt='Тип str в Python ключевые аспекты для продуктивной работы' class='post-thumbnail' data-lazy-src="/wp-content/images/vstroennij-tip-str-v-python-vse-chto-nuzhno-znat-dlya-effektivnogo-progr.jpg"><noscript><img src='/wp-content/images/vstroennij-tip-str-v-python-vse-chto-nuzhno-znat-dlya-effektivnogo-progr.jpg' alt='Тип str в Python ключевые аспекты для продуктивной работы' class='post-thumbnail'></noscript><a href='https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/%d1%82%d0%b8%d0%bf-str-%d0%b2-python-%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%b0%d1%81%d0%bf%d0%b5%d0%ba%d1%82%d1%8b-%d0%b4%d0%bb%d1%8f-%d0%bf%d1%80%d0%be%d0%b4%d1%83%d0%ba%d1%82%d0%b8/' title='Тип str в Python ключевые аспекты для продуктивной работы'>Тип str в Python ключевые аспекты для продуктивной работы</a></li><li class='li1 related-post-card'><img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt='Примеры декораторов Python для улучшения качества кода' class='post-thumbnail' data-lazy-src="/wp-content/images/primeri-dekoratorov-v-python-kak-effektivno-ispolzovat-dlya-uluchsheniya.jpg"><noscript><img src='/wp-content/images/primeri-dekoratorov-v-python-kak-effektivno-ispolzovat-dlya-uluchsheniya.jpg' alt='Примеры декораторов Python для улучшения качества кода' class='post-thumbnail'></noscript><a href='https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/%d0%bf%d1%80%d0%b8%d0%bc%d0%b5%d1%80%d1%8b-%d0%b4%d0%b5%d0%ba%d0%be%d1%80%d0%b0%d1%82%d0%be%d1%80%d0%be%d0%b2-python-%d0%b4%d0%bb%d1%8f-%d1%83%d0%bb%d1%83%d1%87%d1%88%d0%b5%d0%bd%d0%b8%d1%8f-%d0%ba/' title='Примеры декораторов Python для улучшения качества кода'>Примеры декораторов Python для улучшения качества кода</a></li><li class='li2 related-post-card'><img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt='List в Python полное руководство для начинающих' class='post-thumbnail' data-lazy-src="/wp-content/images/chto-takoe-list-v-python-polnoe-rukovodstvo-dlya-nachinayushix.jpg"><noscript><img src='/wp-content/images/chto-takoe-list-v-python-polnoe-rukovodstvo-dlya-nachinayushix.jpg' alt='List в Python полное руководство для начинающих' class='post-thumbnail'></noscript><a href='https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/list-%d0%b2-python-%d0%bf%d0%be%d0%bb%d0%bd%d0%be%d0%b5-%d1%80%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be-%d0%b4%d0%bb%d1%8f-%d0%bd%d0%b0%d1%87%d0%b8%d0%bd%d0%b0%d1%8e%d1%89%d0%b8/' title='List в Python полное руководство для начинающих'>List в Python полное руководство для начинающих</a></li></div><br> </main><!-- #main --> </div><!-- #primary --> </div><!-- micro --> <aside id="secondary" class="widget-area" itemscope itemtype="http://schema.org/WPSideBar"> <div id="search-2" class="widget widget_search"> <form role="search" method="get" id="searchform" action="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/" class="search-form"> <label class="screen-reader-text" for="s">Поиск: </label> <input type="text" value="" name="s" id="s" class="search-form__text"> <button type="submit" id="searchsubmit" class="search-form__submit"></button> </form></div><div id="wpshop_articles-2" class="widget widget_wpshop_articles"><div class="widget-header">Полезное</div> <div class="widget-article"> <div class="widget-article__image"> <a href="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/%d0%b4%d0%be%d0%b1%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-%d1%81%d1%81%d1%8b%d0%bb%d0%ba%d0%b8-%d0%bd%d0%b0-%d1%84%d0%b0%d0%b9%d0%bb-%d0%b2-%d1%8d%d0%bb%d0%b5%d0%bc%d0%b5%d0%bd%d1%82-head-html/"> <img width="330" height="140" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20330%20140'%3E%3C/svg%3E" class="attachment-thumb-wide size-thumb-wide wp-post-image" alt="" decoding="async" data-lazy-srcset="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/wp-content/uploads/2025/04/2149901783-330x140.jpg 330w, https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/wp-content/uploads/2025/04/2149901783-770x330.jpg 770w" data-lazy-sizes="auto, (max-width: 330px) 100vw, 330px" data-lazy-src="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/wp-content/uploads/2025/04/2149901783-330x140.jpg" /><noscript><img width="330" height="140" src="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/wp-content/uploads/2025/04/2149901783-330x140.jpg" class="attachment-thumb-wide size-thumb-wide wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/wp-content/uploads/2025/04/2149901783-330x140.jpg 330w, https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/wp-content/uploads/2025/04/2149901783-770x330.jpg 770w" sizes="auto, (max-width: 330px) 100vw, 330px" /></noscript> </a> </div> <div class="widget-article__body"> <div class="widget-article__title"><a href="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/%d0%b4%d0%be%d0%b1%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-%d1%81%d1%81%d1%8b%d0%bb%d0%ba%d0%b8-%d0%bd%d0%b0-%d1%84%d0%b0%d0%b9%d0%bb-%d0%b2-%d1%8d%d0%bb%d0%b5%d0%bc%d0%b5%d0%bd%d1%82-head-html/">Добавление ссылки на файл в элемент head HTML главной страницы</a></div> </div> </div> <div class="widget-article"> <div class="widget-article__image"> <a href="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/%d0%be%d0%b1%d1%8a%d0%b5%d0%ba%d1%82%d0%bd%d0%be-%d0%be%d1%80%d0%b8%d0%b5%d0%bd%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%bd%d0%be%d0%b5-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d0%b8-2/"> <img width="330" height="140" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20330%20140'%3E%3C/svg%3E" class="attachment-thumb-wide size-thumb-wide wp-post-image" alt="" decoding="async" data-lazy-srcset="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/wp-content/uploads/2025/04/programming-background-with-person-working-with-codes-computer-330x140.jpg 330w, https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/wp-content/uploads/2025/04/programming-background-with-person-working-with-codes-computer-770x330.jpg 770w" data-lazy-sizes="auto, (max-width: 330px) 100vw, 330px" data-lazy-src="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/wp-content/uploads/2025/04/programming-background-with-person-working-with-codes-computer-330x140.jpg" /><noscript><img width="330" height="140" src="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/wp-content/uploads/2025/04/programming-background-with-person-working-with-codes-computer-330x140.jpg" class="attachment-thumb-wide size-thumb-wide wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/wp-content/uploads/2025/04/programming-background-with-person-working-with-codes-computer-330x140.jpg 330w, https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/wp-content/uploads/2025/04/programming-background-with-person-working-with-codes-computer-770x330.jpg 770w" sizes="auto, (max-width: 330px) 100vw, 330px" /></noscript> </a> </div> <div class="widget-article__body"> <div class="widget-article__title"><a href="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/%d0%be%d0%b1%d1%8a%d0%b5%d0%ba%d1%82%d0%bd%d0%be-%d0%be%d1%80%d0%b8%d0%b5%d0%bd%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%bd%d0%be%d0%b5-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d0%b8-2/">Объектно ориентированное программирование на Python для новичков</a></div> </div> </div> <div class="widget-article"> <div class="widget-article__image"> <a href="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/%d0%ba%d0%b0%d0%ba-%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%b8%d1%82%d1%8c-%d1%86%d0%b2%d0%b5%d1%82-%d1%82%d0%b5%d0%ba%d1%81%d1%82%d0%b0-%d0%b2-html-%d1%82%d0%b0%d0%b1%d0%bb%d0%b8%d1%86%d0%b5/"> <img width="330" height="140" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20330%20140'%3E%3C/svg%3E" class="attachment-thumb-wide size-thumb-wide wp-post-image" alt="" decoding="async" data-lazy-srcset="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/wp-content/uploads/2025/04/122370-330x140.jpg 330w, https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/wp-content/uploads/2025/04/122370-770x330.jpg 770w" data-lazy-sizes="auto, (max-width: 330px) 100vw, 330px" data-lazy-src="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/wp-content/uploads/2025/04/122370-330x140.jpg" /><noscript><img width="330" height="140" src="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/wp-content/uploads/2025/04/122370-330x140.jpg" class="attachment-thumb-wide size-thumb-wide wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/wp-content/uploads/2025/04/122370-330x140.jpg 330w, https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/wp-content/uploads/2025/04/122370-770x330.jpg 770w" sizes="auto, (max-width: 330px) 100vw, 330px" /></noscript> </a> </div> <div class="widget-article__body"> <div class="widget-article__title"><a href="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/%d0%ba%d0%b0%d0%ba-%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%b8%d1%82%d1%8c-%d1%86%d0%b2%d0%b5%d1%82-%d1%82%d0%b5%d0%ba%d1%81%d1%82%d0%b0-%d0%b2-html-%d1%82%d0%b0%d0%b1%d0%bb%d0%b8%d1%86%d0%b5/">Как установить цвет текста в HTML таблице пошаговое руководство</a></div> </div> </div> <div class="widget-article"> <div class="widget-article__image"> <a href="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d0%b0-%d0%be%d0%b1%d1%83%d1%87%d0%b5%d0%bd%d0%b8%d1%8f-python-%d0%b4%d0%bb%d1%8f-%d1%83%d1%81%d0%bf%d0%b5%d1%88%d0%bd%d0%be%d0%b9-%d0%ba%d0%b0%d1%80/"> <img width="330" height="140" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20330%20140'%3E%3C/svg%3E" class="attachment-thumb-wide size-thumb-wide wp-post-image" alt="" decoding="async" data-lazy-src="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/wp-content/uploads/2025/04/programma-dopolnitelnogo-obrazovaniya-po-python-izuchite-yazik-programmi-330x140.jpg" /><noscript><img width="330" height="140" src="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/wp-content/uploads/2025/04/programma-dopolnitelnogo-obrazovaniya-po-python-izuchite-yazik-programmi-330x140.jpg" class="attachment-thumb-wide size-thumb-wide wp-post-image" alt="" decoding="async" loading="lazy" /></noscript> </a> </div> <div class="widget-article__body"> <div class="widget-article__title"><a href="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d0%b0-%d0%be%d0%b1%d1%83%d1%87%d0%b5%d0%bd%d0%b8%d1%8f-python-%d0%b4%d0%bb%d1%8f-%d1%83%d1%81%d0%bf%d0%b5%d1%88%d0%bd%d0%be%d0%b9-%d0%ba%d0%b0%d1%80/">Программа обучения Python для успешной карьеры в IT</a></div> </div> </div> </div> </aside><!-- #secondary --> </div><!-- #content --> <div class="footer-navigation container"> <div class="main-navigation-inner "> <div class="menu-niz-container"><ul id="footer_menu" class="menu"><li id="menu-item-41" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-41"><a href="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/pravoobladatelyam/">Правообладателям</a></li> <li id="menu-item-42" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-42"><a href="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/politika-konfidentsialnosti/">Политика конфиденциальности</a></li> <li id="menu-item-66" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-66"><a href="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/politika-cookies/">Политика cookies</a></li> <li id="menu-item-76" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-76"><a href="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/o-sayte/">О сайте</a></li> <li id="menu-item-77" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-77"><a href="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/%d0%ba%d0%be%d0%bd%d1%82%d0%b0%d0%ba%d1%82%d1%8b/">Контакты</a></li> </ul></div> </div> </div> <footer class="site-footer container" itemscope itemtype="http://schema.org/WPFooter"> <div class="site-footer-inner "> <form role="search" method="get" id="searchform" class="searchform" action="https://vkontakte-helper.ru/"> <input type="text" value="" name="s" id="s"> <input type="submit" id="searchsubmit" value="Поиск"> </form> <button type="button" class="scrolltop js-scrolltop"></button> <div class="footer-info"> © 2025 Большой экспертный помощник программисту <div class="footer-text">Внимание! Информация, опубликованная на сайте, носит исключительно ознакомительный характер и не является рекомендацией к применению. Часть материалов предоставлена пользователями и посетителями сайта. Администрация не несет ответственности за их содержание.</div> </div><!-- .site-info --> <div class="footer-counters"> </div> </div><!-- .site-footer-inner --> </footer><!-- .site-footer --> </div><!-- #page --> <script type="speculationrules"> {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/root\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} </script> <script>var pseudo_links = document.querySelectorAll(".pseudo-clearfy-link");for (var i=0;i<pseudo_links.length;i++ ) { pseudo_links[i].addEventListener("click", function(e){ window.open( e.target.getAttribute("data-uri") ); }); }</script><span id='wpdUserContentInfoAnchor' style='display:none;' rel='#wpdUserContentInfo' data-wpd-lity>wpDiscuz</span><div id='wpdUserContentInfo' style='overflow:auto;background:#FDFDF6;padding:20px;width:600px;max-width:100%;border-radius:6px;' class='lity-hide'></div><div id='wpd-editor-source-code-wrapper-bg'></div><div id='wpd-editor-source-code-wrapper'><textarea id='wpd-editor-source-code'></textarea><button id='wpd-insert-source-code'>Insert</button><input type='hidden' id='wpd-editor-uid' /></div><script type="text/javascript" src="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/wp-includes/js/dist/hooks.min.js" id="wp-hooks-js"></script> <script type="text/javascript" src="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/wp-includes/js/dist/i18n.min.js" id="wp-i18n-js"></script> <script type="text/javascript" id="wp-i18n-js-after"> /* <![CDATA[ */ wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); /* ]]> */ </script> <script type="text/javascript" src="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/wp-content/plugins/contact-form-7/includes/swv/js/index.js" id="swv-js"></script> <script type="text/javascript" id="contact-form-7-js-translations"> /* <![CDATA[ */ ( function( domain, translations ) { var localeData = translations.locale_data[ domain ] || translations.locale_data.messages; localeData[""].domain = domain; wp.i18n.setLocaleData( localeData, domain ); } )( "contact-form-7", {"translation-revision-date":"2025-06-26 17:48:45+0000","generator":"GlotPress\/4.0.1","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"This contact form is placed in the wrong place.":["\u042d\u0442\u0430 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043d\u0430\u044f \u0444\u043e\u0440\u043c\u0430 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0430 \u0432 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435."],"Error:":["\u041e\u0448\u0438\u0431\u043a\u0430:"]}},"comment":{"reference":"includes\/js\/index.js"}} ); /* ]]> */ </script> <script type="text/javascript" id="contact-form-7-js-before"> /* <![CDATA[ */ var wpcf7 = { "api": { "root": "https:\/\/xn----7sbbh7akdldfh0ai3n.xn--p1ai\/wp-json\/", "namespace": "contact-form-7\/v1" } }; /* ]]> */ </script> <script type="text/javascript" src="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/wp-content/plugins/contact-form-7/includes/js/index.js" id="contact-form-7-js"></script> <script type="text/javascript" src="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/wp-content/themes/root/js/scripts.js" id="root-scripts-js"></script> <script type="text/javascript" src="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/wp-includes/js/comment-reply.min.js" id="comment-reply-js" async="async" data-wp-strategy="async"></script> <script type="text/javascript" id="q2w3_fixed_widget-js-extra"> /* <![CDATA[ */ var q2w3_sidebar_options = [{"use_sticky_position":false,"margin_top":0,"margin_bottom":0,"stop_elements_selectors":"","screen_max_width":0,"screen_max_height":0,"widgets":[]}]; /* ]]> */ </script> <script type="text/javascript" src="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/wp-content/plugins/q2w3-fixed-widget/js/frontend.min.js" id="q2w3_fixed_widget-js"></script> <script type="text/javascript" id="wpdiscuz-combo-js-js-extra"> /* <![CDATA[ */ var wpdiscuzAjaxObj = {"wc_hide_replies_text":"\u0421\u043f\u0440\u044f\u0442\u0430\u0442\u044c \u043e\u0442\u0432\u0435\u0442\u044b","wc_show_replies_text":"\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u043e\u0442\u0432\u0435\u0442\u043e\u0432","wc_msg_required_fields":"\u0417\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043f\u043e\u043b\u044f","wc_invalid_field":"\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043b\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u044b \u043d\u0435\u0432\u0435\u0440\u043d\u043e","wc_error_empty_text":"\u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u044d\u0442\u043e \u043f\u043e\u043b\u0435, \u0447\u0442\u043e\u0431\u044b \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c","wc_error_url_text":"url \u043d\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439","wc_error_email_text":"\u0430\u0434\u0440\u0435\u0441 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u044b \u043d\u0435\u0432\u0435\u0440\u0435\u043d","wc_invalid_captcha":"\u041d\u0435\u0432\u0435\u0440\u043d\u043e \u0432\u0432\u0435\u0434\u0435\u043d \u043a\u043e\u0434","wc_login_to_vote":"\u0412\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0432\u043e\u0439\u0442\u0438 , \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u0442\u044c","wc_deny_voting_from_same_ip":"\u0412\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u0442\u044c \u0437\u0430 \u044d\u0442\u043e\u0442 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439","wc_self_vote":"\u0412\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u0442\u044c \u0437\u0430 \u0441\u0432\u043e\u0439 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439","wc_vote_only_one_time":"\u0412\u044b \u0443\u0436\u0435 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b\u0438 \u0437\u0430 \u044d\u0442\u043e\u0442 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439","wc_voting_error":"\u041e\u0448\u0438\u0431\u043a\u0430 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u044f","wc_banned_user":"You are banned","wc_comment_edit_not_possible":"\u0418\u0437\u0432\u0438\u043d\u0438\u0442\u0435, \u044d\u0442\u043e\u0442 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u043b\u044c\u0437\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c","wc_comment_not_updated":"\u0418\u0437\u0432\u0438\u043d\u0438\u0442\u0435, \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u043d\u0435 \u0431\u044b\u043b \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d","wc_comment_not_edited":"\u0412\u044b \u043d\u0435 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439","wc_msg_input_min_length":"\u0412\u0432\u043e\u0434 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0439","wc_msg_input_max_length":"\u0412\u0432\u043e\u0434 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0434\u043b\u0438\u043d\u043d\u044b\u0439","wc_spoiler_title":"\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u043f\u043e\u0439\u043b\u0435\u0440\u0430","wc_cannot_rate_again":"\u0412\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043d\u043e\u0432\u0430 \u043e\u0446\u0435\u043d\u0438\u0442\u044c","wc_not_allowed_to_rate":"\u0412\u0430\u043c \u043d\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0437\u0434\u0435\u0441\u044c \u043e\u0446\u0435\u043d\u043a\u0443","wc_confirm_rate_edit":"Are you sure you want to edit your rate?","wc_follow_user":"\u041f\u043e\u0434\u043f\u0438\u0441\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f","wc_unfollow_user":"\u041e\u0442\u043f\u0438\u0441\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f","wc_follow_success":"\u0412\u044b \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043b\u0438\u0441\u044c \u043d\u0430 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u044d\u0442\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u0440\u0430","wc_follow_canceled":"\u0412\u044b \u043f\u0440\u0438\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0443 \u043d\u0430 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u044d\u0442\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u0440\u0430.","wc_follow_email_confirm":"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0441\u0432\u043e\u0439 email \u0438 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0443.","wc_follow_email_confirm_fail":"\u041e\u0447\u0435\u043d\u044c \u0436\u0430\u043b\u044c, \u043d\u043e \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043f\u0438\u0441\u044c\u043c\u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f.","wc_follow_login_to_follow":"\u0410\u0432\u0442\u043e\u0440\u0438\u0437\u0443\u0439\u0442\u0435\u0441\u044c \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.","wc_follow_impossible":"\u041e\u0447\u0435\u043d\u044c \u0436\u0430\u043b\u044c, \u043d\u043e \u0432\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.","wc_follow_not_added":"\u041f\u043e\u0434\u043f\u0438\u0441\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u043e\u0437\u0436\u0435.","is_user_logged_in":"","commentListLoadType":"0","commentListUpdateType":"0","commentListUpdateTimer":"60","liveUpdateGuests":"0","wordpressThreadCommentsDepth":"5","wordpressIsPaginate":"0","commentTextMaxLength":"0","replyTextMaxLength":"0","commentTextMinLength":"1","replyTextMinLength":"1","storeCommenterData":"100000","socialLoginAgreementCheckbox":"1","enableFbLogin":"0","fbUseOAuth2":"0","enableFbShare":"0","facebookAppID":"","facebookUseOAuth2":"0","enableGoogleLogin":"0","googleClientID":"","googleClientSecret":"","cookiehash":"92e3ffaa65eb5bdef2159643a08f6b76","isLoadOnlyParentComments":"0","scrollToComment":"1","commentFormView":"collapsed","enableDropAnimation":"1","isNativeAjaxEnabled":"1","userInteractionCheck":"1","enableBubble":"0","bubbleLiveUpdate":"0","bubbleHintTimeout":"45","bubbleHintHideTimeout":"10","cookieHideBubbleHint":"wpdiscuz_hide_bubble_hint","bubbleHintShowOnce":"1","bubbleHintCookieExpires":"7","bubbleShowNewCommentMessage":"1","bubbleLocation":"content_left","firstLoadWithAjax":"0","wc_copied_to_clipboard":"\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d \u0432 \u0431\u0443\u0444\u0435\u0440 \u043e\u0431\u043c\u0435\u043d\u0430.","inlineFeedbackAttractionType":"blink","loadRichEditor":"1","wpDiscuzReCaptchaSK":"","wpDiscuzReCaptchaTheme":"light","wpDiscuzReCaptchaVersion":"2.0","wc_captcha_show_for_guest":"0","wc_captcha_show_for_members":"0","wpDiscuzIsShowOnSubscribeForm":"0","wmuEnabled":"1","wmuInput":"wmu_files","wmuMaxFileCount":"1","wmuMaxFileSize":"2097152","wmuPostMaxSize":"104857600","wmuIsLightbox":"1","wmuMimeTypes":{"jpg":"image\/jpeg","jpeg":"image\/jpeg","jpe":"image\/jpeg","gif":"image\/gif","png":"image\/png","bmp":"image\/bmp","tiff":"image\/tiff","tif":"image\/tiff","ico":"image\/x-icon"},"wmuPhraseConfirmDelete":"\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u0435?","wmuPhraseNotAllowedFile":"\u041d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0439 \u0442\u0438\u043f \u0444\u0430\u0439\u043b\u0430","wmuPhraseMaxFileCount":"\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 1","wmuPhraseMaxFileSize":"\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 2MB","wmuPhrasePostMaxSize":"\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f 100MB","wmuPhraseDoingUpload":"\u0418\u0434\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430! \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u0434\u043e\u0436\u0434\u0438\u0442\u0435.","msgEmptyFile":"File is empty. Please upload something more substantial. This error could also be caused by uploads being disabled in your php.ini or by post_max_size being defined as smaller than upload_max_filesize in php.ini.","msgPostIdNotExists":"ID \u0437\u0430\u043f\u0438\u0441\u0438 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442","msgUploadingNotAllowed":"\u0418\u0437\u0432\u0438\u043d\u0438\u0442\u0435, \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0441\u0442\u0430 \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u0430","msgPermissionDenied":"\u0423 \u0432\u0430\u0441 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u0430\u0432 \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f","wmuKeyImages":"images","wmuSingleImageWidth":"auto","wmuSingleImageHeight":"200","previewTemplate":"<div class=\"wmu-preview [PREVIEW_TYPE_CLASS]\" title=\"[PREVIEW_TITLE]\" data-wmu-type=\"[PREVIEW_TYPE]\" data-wmu-attachment=\"[PREVIEW_ID]\">\r\n <div class=\"wmu-preview-remove\">\r\n <img class=\"wmu-preview-img\" src=\"[PREVIEW_ICON]\">\r\n <div class=\"wmu-file-name\">[PREVIEW_FILENAME]<\/div>\r\n <!-- <div class=\"wmu-delete\">\u00a0<\/div>-->\r\n <\/div>\r\n<\/div>\r\n","isUserRated":"0","version":"7.6.33","wc_post_id":"4679","isCookiesEnabled":"1","loadLastCommentId":"0","dataFilterCallbacks":[],"phraseFilters":[],"scrollSize":"32","url":"https:\/\/xn----7sbbh7akdldfh0ai3n.xn--p1ai\/wp-admin\/admin-ajax.php","customAjaxUrl":"https:\/\/xn----7sbbh7akdldfh0ai3n.xn--p1ai\/wp-content\/plugins\/wpdiscuz\/utils\/ajax\/wpdiscuz-ajax.php","bubbleUpdateUrl":"https:\/\/xn----7sbbh7akdldfh0ai3n.xn--p1ai\/wp-json\/wpdiscuz\/v1\/update","restNonce":"80eab56e2f","is_rate_editable":"0","menu_icon":"https:\/\/xn----7sbbh7akdldfh0ai3n.xn--p1ai\/wp-content\/plugins\/wpdiscuz\/assets\/img\/plugin-icon\/wpdiscuz-svg.svg","menu_icon_hover":"https:\/\/xn----7sbbh7akdldfh0ai3n.xn--p1ai\/wp-content\/plugins\/wpdiscuz\/assets\/img\/plugin-icon\/wpdiscuz-svg_hover.svg","is_email_field_required":"1"}; var wpdiscuzUCObj = {"msgConfirmDeleteComment":"\u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439?","msgConfirmCancelSubscription":"\u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0442\u043c\u0435\u043d\u0438\u0442\u044c \u044d\u0442\u0443 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0443?","msgConfirmCancelFollow":"\u0423\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0442\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0443?","additionalTab":"0"}; /* ]]> */ </script> <script type="text/javascript" id="wpdiscuz-combo-js-js-before"> /* <![CDATA[ */ var wpdiscuzEditorOptions = { modules: { toolbar: "", counter: { uniqueID: "", commentmaxcount : 0, replymaxcount : 0, commentmincount : 1, replymincount : 1, }, }, wc_be_the_first_text: "\u041e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u043f\u0435\u0440\u0432\u044b\u0439 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439!", wc_comment_join_text: "\u041f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0441\u044f \u043a \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u044e", theme: 'snow', debug: 'error' }; /* ]]> */ </script> <script type="text/javascript" src="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/wp-content/plugins/wpdiscuz/assets/js/wpdiscuz-combo.min.js" id="wpdiscuz-combo-js-js"></script> <script defer type="text/javascript" src="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/wp-content/plugins/akismet/_inc/akismet-frontend.js" id="akismet-frontend-js"></script> <script>window.lazyLoadOptions = [{ elements_selector: "img[data-lazy-src],.rocket-lazyload,iframe[data-lazy-src]", data_src: "lazy-src", data_srcset: "lazy-srcset", data_sizes: "lazy-sizes", class_loading: "lazyloading", class_loaded: "lazyloaded", threshold: 300, callback_loaded: function(element) { if ( element.tagName === "IFRAME" && element.dataset.rocketLazyload == "fitvidscompatible" ) { if (element.classList.contains("lazyloaded") ) { if (typeof window.jQuery != "undefined") { if (jQuery.fn.fitVids) { jQuery(element).parent().fitVids(); } } } } }},{ elements_selector: ".rocket-lazyload", data_src: "lazy-src", data_srcset: "lazy-srcset", data_sizes: "lazy-sizes", class_loading: "lazyloading", class_loaded: "lazyloaded", threshold: 300, }]; window.addEventListener('LazyLoad::Initialized', function (e) { var lazyLoadInstance = e.detail.instance; if (window.MutationObserver) { var observer = new MutationObserver(function(mutations) { var image_count = 0; var iframe_count = 0; var rocketlazy_count = 0; mutations.forEach(function(mutation) { for (var i = 0; i < mutation.addedNodes.length; i++) { if (typeof mutation.addedNodes[i].getElementsByTagName !== 'function') { continue; } if (typeof mutation.addedNodes[i].getElementsByClassName !== 'function') { continue; } images = mutation.addedNodes[i].getElementsByTagName('img'); is_image = mutation.addedNodes[i].tagName == "IMG"; iframes = mutation.addedNodes[i].getElementsByTagName('iframe'); is_iframe = mutation.addedNodes[i].tagName == "IFRAME"; rocket_lazy = mutation.addedNodes[i].getElementsByClassName('rocket-lazyload'); image_count += images.length; iframe_count += iframes.length; rocketlazy_count += rocket_lazy.length; if(is_image){ image_count += 1; } if(is_iframe){ iframe_count += 1; } } } ); if(image_count > 0 || iframe_count > 0 || rocketlazy_count > 0){ lazyLoadInstance.update(); } } ); var b = document.getElementsByTagName("body")[0]; var config = { childList: true, subtree: true }; observer.observe(b, config); } }, false);</script><script data-no-minify="1" async src="https://xn----7sbbh7akdldfh0ai3n.xn--p1ai/wp-content/plugins/rocket-lazy-load/assets/js/16.1/lazyload.min.js"></script><!-- <div class="flat_ads_block" style="width: 336px; height: 280px;" id="flat_ads_block_id_1"> <div class="flat_slide_cross"></div> <div class="wrap_flat_ads_block"> <div class="dvxtm5d4ae5adba5b5" ><!-- Yandex.RTB R-A-514351-1 --> <!-- <div id="yandex_rtb_R-A-514351-1"></div> <script type="text/javascript"> (function(w, d, n, s, t) { w[n] = w[n] || []; w[n].push(function() { Ya.Context.AdvManager.render({ blockId: "R-A-514351-1", renderTo: "yandex_rtb_R-A-514351-1", async: true }); }); t = d.getElementsByTagName("script")[0]; s = d.createElement("script"); s.type = "text/javascript"; s.src = "//an.yandex.ru/system/context.js"; s.async = true; t.parentNode.insertBefore(s, t); })(this, this.document, "yandexContextAsyncCallbacks"); </script></div><style type="text/css"> @media screen and (min-width: 1201px) { .dvxtm5d4ae5adba5b5 { display: block; } } @media screen and (min-width: 993px) and (max-width: 1200px) { .dvxtm5d4ae5adba5b5 { display: block; } } @media screen and (min-width: 769px) and (max-width: 992px) { .dvxtm5d4ae5adba5b5 { display: block; } } @media screen and (min-width: 768px) and (max-width: 768px) { .dvxtm5d4ae5adba5b5 { display: block; } } @media screen and (max-width: 767px) { .dvxtm5d4ae5adba5b5 { display: block; } } </style> </div> </div> <!-- script type="text/javascript"> $(document).ready(function() { console.log('ready'); $(window).on('scroll', function(){ if($(this).scrollTop() > 1000){ $('#flat_ads_block_id_1').addClass('left_slide_flat_panel'); } else { $('#flat_ads_block_id_1').removeClass('left_slide_flat_panel'); } }); }); </script --> <!-- было <style> #flat_ads_block_id_1 { position: fixed; right: calc(100% + 22px); bottom: 0px; transform-origin: center; transform: translateX(0); transition: all 0.3s ease; z-index: 998; } #flat_ads_block_id_1.left_slide_flat_panel { transform: translateX(calc(100% + 22px)); } #flat_ads_block_id_1 .flat_slide_cross { position: absolute; width: 22px; height: 22px; top: -22px; right: -10px; z-index: 1; background: #000 url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDIwMDEwOTA0Ly9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy1TVkctMjAwMTA5MDQvRFREL3N2ZzEwLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4wIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiB2aWV3Qm94PSIwIDAgMTc1LjAwMDAwMCAxNzYuMDAwMDAwIgogcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCI+CjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuMDAwMDAwLDE3Ni4wMDAwMDApIHNjYWxlKDAuMTAwMDAwLC0wLjEwMDAwMCkiCmZpbGw9IiNmZmYiIHN0cm9rZT0ibm9uZSI+CjxwYXRoIGQ9Ik02MzIgMTEyOCBsLTYyIC02MyA5MSAtOTEgOTEgLTkxIC05MSAtOTUgLTkwIC05NSA2NSAtNjQgNjQgLTY0IDkyCjkzIDkzIDkyIDkyIC05MiA5MyAtOTIgNjAgNTkgYzMzIDMzIDYwIDY0IDYwIDY5IDAgNiAtMzkgNTAgLTg3IDk4IGwtODggODgKODggODggYzQ4IDQ4IDg3IDkyIDg3IDk4IDAgMTIgLTExMiAxMjQgLTEyNSAxMjQgLTUgMCAtNDkgLTM5IC05NyAtODcgbC04OAotODggLTg4IDg4IGMtNDggNDggLTkwIDg3IC05MiA4NyAtMyAwIC0zMyAtMjggLTY4IC02MnoiLz4KPC9nPgo8L3N2Zz4K) no-repeat center / cover; cursor: pointer; border-radius: 100%; } #flat_ads_block_id_1 .flat_slide_cross:hover { background: #444 url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDIwMDEwOTA0Ly9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy1TVkctMjAwMTA5MDQvRFREL3N2ZzEwLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4wIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiB2aWV3Qm94PSIwIDAgMTc1LjAwMDAwMCAxNzYuMDAwMDAwIgogcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCI+CjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuMDAwMDAwLDE3Ni4wMDAwMDApIHNjYWxlKDAuMTAwMDAwLC0wLjEwMDAwMCkiCmZpbGw9IiNmZmYiIHN0cm9rZT0ibm9uZSI+CjxwYXRoIGQ9Ik02MzIgMTEyOCBsLTYyIC02MyA5MSAtOTEgOTEgLTkxIC05MSAtOTUgLTkwIC05NSA2NSAtNjQgNjQgLTY0IDkyCjkzIDkzIDkyIDkyIC05MiA5MyAtOTIgNjAgNTkgYzMzIDMzIDYwIDY0IDYwIDY5IDAgNiAtMzkgNTAgLTg3IDk4IGwtODggODgKODggODggYzQ4IDQ4IDg3IDkyIDg3IDk4IDAgMTIgLTExMiAxMjQgLTEyNSAxMjQgLTUgMCAtNDkgLTM5IC05NyAtODcgbC04OAotODggLTg4IDg4IGMtNDggNDggLTkwIDg3IC05MiA4NyAtMyAwIC0zMyAtMjggLTY4IC02MnoiLz4KPC9nPgo8L3N2Zz4K) no-repeat center / cover } </style> --> </body> </html>