Parsing

6 — Step by step. Первый способ.

Опубликовано

На предыдущем уроке мы получили выборку из элементов принадлежащих к классу .wp-block-columns. Но нам необходимо ограничить эту выборку.

Во-первых, сами теги <div class="wp-block-column"> нам малоинтересны, информация которая нам нужна находится во дочерних тегах <p>. Для выбора всех параграфов используется метод find_all(), который вернёт нам итерируемый объект.

Во-вторых, из получившегося результата мы видим, что нам интересны только первые 10 пунктов. «Типы данных» нам уже не нужны, поэтому на экран их можно не выводить. Прекратим выполнение цикла, как только цикл наткнётся на эту строку. Помните, что получить содержимое тега мы всегда можем используя свойство text.

Конечно мы могли вы выполнить цикл определённое количество раз через функцию range(), но проблема здесь заключается в том, что данные на сайте могут меняться, и если, вдруг, количество функций в столбце увеличится, то эти функции просто не попадут в наш цикл. Или если функций на сайте станет меньше, то, возможно, в нашу выборку попадут данные уже из другого раздела. И нам необходимо научить программу останавливаться именно тогда, когда это необходимо.

Стало уже попроще. Осталось избавится от тегов разметки и вывести на экран только название функции и ссылку на неё. Но у первого элемента нашей выборки отсутствует ссылка, поэтому если мы попытаемся её вывести на экран кодом element.a['href'] , то получим ошибку. Необходимо перешагнуть заголовок и вывести у него только свойство text. А для всех остальных получить тег ссылки и вывести на экран её значение атрибута href.

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

Instructions:

  1. Используя метод find_all() получите все параграфы из block_column
  2. Ограничите выполнения цикла до раздела «Типы данных»
  3. Выведите на экран названия функций и ссылки на них. Узнать все атрибуты которыми обладает тег, можно используя свойство attrs. Например, print(element.a.attrs)

Добавить комментарий

Ваш адрес email не будет опубликован.