Анализ неправильно сформированного 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)