Поиск, существует ли заголовок в теге 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