ArthurStarl
01:30 03-07-2020привет
Всем привет. Сегодня мы познакомимся с модулем BeautifulSoup4 который позволяет производить парсинг данных в форматах html и xml. Итак, поехали!
В предыдущей статье посвященной python мы познакомились с модулем requests. Давайте воспользуемся этими знаниями и вернем исходный код главной страницы моего блога.
import requests
data = requests.get('https://webfanat.com/')
ptint(data.text)
Так отлично, мы вернули весь исходный код главной страницы моего блога и в принципе можем все это дело записать в файл, к примеру index.php
Но что если мы предварительно хотим внести в исходный код изменения или сохранить в файл определенную его часть. В этом то деле нам и поможет модуль BeautifulSoup4 который позволяет обрабатывать html и xml строки.
Для начала его нужно установить.
pip install beautifulsoup4
Я это сделал через утилиту pip.
Затем подключить.
import bs4
Все теперь мы можем пользуясь данным модулем обработать полученные данные.
К примеру мы хотим получить код заголовка h1.
data = requests.get('https://webfanat.com/')
dom = bs4.BeautifulSoup(data.text)
print(dom.select('h1'))
Здесь мы из исходного кода получили заголовок h1. С помощью метода BeautifulSoup() мы обработали строку с исходным кодом и подготовили ее для дальнейшей работы с модулем BeautifulSoup4. Затем используя метод select() получили заголовок h1.
Обратите внимание что данные вернулись к нам в виде списка.
В методе select() можно указывать не только теги, ну и основные селекторы css(классы и идентификаторы).
print(dom.select('.color_red'))
Здесь нам вернулся список элементов имеющих класс color_red.
Если мы хотим получить текст выбранных элементов достаточно воспользоваться методом getText().
print(dom.select('h1')[0].getText())
C помощью метода getText() мы получили текст тега h1. Обратите внимание что данным метод применим только к строкам. Поэтому прежде чем его использовать необходимо извлечь строку из списка. Я это сделал просто указав ключ 0.
print(dom.select('h1')[0].getText())
C помощью свойства attrs можно получить атрибуты выбранного элемента.
print(dom.select('a[title="vkontakte"]')[0].attrs)
В качестве возвращаемого значения будет словарь содержащий пары, название атрибута и его значения.
В общем можно еще долго рассказывать о данном модуле, обо всех его свойствах и значениях. Но это не является моей целью для этого есть специальные
документацииМоей задачей было рассказать о данном модуле и привести несколько примеров работы с ним.
На этом данная статья подошла к концу. Если у вас остались вопросы пишите их в комментариях или группе
вкЯ с вами прощаюсь. Желаю вам удачи и успехов! Пока.
Внимание!!! Комментарий теперь перед публикацией проходит модерацию
привет