Набор Python-скриптов для автоматизации рутинных задач SEO-специалиста
Статья будет полезна специалистам, которые хотели бы автоматизировать свою работу. Для работы со скриптами потребуются минимальные знания программирования и установленные библиотеки. Для каждого примера в конце есть ссылка на полный код, который нужно открывать в Jupyter Notebook. Больше скриптов в Telegram-канале seo_python.
С каждым годом процесс оптимизации требует всё больше технических навыков. Среди текущих требований к специалисту часто указывают, что необходимо знание какого-либо языка программирования, например, Python.
Python — простой и лаконичный язык, позволяющий автоматизировать значительную часть рутинных задач и анализировать данные, что особенно актуально при работе с крупными проектами.
Одно из преимуществ языка — наличие большого количества написанных библиотек. Так как многие сервисы отдают свои данные по API, у специалистов есть возможность без глубоких знаний программирования писать скрипты для решения рабочих задач.
В западных блогах часто можно встретить подборки специалистов, которые делятся своими наработками. В рунете такой информации пока мало, поэтому в этой статье я бы хотел рассказать о полезных библиотеках и поделиться своим набором скриптов, которые постоянно использую в работе.
Этот способ подходит для случаев, когда необходимо быстро запустить и протестировать турбо-страницы. Рекомендую использовать скрипт для генерации RSS-канала для статейных сайтов, контент которых изменяется редко. Этот метод подходит для быстрого запуска страниц с целью проверить теорию и посмотреть результаты внедрения технологии «Яндекса».
Ниже описана последовательность работ.
С помощью Screaming frog seo spider или Netpeak Spider парсим контент страниц, для которых будем подключать турбо-страницы.
На этом этапе подготавливаем данные для обязательных элементов, необходимых при формировании XML-файла.
Используя XPath, парсим контент страниц со всей HTML-разметкой. Копируем через панель разработчика или пишем свой запрос (например, //div[@class=’entry-content entry—item’]).
Экспортируем полученные данные в CSV. В результате в CSV-файле должно быть три столбца:
Подключаем нужные библиотеки.
Считываем файл с подготовленными данными.
data[‘Address’].str.contains(‘page’)] # Фильтруем страницы не содержащие «» # data = data.drop(index=0)
Выводим информацию о количестве строк в файле и итоговом количестве RSS-файлов, которые будут сгенерированы.
Формируем структуру RSS-канала. Создаём функцию create_xml, отвечающую за создание начала файла.
Функция close_xml будет закрывать файл.
В функцию data_for_rss передаём номер первой и последней строки. Для этого промежутка будем формировать RSS.
Делаем проверку размера получившихся фидов. Размер XML-файла не должен превышать 15 МБ. Если размер получился больше, изменяем количество строк в одном файле, изменяя значение переменной rows_in_rss.
Финальный шаг — генерация фидов.
Остаётся добавить RSS в личном кабинете «Яндекс.Вебмастера» и настроить меню, лого, счётчики систем аналитики.
Ссылка на скрипт (открывать в Jupyter Notebook).
ТЗ для копирайтеров — довольно рутинная работа, которая занимает много времени у специалиста. Ниже рассмотрим три варианта автоматизации этого процесса, используя различные сервисы:
Ниже рассмотрим все варианты, для каждого я распишу плюсы и минусы этих подходов. Стоит помнить, что результаты, которые выдают сервисы, стоит перепроверять. Так как везде есть свои технические нюансы.
Рассмотрим случай, когда нужно написать статью, но у вас нет готового семантического ядра. Для этого подхода нам понадобится только основной маркерный запрос статьи.
Подключаем необходимые библиотеки.
Для получения ключевых слов по нужным нам маркерным запросам будем использовать метод url_keywords API Serpstat. Этот метод возвращает ключевые фразы в топе поисковой системы по заданному URL. Получать будем видимость конкурентов по URL, которые находятся в топе выбранной поисковой системы.
Для работы берём пример кода из документации и оборачиваем его в функцию serpstat_keywords. Подставляем свои значения для token и региона se, по которому будем получать данные. Получить полный список регионов можно здесь.
Используя регулярное выражение, разбиваем исходную фразу на слова. Каждое слово лемматизируем, проверяем на часть речи и добавляем в результирующий список. Возвращаем готовый список.
Не забываем, что pymorphy2 работает только с русским языком. Если в словосочетаниях будут фразы на другом языке, он их пропустит.
Составляем словарь вида «Лемма: [количество упоминаний леммы]».
Создаём финальный файл и записываем строку заголовка.
Получаем данные по API и парсим полученный текст.
Проходимся по списку маркерных запросов и генерируем задание.
Получившийся результат переносим в «Google Таблицы». Пример ТЗ.
Нужно понимать, что «количество упоминаний леммы» в ТЗ — это сколько раз лемма встречалась в ключевых словах.
Ссылка на скрипт (открывать в Jupyter Notebook).
Подход применим для случаев, когда статья уже написана, но не получает трафика.
Минусы (те же, что и у варианта номер один):
Набор библиотек аналогичен варианту номер один, отличается набор входных параметров. Вместо списка основных маркерных запросов передаём словарь следующего вида:
Следующие функции копируем из первого варианта:
Чистим файл и записываем строку заголовка.
Получаем данные по API и парсим полученный текст. Получать будем следующие данные для ТЗ:
Проходимся по списку маркерных запросов и генерируем задание.
Ссылка на скрипт (открывать в Jupyter Notebook).
Рассмотрим ситуацию, когда у специалиста есть собранное и кластеризованное семантическое ядро.
Минусы (почти те же, что и у первого варианта):
Подключаем необходимые библиотеки, указываем токен для работы с Megaindex и ser_id нужного региона.
Для работы скрипта нам понадобится txt-файл (‘data_tz.txt’) с кластеризованным ядром.
Формат файла: Ключ → Группа; разделитель табуляция.
Работаем со словарём, полученным на предыдущем шаге. Для каждой группы обходим все ключевые фразы, разбиваем их на слова, нормализуем и добавляем в словарь.
Получаем данные по API и парсим полученный текст.
Подготавливаем финальный файл.
Проходимся по списку групп и генерируем задание.
Так как основной маркерный запрос в этом случае — название категории, нужно следить за полнотой и правильностью её написания.
Аналогично первому варианту, получившийся результат переносим в «Google Таблицы». Получившееся ТЗ в таком же формате.
Ссылка на скрипт (открывать в Jupyter Notebook).
Предложенные скрипты можно дорабатывать, добавляя в них и другие важные на ваш взгляд требования к тексту.
Имея список URL конкурентов, можно парсить:
Аналогичным способом делать морфологический анализ тегов, заголовков и выдавать рекомендации по количеству элементов и упоминаний лемм в этих тегах.
При техническом аудите сайтов полезно анализировать логи сайта. Возможные варианты анализа:
Подробнее что про то, что такое логи, их структуру и содержание можно почитать в статье. Перейдём к скрипту.
Для работы будем использовать библиотеку apache-log-parser, подробная документация по ссылке на GitHub.
Для начала обработаем наш лог-файл и запишем данные в CSV. Если файлов несколько, склеить их можно следующей командой:
!cat access.log.1 access.log.2 access.log.3 > all_log.log
Создаем файл log.csv и записываем в него строку заголовка с названием столбцов. Столбцы определяются в соответствии с вашим лог-файлом.
Читаем построчно access.log, парсим строку и записываем разобранные данные в CSV. Используем функцию make_parser, которая принимает строку из файла журнала в указанном нами формате и возвращает проанализированные значения в виде словаря.
Формат строки из журнала указывается в make_parserс помощью поддерживаемых значений, указанных в документации, — supported values.
Далее анализируем полученный CSV-файл. Анализ можно провести в Excel или любом другом удобном инструменте. Для примера рассмотрим несколько вариантом получения данных на Python.
Подключаем библиотеку для анализа данных и считываем файл.
Посмотрим распределение страниц по статус коду страниц.
Посчитаем количество страниц со статусом 410 для каждого user-agent.
В результате работы скрипта мы получили готовый CSV-файл с разобранными по столбцам записями из лог-файла. Далее можно анализировать данные в соответствии с вашими целями.
Ссылка на скрипт (открывать в Jupyter Notebook).
Начало работы с Python в Windows для создания сценариев и автоматизации
Ниже приведено пошаговое руководство по настройке среды разработки и началу работы с Python для создания сценариев и автоматизации операций файловой системы в Windows.
В этой статье рассматривается настройка среды для использования некоторых полезных библиотек в Python, которые могут автоматизировать задачи на разных платформах, таких как поиск в файловой системе, доступ к Интернету, анализ типов файлов и т. д. с помощью подхода, ориентированного на Windows. Для операций, относящихся к Windows, извлеките ctypes, совместимую с C библиотеку функций с кодом на другом языке программирования для Python, winreg, функции, предоставляющие API реестра Windows для Python, и Python/WinRT, включив доступ к API среды выполнения Windows в Python.
Настройка среды разработки
При использовании Python для написания скриптов, выполняющих операции файловой системы, рекомендуется установить Python из Microsoft Store. При установке из Microsoft Store используется базовый интерпретатор Python3, но в дополнение к автоматическому обновлению также настраиваются параметры пути для текущего пользователя (без необходимости доступа администратора).
Если вы используете Python для веб-разработки в Windows, рекомендуем использовать другую установку с помощью подсистемы Windows для Linux. Ознакомьтесь с пошаговыми инструкциями в нашем руководстве: Начало работы с Python для разработки веб-приложений в Windows. Если вы новичок в Python, ознакомьтесь с нашим руководством: Get started using Python on Windows for beginners (Приступая к работе с Python в Windows для начинающих). В некоторых сложных сценариях (например, при необходимости модификации или доступа к установленным файлам Python, создания копий двоичных файлов или непосредственного использования библиотек DLL Python) может потребоваться загрузить определенный выпуск Python непосредственно с сайта python.org или установить альтернативное средство, например Anaconda, Jython, PyPy, WinPython, IronPython и т. д. Мы рекомендуем это только в том случае, если вы более продвинутый программист на Python и у вас есть конкретная причина выбрать альтернативную реализацию.
Установка Python
Чтобы установить Python с помощью Microsoft Store, сделайте следующее:
Перейдите в меню Пуск (значок Windows в нижнем левом углу), введите «Microsoft Store» и щелкните ссылку, чтобы открыть магазин.
Когда магазин откроется, выберите Поиск в верхнем правом меню и введите «Python». Выберите, какую версию Python вы хотите использовать, из результатов в разделе «Приложения». Мы рекомендуем использовать самую последнюю версию, если только у вас нет причин для обратного (например, по причине согласования с версией, использованной в уже существующем проекте, над которым вы планируете работать). Определив, какую версию вы хотите установить, выберите Получить.
Установка Visual Studio Code
При использовании VS Code в качестве текстового редактора или интегрированной среды разработки (IDE) вам доступны IntelliSense (помощь в завершении кода), анализ кода (помогает избежать ошибок в коде), поддержка отладки (помогает находить ошибки в коде после запуска), фрагменты кода (шаблоны для небольших повторно используемых блоков кода) и модульное тестирование (тестирование интерфейса кода с различными типами входных данных).
Загрузите VS Code для Windows и следуйте инструкциям по установке: https://code.visualstudio.com.
Установка расширения Microsoft Python
Установите расширение Microsoft Python, чтобы воспользоваться преимуществами функций поддержки VS Code. Подробнее.
Откройте окно расширения VS Code с помощью CTRL+SHIFT+X (или используйте меню, чтобы перейти к Вид > Расширения).
В поле Поиск расширений в Marketplace введите: Python.
Найдите расширение Python (ms-python.python) от Microsoft и нажмите зеленую кнопку Установить.
Откройте встроенный терминал PowerShell в VS Code
VS Code содержит встроенный терминал, который позволяет открывать командную строку Python с помощью PowerShell, создавая простой рабочий процесс между редактором кода и командной строкой.
Откройте терминал в VS Code, выберите Просмотр > Терминал или используйте сочетание клавиш Ctrl+` (используя символ обратного апострофа).
По умолчанию этим терминалом должен быть PowerShell, но если его нужно изменить, используйте Ctrl+Shift+P, чтобы ввести команду. Введите терминал: Выберите Оболочку по умолчанию, и отобразится список параметров терминала, содержащий PowerShell, командную строку, WSL и т. д. Выберите ту, которую хотите использовать, и нажмите Ctrl+Shift+` (с помощью обратного апострофа), чтобы создать новый терминал.
В окне терминала VS Code откройте Python, введя: python
Установка Git (необязательно)
Если вы планируете совместно работать над кодом Python с другими пользователями или размещать проект на сайте с открытым исходным кодом (например, GitHub), примите во внимание, что VS Code поддерживает управление версиями с помощью Git. Вкладка системы управления версиями в VS Code отслеживает все изменения и содержит общие команды Git (добавление, фиксация, принудительная отправка, извлечение) прямо в пользовательском интерфейсе. Сначала необходимо установить Git для включения панели управления версиями.
Скачайте и установите Git для Windows с веб-сайта git-scm.
В комплект входит мастер установки, который задает вам ряд вопросов о параметрах установки Git. Рекомендуется использовать все параметры по умолчанию, если у вас нет конкретной причины изменить какой-либо из них.
Если вы никогда не использовали Git, обратитесь к руководствам по GitHub. Они помогут вам приступить к работе.
Пример сценария для вывода структуры каталога файловой системы
Распространенные задачи системного администрирования могут занимать огромное количество времени, но с помощью сценария Python вы можете их автоматизировать и не тратить на них время вовсе. Например, Python может читать содержимое файловой системы компьютера и выполнять такие операции, как вывод структуры файлов и каталогов, перемещение папок из одного каталога в другой или переименование большого количества файлов. Как правило, такие задачи могут занимать массу времени, если выполнять их вручную. Вместо этого используйте сценарий Python!
Начнем с простого сценария, в котором описано дерево каталогов и отображено структуру каталогов.
Откройте PowerShell, используя меню Пуск (нижний левый значок Windows).
Создайте несколько каталогов для использования с нашим примером сценария:
Создайте несколько файлов в этих каталогах для использования с нашим сценарием:
Создайте в каталоге Python-Scripts новый файл Python:
Откройте окно проводника VS Code, нажав Ctrl+Shift+E (или используйте меню, чтобы перейти к Вид > Обозреватель) и выберите только что созданный файл list-directory-contents.py. Расширение Microsoft Python будет автоматически загружать интерпретатор Python. Загруженный интерпретатор можно увидеть в нижней части окна VS Code.
Python — интерпретируемый язык, то есть он выступает в качестве виртуальной машины, имитируя физический компьютер. Существуют различные типы интерпретаторов Python, которые можно использовать: Python 2, Python 3, Anaconda, PyPy и т. д. Чтобы выполнить код Python и получить Python IntelliSense, необходимо указать интерпретатор, который следует использовать в VS Code. Если нет конкретной причины для выбора другого интерпретатора, мы рекомендуем придерживаться интерпретатора, который VS Code выбирает по умолчанию (Python 3 в нашем случае). Чтобы изменить интерпретатор Python, выберите интерпретатор, который сейчас отображается в синей панели в нижней части окна VS Code, или откройте палитру команд (Ctrl+Shift+P) и введите команду Python: Select Interpreter (Python: выбор интерпретатора). На экране появится список установленных интерпретаторов Python. Using Python environments in VS Code(Использование сред Python в VS Code).
Вставьте следующий код в файл list-directory-contents.py, а затем выберите Сохранить:
Откройте интегрированный терминал VS Code (Ctrl+` с помощью символа обратного апострофа) и введите каталог src, в котором вы только что сохранили сценарий Python:
Запустите сценарий в PowerShell с помощью:
Результат должен выглядеть примерно так:
Используйте Python, чтобы вывести выходные данные каталога файловой системы в собственный текстовый файл, введя следующую команду непосредственно в терминале PowerShell: python3 list-directory-contents.py > food-directory.txt
Поздравляем! Вы только что написали автоматизированный сценарий системного администрирования, который считывает созданные вами каталог и файлы и использует Python для отображения, а затем для вывода структуры каталога в собственный текстовый файл.
Если вы не можете установить Python 3 из Microsoft Store, прочтите об этой проблеме, чтобы ознакомиться с примером управления путями для этого примера скрипта.
Пример сценария для изменения всех файлов в каталоге
В этом примере используются только что созданные файлы и каталоги, каждый из которых следует переименовать путем добавления даты последнего изменения файла в начало имени файла.
В папке src в каталоге python-scripts создайте новый файл Python для своего сценария:
Откройте файл update-filenames.py, вставьте следующий код в файл и сохраните его:
os.getmtime возвращает метку времени в тактах, что трудно читать. Сначала его необходимо преобразовать в стандартную строку datetime.
Протестируйте сценарий update-filenames.py, запустив его: python3 update-filenames.py а затем снова запустите сценарий list-directory-contents.py: python3 list-directory-contents.py
Вы должны получить следующий результат:
Используйте Python для вывода новых имен каталогов файловой системы с меткой времени последнего изменения в начале текстового файла, введя эту команду непосредственно в терминале PowerShell: python3 list-directory-contents.py > food-directory-last-modified.txt
Надеемся, что вы узнали несколько интересных вещей об использовании сценариев Python для автоматизации основных задач системного администрирования. Конечно, есть еще масса информации, но мы надеемся, что это позволит вам начать работу с нужным нижним колонтитулом. Ниже мы предоставили несколько дополнительных ресурсов, чтобы вы продолжили обучение.
15 Python-пакетов, которые нужно попробовать
Перед началом статьи хочу сказать, что еще больше полезной и нужной информации вы найдете в нашем Telegram-канале. Подпишитесь, мне будет очень приятно.
Подборка самых полезных и разноплановых Python-пакетов с PyPI.
За что мы любим Python? Для начала это — красивый и простой в изучении язык. Но есть и другая причина: Python поставляется с батареей возможностей. Это означает, что по умолчанию в Python уже добавлено множество полезных библиотек. Но, на мой взгляд, популярным и мощным Python делают 230 тысяч пакетов, созданных пользователями.
В данной статье я подобрал для вас 15 пакетов, которые за 10 лет моей работы с Python принесли мне максимум пользы. Давайте начнем!
Dash появился не так давно. Это идеальное решение для создания приложений по визуализации данных на чистом Python. То есть такой пакет крайне полезен для всех, кто работает с данными. Dash — это смесь Flask, Plotly.js и React.js.
Dash позволяет быстро разместить данные на красивом дашборде, не прикасаясь к JavaScript.
Pygame — это модуль-обертка для мультимедийной библиотеки SDL. Simple DirectMedia Layer представляет собой кроссплатформенную библиотеку разработки, которая дает низкоуровневый доступ к:
Pygame портативен и запускается практически на всех платформах и операционных системах. Несмотря на то, что Pygame — это, в первую очередь, игровой движок, он вполне сгодится для простого воспроизведения mp3-файлов из Python-скриптов.
У Pygame есть свой сайт с англоязычными уроками и инструкциями по установке.
Pillow является ответвлением Python Imaging Library. Эта библиотека подойдет для создания миниатюр, преобразования в различные форматы, наложения фильтров, вращения и отображения изображений и т.д. Pillow — идеальный вариант для пакетной обработки большого количества изображений.
Для большей наглядности приведу пример того, как вы можете отобразить изображение из Python-кода:
Либо сделать тоже самое из Python Shell или IPython:
Почитать описание всех функций можно в документации.
Colorama помогает добавить цвета в терминал:
Причем делается все очень просто. Вот небольшой пример кода:
Этот пакет отлично украшает Python-скрипты. Документация проста и понятна, почитать ее можно на странице Colorama в PyPI.
Если хотите, чтобы Colorama работала под Windows, то вначале вызовите colorama.init().
Работать с JSON в Python — сплошное удовольствие, ведь он прекрасно отображается в Python-словаре. Кроме того, Python поставляется с собственной библиотекой для создания и анализа, или разбора, JSON. Для меня это одна из лучших функций в Python. Если мне нужно поработать с JSON, то я непременно выберу Python.
Но в стандартном пакете есть и кое-что, чего вам может не хватать. Если вы пользуетесь json.loads(), а данные из словаря получаете вручную (возможно, добавляя какие-то циклы), то готовьтесь сильно удивиться!
JMESPath (читается как «JAMES PATH») делает работу с JSON на Python еще проще. Теперь вы можете декларативно указывать, как извлекать элементы из JSON-документа. Вот несколько примеров, иллюстрирующих возможности JMESPath:
Это лишь небольшая часть того, что может JMESPath. Почитать подробнее можно в документации и на странице PyPI.
Requests основан на самой часто скачиваемой Python-библиотеке — urllib3. Requests максимально упрощает веб-запросы, оставаясь при этом чрезвычайно мощным и разноплановым инструментом. Скорее всего, вы уже знакомы с этим пакетом, но без него мой список был бы неполным.
Просто, чтобы показать вам, как легко работать с Requests:
Это простейший пример. В Requests есть и более продвинутые опции. Например:
Что не так с нативным JSON-модулем в Python? Ничего! Более того, json в Python — это и есть simplejson. То есть Python берет версию simplejson и добавляет ее в каждый свой релиз. А в использовании simplejson есть свои преимущества, ведь он:
Поэтому часто в скриптах, работающих с JSON, вы можете увидеть следующее:
Лично я стараюсь пользоваться стандартным JSON, кроме случаев, когда мне нужны:
Simplejson может работать гораздо быстрее, чем json. Все дело в особых частях пакета, написанных на С. Но быстрая скорость нужна только при работе с миллионами JSON-файлов. В таких случаях стоит присмотреться к UltraJSON. Считается, что он работает еще быстрее, поскольку полностью написан на С.
Пакет Emoji либо впечатляет, либо огорчает. Все зависит от самого «оценщика». Шутки шутками, но этот пакет мне очень помог при анализе данных из соцсетей.
Для начала установим модуль emoji:
После установки можно делать следующее:
Почитать документацию и ознакомиться с другими примерами можно на странице пакета emoji.
Модуль Chardet используется для определения кодировки файла или потока данных. Этот пакет очень выручает при анализе больших полотен разного текста. Также Chardet пригодится при работе с удаленно скачанными данными в неизвестной вам кодировке.
После установки Chardet у вас появится дополнительный инструмент командной строки под названием chardetect. Им можно пользоваться вот так:
Конечно же, никто не запрещает работать с библиотекой классическим (программным) способом. Подробнее см. документацию.
python-dateutil предлагает мощные расширения стандартного модуля datetime. Мой профессиональный опыт подсказывает, что там, где заканчивается стандартный функционал datetime в Python, начинается сфера python-dateutil.
С этой библиотекой можно сделать столько всего полезного. Пожалуй, я ограничусь одним примером, который помогал мне чаще всего, — нечетким разбором (парсингом) дат из файлов журнала и т.п.:
В документации перечислены остальные возможности python-dateutil, включая:
Тут я немного схитрю, объединив в одном пункте сразу два пакета. Но не упомянуть об одном из них было бы в корне неправильно.
Вы можете создавать свои индикаторы состояния. Это весьма увлекательное занятие. Но делать то же самое с progress или tqdm куда быстрее и надежнее.
Progress помогает создавать индикаторы состояния с минимальными усилиями:
Анимация ниже наглядно показывает все доступные типы индикаторов:
Краткую и понятную документацию по библиотеке можно почитать на PyPI-странице.
tqdm является чуть более современным аналогом progress, выполняющим те же функции. Для начала небольшая демонстрация возможностей:
В tqdm есть своя изюминка — им можно пользоваться в командной строке:
Больше примеров и документацию можно найти на Github-странице tdqm.
Что-то мне подсказывает, что все вы знаете об интерактивной оболочке Python. Это отличный способ покопаться внутри Python. Но знаете ли вы, что существует оболочка и для IPython? Если вы во всю работаете с интерактивной оболочкой, но не знаете самого IPython, то однозначно присмотритесь к этому пункту!
Вот ряд возможностей, которые предлагает расширенная оболочка IPython:
IPython — это ядро блокнотов Jupyter. Jupyter Notebook — это веб-приложение с открытым кодом, которое позволяет создавать и обмениваться документами с живым кодом, уравнениями, визуализациями и текстовыми описаниями.
Я обожаю домашнюю автоматизацию. Это не просто мое хобби, но и нечто, контролирующее большую часть моего жилища. Поэтому к данному вопросу я подхожу весьма серьезно. Все системы в моем доме связаны через Home Assistant. Это полноценное приложение, которое можно установить и в виде Python-пакета из PyPI.
Вот уже более 3 лет я каждый день пользуюсь Home Assistant, и все это время он доступен в бета-версии. Тем не менее, это лучшее из всего, что я пробовал. Home Assistant может интегрировать и управлять любыми устройствами и протоколам. Кроме того, он бесплатен и написан с открытым кодом.
Если вы интересуетесь домашней автоматизацией, то однозначно попробуйте Home Assistant! Более подробная информация доступна на их сайте. Если получится, то саму платформу можно скачать с Raspberry Pi. Это простой и безопасный способ начать работу. Я установил Home Assistant на более мощный сервер — внутри Docker-контейнера.
Flask — это моя любимая библиотека для создания быстрых веб-сервисов или простых сайтов. Flask — это микрофреймворк. Его задача — сделать ядро простым и расширяемым. Всего для Flask написано свыше 700 расширений — как официальных, так и созданных сообществом.
Если вы знаете, что в скором времени займетесь разработкой крупного веб-приложения, то стоит присмотреться к полноценному фреймворку. Самым популярным в этой категории считается Django.
Когда вы вытаскиваете HTML с какого-то сайта, то сначала проводите его разбор и отсекаете все ненужное. Beautiful Soup — это Python-библиотека по сбору данных из HTML и XML-файлов. В ней представлены простые методы для навигации, поиска и изменения дерева разбора, или парсинга. Это очень мощная библиотека, которая умеет обрабатывать все виды HTML, даже если он сломан. Уж поверьте моему опыту, HTML ломается довольно часто, поэтому такая функция окажется как нельзя кстати.





