With Beautifulsoup, Extract Tags of Element Except Those specified
<p>I'm using Beutifulsoup 4 and Python 3.5+ to extract webdata. I have the following html, from which I am extracting:</p>

<pre><code>&lt;div class="the-one-i-want"&gt;
    &lt;p&gt;
        content
    &lt;/p&gt;
    &lt;p&gt;
        content
    &lt;/p&gt;
    &lt;p&gt;
        content
    &lt;/p&gt;
    &lt;p&gt;
        content
    &lt;/p&gt;
    &lt;ol&gt;
        &lt;li&gt;
            list item
        &lt;/li&gt;
        &lt;li&gt;
            list item
        &lt;/li&gt;
    &lt;/ol&gt;
    &lt;div class='something-i-don't-want&gt;
        content
    &lt;/div&gt;
    &lt;script class="something-else-i-dont-want'&gt;
        script
    &lt;/script&gt;
    &lt;p&gt;
        content
    &lt;/p&gt;
&lt;/div&gt;
</code></pre>

<p>All of the content that I want to extract is found within the <code>&lt;div class="the-one-i-want"&gt;</code> element. Right now, I'm using the following methods, which work most of the time:</p>

<pre><code>soup = Beautifulsoup(html.text, 'lxml')
content = soup.find('div', class_='the-one-i-want').findAll('p')
</code></pre>

<p>This excludes scripts, weird insert <code>div</code>'s and otherwise un-predictable content such as ads or 'recommended content' type stuff.</p>

<p>Now, there are some instances in which there are elements other than just the <code>&lt;p&gt;</code> tags, which has content that is contextually important to the main content, such as lists.</p>

<p>Is there a way to get the content from the <code>&lt;div class="the-one-i-want"&gt;</code> in a manner as such:</p>

<pre><code>soup = Beautifulsoup(html.text, 'lxml')
content = soup.find('div', class_='the-one-i-want').findAll(desired-content-elements)
</code></pre>

<p>Where <code>desired-content-elements</code>would be inclusive of every element that I deemed fit for that particular content? Such as, all <code>&lt;p&gt;</code> tags, all <code>&lt;ol&gt;</code> and <code>&lt;li&gt;</code> tags, but no <code>&lt;div&gt;</code> or <code>&lt;script&gt;</code> tags.</p>

<p>Perhaps noteworthy, is my method of saving the content:</p>

<pre><code>content_string = ''
for p in content:
    content_string += str(p)
</code></pre>

<p>This approach collects the data, in order of occurrence, which would prove difficult to manage if I simply found different element types through different iteration processes. I'm looking to NOT have to manage re-construction of split lists to re-assemble the order in which each element originally occurred in the content, if possible.</p>