CoderCastrov logo
CoderCastrov
Питон

Парсинг с помощью Python

Парсинг с помощью Python
просмотров
2 мин чтение
#Питон

Python - один из самых популярных языков программирования в настоящее время, предпочтительный для начинающих программировать из-за его низкого порога вхождения.

Python - язык с динамической типизацией, что лично мне не нравится, но это не означает, что он не продуктивен или даже весел при написании кода.

Я не хочу вдаваться в традиционные детали, такие как типы данных, создание CRUD и т. д. Моя идея - пойти немного дальше и создать простой парсер, чтобы постепенно изучать язык.

Мы собираемся обратиться к популярному веб-сайту в моем регионе, где в разделе технологии есть некоторые статьи, которые мы собираемся взять. Следует отметить, что этот процесс является учебным, мы просто получаем данные, ничего странного, что может навредить кому-либо.

Мы будем использовать библиотеку Beautiful Soup для Python, которая позволяет извлекать информацию из контента в формате HTML или XML. Для этого необходимо указать парсер, который отвечает за преобразование документа HTML или XML в сложное дерево объектов Python. Это позволяет, например, взаимодействовать с элементами веб-страницы, как если бы мы использовали инструменты разработчика браузера.

Основная идея при парсинге заключается в понимании тегов HTML, которые мы хотим захватить, понимая, что над всеми слоями у нас всегда будет div, который охватывает весь контент, и что этот контент имеет потомков.


Дети и потомки элемента в Beautiful Soup

  • Атрибут contents: Возвращает список всех первоуровневых детей объекта.
  • Используя генератор children: Возвращает итератор для перебора первоуровневых детей объекта.
  • С помощью генератора descendants: Этот атрибут возвращает итератор, который позволяет перебирать всех потомков объекта. Независимо от уровня вложенности.

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

Этот парсинг довольно простой и предоставляет линейную и неупорядоченную информацию, возможно, идеальным решением будет получить элементы отдельно и предоставить их в правильном формате для чтения. Если у вас есть идеи, как улучшить этот код, пожалуйста, делитесь, цель - постоянное совершенствование, репозиторий находится ЗДЕСЬ

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

Приветствую!