Вы должны использовать lxml . Он работает с несколькими значениями классов, разделенными пробелами ('class1 class2').
Несмотря на название, lxml также предназначен для анализа и очистки HTML. Это намного, намного быстрее, чем BeautifulSoup, и он даже обрабатывает «сломанный» HTML лучше, чем BeautifulSoup (их претензия на известность). Он также имеет API совместимости для BeautifulSoup, если вы не хотите изучать lxml API.
Ян Бикинг соглашается и предпочитает lxml, а не BeautifulSoup.
Больше нет смысла использовать BeautifulSoup, если только вы не работаете в Google App Engine или чего-то, где что-либо, кроме Python, запрещено.
Вы даже можете использовать CSS-селекторы с lxml, так что это намного проще в использовании, чем BeautifulSoup. Попробуйте поиграть с ним в интерактивной консоли Python.