Python BeautifulSoup: wildcard attribute/id search

user984003 picture user984003 · Jan 10, 2013 · Viewed 20.8k times · Source

I have this:

dates = soup.findAll("div", {"id" : "date"})

However, I need id to be a wildcard search since the id can be date_1, date_2 etc.

Answer

Jon Clements picture Jon Clements · Jan 10, 2013

You can provide a callable as a filter:

dates = soup.findAll("div", {"id" : lambda L: L and L.startswith('date')})

Or as @DSM points out

dates = soup.findAll("div", {"id" : re.compile('date.*')})

as BeautifulSoup will recognise a RegExp object and call its .match() method.