beautifulsoup

pip install beautifulsoup4
>>> from bs4 import BeautifulSoup

BeautifulSoup()

class beautifulsoup.BeautifulSoup(html_string)

Парсер html

bs_obj = BeautifulSoup(some_html_string)
find(name=None, attributes={}, recursive=True, text=None, *kwargs)

Возвращает первый найденный элемент

findAll(name=None, attributes={}, recursive=True, text=None, limit=None, *kwargs)

Возвращает список элементов Tag, по указанному тегу и фильтру

span_list = bs_obj.findAll('span', {'class': 'green'})
for span in span_list:
    print(span.get_text())

hs = bs_obj.findAll({'h1', 'h2', 'h3', 'h4', 'h5', 'h6'})

id_text_elem = bs_obj.findAll(id='text')

imgs = bs_obj.findAll('img', {'src': re.compile('\.\.\/img\/*\.jpg')})

imgs = bs_obj.findAll(lambda tag: len(tag.attrs) == 2)

Tag()

class beautifulsoup.Tag

Тег элемент

attrs

Словарь атрибутов элемента

table_elem.attrs
# {'class': 'table'}

image_elem.attrs['src']
children

Список дочерних элементов Tag

for child in span_elem.children:
    print(child.get_text())
descendants

Список всех вложенных элементов Tag

for child in span_elem.descendants:
    print(child)
next_sibling

Список всех элементов на уровне

for sibling in table_elem.tr.next_sibling:
    print(sibling)
parent

Родительский элемент Tag

table_elem.parent
previous_siblings

Список всех элементов на уровне

for sibling in table_elem.tr.previous_siblings:
    print(sibling)
get_text()

Удаляем все теги из элемента и возвращает только текст содержимого

span_elem.get_text()
# some text

Comment()

class beautifulsoup.Comment

Коментарии