2017-02-02 15 views
0

Вот часть HTML, что я пытаюсь разобрать:Синтаксические искаженная HTML в Python дает индекс из ошибок диапазона

<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>, но я не знаю, как избавиться от этой ошибки и правильно проанализировать данные. Любая помощь здесь будет оценена по достоинству.

ответ

0

Вы пробовали прикрыть? Если не попробовать:

soup.prettify() 

или

soup.prettify().select('.syntax-container pre')[0].findAll(text=True) 
+0

Я думаю, что это создает бесконечный цикл, потому что ничего не произошло в консоли после того, как я обновил код. –

+0

Вы можете опубликовать полный код или еще –

+0

У меня есть вопрос. :) –