@Gero39

Как спарсить тег со вложенными в него тегами в BS4?

Доброго дня/вечера/ночи.

У меня такая проблема. Нужно достать данные из тега, который закрывается в неудобном месте. Из примера должно стать понятно:

import requests
from bs4 import BeautifulSoup

link = "URL" 
responce = requests.get(link).text
soup = BeautifulSoup(responce, 'html.parser')

'''
<body>
  <div class="gbox">
    <div class="g-box-contents">
       <div class="detailed-item" data-tagnames="Нужный мне текст">
         <a class="thumb" href="Ненужный мне текст" >
           <img src="Ещё более ненужный текст">
              </a>
        <div class= "item-info" ....
         .... ещё больше вложений
        </div>
        </div>

'''
block = soup.find('div', class_='g-box-contents')

div = block.find_all('div', class_='detail-item', limit=1, recursive=False)[0] #перепробовал много вариантов.

print(div)

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

Сам сайт дать не могу, он очень специфический.

Заранее спасибо за ответ!
  • Вопрос задан
  • 481 просмотр
Пригласить эксперта
Ответы на вопрос 1
@PavelMos
Если data-tagnames="Нужный мне текст" , то это атрибуты тега. Того тега, который внутри найденного первый раз.

for i in block:
    try:
        print ( i, ':', i.get('data-tagnames', '\r\n') )
    except Exception:
        print (i, ':','Attr.: no data-tagnames', '\r\n')
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы