Как спарить только несколько нужных тегов в правильном порядке BeautifulSoup
Имеется html документ, из которого мне нужно получить текст и картинки.
Получить их по отдельности особой сложности не вызывает, но мне нужно спарсить их в естественном порядке.
То есть если последовательность:
<p></p>
<p></p>
<img>
<p></p>
то мне нужно спарсить их именно в такой последовательности.
Разумеется, в документе огромное количество других тегов и не такая примитивная вложенность как в примере, то есть вариант спарсить всё, а потом убрать поштучно ненужное рассматриваю как крайний.
То есть вопрос в том, Как спарсить несколько разных тегов в том порядке, в котором они на странице?
Ответы (2 шт):
если структура дом элементов такая
<div class="class">
<p></p>
<p></p>
<img>
<p></p>
</div>
то можно привязаться к диву,
a = soup.find("div", class_="class")
так же из дива можешь получить отдельно элементы, если понадобятся, именно этого блока
b = a.find_all('p')
Ответ
for elem in section:
tags = section.find_all(['p', 'img'])
for tag in tags:
print(tag)