<p> и <div>заказ при соскобе - PullRequest
       0

<p> и <div>заказ при соскобе

1 голос
/ 24 сентября 2019

У меня возникли проблемы при очистке веб-страницы, на которой есть теги <div> в тегах <p>.Когда я нахожу div, вывод заканчивается следующим </p> вместо продолжения </div>.И вывод, кажется, преобразовал </p> из исходного кода в.Я пытался использовать другие включающие теги div, но мой вывод всегда заканчивается до нужного текста.

Исходный код HTML

<p><div class="asdf">Text</p>
<p>More Text</p></div>

Код Python

print(soup.find(class_="asdf"))

Вывод

output = <div class="asdf">Text</div>

Желаемый выход

<div class="asdf">Text</p><p>More Text</p></div>

1 Ответ

0 голосов
/ 24 сентября 2019

Вы, вероятно, используете парсер по умолчанию (встроенный в Python html.parser), что не очень хорошо с искаженным HTML-кодом:

>>> BeautifulSoup("<div>Foo</p>Bar</div>", "html.parser").find("div")
<div>Foo</div>

Попробуйте установить lxml или html5lib и используйте этовместо этого:

pip install html5lib

затем:

>>> BeautifulSoup("<div>Foo</p>Bar</div>", "html5lib").find("div")
<div>Foo<p></p>Bar</div>

Подробнее о различных синтаксических анализаторах в документации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...