title: BeautifulSoup, findAll('table') returns all tables but also the text between them
body: <p>I am trying to isolate part of a webpage, unfortunately it isn't contained within anything that I can pull out.</p>
  
  <p>The closest I can get is to get the entire body of the webpage and then try to remove the tables (which are the only parts I don't want).</p>
  
  <p><a href="http://www.hpfandom.net/eff/viewstory.php?sid=46010&amp;i=1" rel="nofollow">Example Page</a></p>
  
  <p>The code I am using:</p>
  
  <pre><code>storyText = soup.body
  toRemove = storyText.findAll('table')
  for each in toRemove:
      print each
  </code></pre>
  
  <p>The problem at the moment is that the toRemove line returns the tables <em>and</em> the text contained between them though not <em>in</em> them.</p>
  
  <p>So I get:</p>
  
  <pre><code>&lt;body&gt;
  &lt;table&gt;
      table stuff
  &lt;/table&gt;
      Text, not in tags &lt;/br&gt; #This is what I want.
  &lt;table&gt;
      table stuff
  &lt;/table
  &lt;/body&gt;
  </code></pre>
  
  <p>I have worked around my problem by doing the following:</p>
  
  <pre><code># Isolate body
  findBody = soup.body
  new = str(findBody)
  # Section off the text from the tables before it.
  sec = new.split('&lt;/table&gt;')
  # Select story area
  newStory = sec[3]
  # Section off the text from the tables after it.
  newSec = newStory.split('&lt;table')
  # Select the story area, this the area that we want.
  story = newSec[0]
  </code></pre>
  
  <p>I am still looking for an answer as it seems there should be a far cleaner way to do this.</p>