Seems to me you don't need regex, nor the call to list() at all for that
free_food = [s for s in soup.stripped_strings if "free" in s.lower()]
works free_food = [s for s in soup.stripped_strings if "free" in s.lower()]
works free_food = any(s for s in soup.stripped_strings if ...) free_food = 'free' in soup.get_text().lower()Also, lxml is over 20x faster than BeautifulSoup, although it doesn't really matter with such a low frequency of requests, it's something to note if you had another project that required parsing e.g. 1,000's of html pages.