Для получения значения атрибута у определенного 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() полезен в ситуациях, когда искомый атрибут может отсутствовать и необходимо корректно обработать данную ситуацию.