text = (
    """<ul class="definitions"><li><span>noun</span> the joining together of businesses which deal with different stages in the production or <a href="sale.html">sale</a> of the same <u slug="product">product</u>, as when a restaurant <a href="chain.html">chain</a> takes over a <a href="wine.html">wine</a> importer</li></ul>"""
    )
match_pattern = re.compile(
    """
                (?P<label>(?<=<span>)\\w+?(?=</span>)) 
                                                         item for groupdict()
                 """
    , re.VERBOSE)
match = match_pattern.search(text)
match.groupdict()
How to extract and ignore span in markup? - python