Получение значения атрибута у HTML-тега с помощью метода .get()

Для получения значения атрибута у определенного HTML-тега используется конструкция:
tag.get(key, default=None)

Данный метод повышает устойчивость кода, поскольку при отсутствии атрибута возвращается None, ошибка не генерируется.

Общий синтаксис:

tag.get('attribute_name')

Пример 1. Получение ссылки из тега <a>

from bs4 import BeautifulSoup

html_doc = '<a href="https://example.com">Visit example.com</a>'
soup = BeautifulSoup(html_doc, 'html.parser')
a_tag = soup.find('a')
href_value = a_tag.get('href')
print("Href value:", href_value)  # Href value: https://example.com

Пример 2. Извлечение информации из пользовательского атрибута

html_doc = '<div data-info="12345">Some content</div>'
soup = BeautifulSoup(html_doc, 'html.parser')
div_tag = soup.find('div')
data_info = div_tag.get('data-info')
print("Data-info value:", data_info)  # Data-info value: 12345

В данном случае метод .get() использовался для извлечения значения пользовательского атрибута data-info.

Пример 3. Попытка получения пользовательского атрибута

html_doc = '<p>Simple paragraph</p>'
soup = BeautifulSoup(html_doc, 'html.parser')
p_tag = soup.find('p')
class_attr = p_tag.get('class')
print("Class attribute:", class_attr)  # Class attribute: None

Метод .get() полезен в ситуациях, когда искомый атрибут может отсутствовать и необходимо корректно обработать данную ситуацию.



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

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: