Sie lxml verwenden sollten. Es arbeitet mit mehreren durch Leerzeichen getrennten Klassenwerten ('class1 class2').
Trotz seines Namens ist lxml auch zum Parsen und Scrappen von HTML. Es ist viel, viel schneller als BeautifulSoup und behandelt sogar "kaputtes" HTML besser als BeautifulSoup (ihr Anspruch auf Ruhm). Es hat auch eine Kompatibilitäts-API für BeautifulSoup, wenn Sie die lxml-API nicht lernen wollen.
Ian Bicking agrees und bevorzugt lxml über BeautifulSoup.
Es gibt keinen Grund mehr, BeautifulSoup zu verwenden, es sei denn, Sie befinden sich in der Google App Engine oder in einer anderen Umgebung, in der Python nicht erlaubt ist.
Sie können auch CSS-Selektoren mit lxml verwenden, so ist es viel einfacher zu bedienen als BeautifulSoup. Probieren Sie es in einer interaktiven Python-Konsole aus.
** Update **: Diese wurde in 4 Beta angeblich 5 fixiert: https://bugs.launchpad.net/beautifulsoup/+bug/410304 – endolith