Распакуйте внешний div, используя BeautifulSoup - PullRequest
3 голосов
/ 11 июня 2011

Если код HTML выглядит следующим образом:

<div class="div1">
<p>hello</p>
<p>hi</p>
    <div class="nesteddiv">
        <p>one</p>
        <p>two</p>
        <p>three</p>
    </div>
</div>

Как мне извлечь

<div class="div1">
    <p>hello</p>
    <p>hi</p>
</div>

Я уже пробовал parser.find('div', 'div1'), но я получаю весь div, включая вложенный.

Ответы [ 2 ]

2 голосов
/ 11 июня 2011

Вы действительно хотите extract() вложенный div из документа, а затем получить первый div , Вот пример (где html - это HTML-код, который вы указали в вопросе):

>>> from BeautifulSoup import BeautifulSoup
>>> soup = BeautifulSoup(html)
>>> soup.div.div.extract()
<div class="nesteddiv">
<p>one</p>
<p>two</p>
<p>three</p>
</div>
>>> soup.div
<div class="div1">
<p>hello</p>
<p>hi</p>

</div>
1 голос
/ 11 июня 2011

Почему бы просто не найти () вложенный div и затем удалить его из дерева с помощью extract ()?

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