Поиск, существует ли заголовок в теге BS4

Я пытаюсь выяснить, существует ли конкретный заголовок внутри тега и если он не содержит его, напечатайте текст в переменной t. До сих пор я могу вытащить весь "тд" тега с помощью:

for t in soup.findAll("td",{"class" : "someClass"}):

но когда я использую:

title = "someTitle"
if title in t:
   print "contains title"
else:
   print "doesn't contain title

Похоже, он не ищет наличие заголовка и все равно проходит через все. Что я делаю не так?

Пример HTML:

<html>
 <body>
  <td class="someClass">
  <td>
   Text
  </td>
  <img title ="someTitle">
  </td>
 </body>
</html>

1 ответ

Хоть <td> не может быть вложенным <td>мы можем как-то извлечь название изображения здесь.

Код Python 2:

from BeautifulSoup import BeautifulSoup as bs
html = '''
<html>
 <body>
  <td class="someClass">
  <td>
   Text
  </td>
  <img title ="someTitle">
  </td>
 </body>
</html>
'''
soup = bs(html)
tds = soup.findAll("td",{"class":"someClass"})
for td in tds:
    td_pretty = td.prettify()
    td_split_list = [line.strip() for line in td_pretty.split("\n")]
    img = bs(td_split_list[4])
    print img.find("img").get("title")

Выход:

someTitle

Мы использовали метод prettify ( см. Документацию здесь) BeautifulSoup

Другие вопросы по тегам