Анализ неправильно сформированного HTML в Python дает ошибку индекса вне диапазона

Вот часть HTML, которую я пытаюсь проанализировать:

<div class="syntax-container">
<h2>Official Syntax</h2>
<ul>
  <li>
    <strong>Syntax: </strong> </p>
  <pre>text-align: start | end | left | right | center | justify</pre>
  </li>
  ...and so on.

Это мой код Python:

soup = bs4.BeautifulSoup(res.text, "html.parser")
propSyntax  = ''.join(soup.select('.syntax-container pre')[0].findAll(text=True))
propSyntax  = propSyntax.strip()
propSyntax  = '<h2>Syntax</h2>' + '<p><pre>' + propSyntax + '</pre></p>'

Это ошибка, которую я получаю:

propSyntax  = ''.join(soup.select('.syntax-container pre')[0].findAll(text=True))
IndexError: list index out of range

Я понимаю, что ошибка из-за дополнительной </p> после </strong> но я не знаю, как избавиться от этой ошибки и правильно проанализировать данные. Любая помощь здесь будет оценена.

1 ответ

Вы пробовали преттифицировать? Если нет, попробуйте:

soup.prettify()

или же

soup.prettify().select('.syntax-container pre')[0].findAll(text=True)
Другие вопросы по тегам