Strip HTML tags to get strings in python
Question: I tried to get some strings from an HTML file with BeautifulSoup and everytime
I work with it I get partial results.

I want to get the strings in every li element/tag. So far I've been able to
get everything in ul like this.

    
    
    #!/usr/bin/python
    from bs4 import BeautifulSoup
    page = open("page.html")
    soup = BeautifulSoup(page)
    source = soup.select(".sidebar li")
    

And what I get is this:

    
    
    [<li class="first">
            Def Leppard -  Make Love Like A Man<span>Live</span> </li>, <li>
            Inxs - Never Tear Us Apart        </li>, <li>
            Gary Moore - Over The Hills And Far Away        </li>, <li>
            Linkin Park -  Numb        </li>, <li>
            Vita De Vie -  Basul Si Cu Toba Mare        </li>, <li>
            Nazareth - Love Hurts        </li>, <li>
            U2 - I Still Haven't Found What I'm L        </li>, <li>
            Blink 182 -  All The Small Things        </li>, <li>
            Scorpions -  Wind Of Change        </li>, <li>
            Iggy Pop - The Passenger        </li>]
    

I want to get only the strings from this.


Answer: Use beautiful soups - .strings method.

    
    
    for string in soup.stripped_strings:
    print(repr(string))
    

from the docs:

> If there’s more than one thing inside a tag, you can still look at just the
> strings. Use the .strings generator:

or

> These strings tend to have a lot of extra whitespace, which you can remove
> by using the .stripped_strings generator instead:

