Как я фиксирую неправильно вложенный / открытые HTML-тэги?

Проверьте, существует ли каталог, иначе сделайте один

[ -d "$DIRECTORY" ] || mkdir $DIRECTORY
17
задан 17 of 26 20 April 2009 в 18:11
поделиться

2 ответа

использование BeautifulSoup:

from BeautifulSoup import BeautifulSoup
html = "<p><ul><li>Foo"
soup = BeautifulSoup(html)
print soup.prettify()

получает Вас

<p>
 <ul>
  <li>
   Foo
  </li>
 </ul>
</p>

, Насколько я знаю, Вы не можете управлять помещением < li> </li> наклеивает отдельные строки от Foo.

Опрятное использование:

import tidy
html = "<p><ul><li>Foo"
print tidy.parseString(html, show_body_only=True)

получает Вас

<ul>
<li>Foo</li>
</ul>

, К сожалению, я не знаю ни о каком способе сохранить < p> тег в примере. Опрятный интерпретирует его как пустой абзац, а не открытый, таким образом делая

print tidy.parseString(html, show_body_only=True, drop_empty_paras=False)

выходит как [1 114]

<p></p>
<ul>
<li>Foo</li>
</ul>

В конечном счете, конечно, < p> тег в Вашем примере избыточен, таким образом, Вы могли бы согласиться с потерей его.

Наконец, Опрятный может также сделать расположение с отступом:

print tidy.parseString(html, show_body_only=True, indent=True)

становится

<ul>
  <li>Foo
  </li>
</ul>

, Все они имеют их взлеты и падения, но надо надеяться один из них достаточно близок.

28
ответ дан 30 November 2019 в 11:04
поделиться

Выполните его до Опрятный или один из его портированных библиотеки .

Попытка кодировать его вручную и Вы будете хотеть выбить глаза.

10
ответ дан 30 November 2019 в 11:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: