Как найти определенный текст div в Beautiful Soup - PullRequest
0 голосов
/ 21 мая 2018

У меня есть следующий html:

from bs4 import BeautifulSoup as soup
html_doc = """<div class="__cast-member" content="Vishal Krishna Reddy" itemprop="name"><div class="__cast-image wow fadeIn"><meta content="https://in.bmscdn.com/iedb/artist/images/website/poster/large/vishal-krishna-reddy-16275-24-03-2017-15-17-54.jpg" itemprop="image"><img alt="Vishal Krishna Reddy" data-error="//in.bmscdn.com/webin/profile/user.jpg" data-lazy="//in.bmscdn.com/iedb/artist/images/website/poster/large/vishal-krishna-reddy-16275-24-03-2017-15-17-54.jpg" title="Vishal Krishna Reddy"/></meta></div><br/>Developer<br><span class="__role">Actor</span><br><span class="__characterName">As Kathiravan</span></br></br></div>"""
html = soup(html_doc, "html.parser")
Cast=html.find("div", {"class":"__cast-member"})
print Cast.text

вывод: DeveloperActorAs Kathiravan

Но мне нужен вывод только для: Developer

1 Ответ

0 голосов
/ 21 мая 2018

Вы можете использовать свойство .next_sibling, чтобы получить нужный текст.Сначала найдите тег <div> с помощью class="__cast-image wow fadeIn".Текст, который вы хотите, расположен после этого тега.Итак, используйте .next_sibling для этого тега.Но сначала вы получите <br/>, поэтому используйте его снова.

>>> soup.find('div', class_='__cast-image').next_sibling
<br/>
>>> soup.find('div', class_='__cast-image').next_sibling.next_sibling
'Developer'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...