Вы можете взглянуть на API PyQuery . Он обеспечивает такой же синтаксис селектора css, как и jQuery, и он намного быстрее, чем beautifulsoup, потому что для анализа он использует lxml.
import pyquery.PyQuery as pq # you can treat it as a css selector
html = '<div class="foo"><a href="somewhere"></a></div>'
parsed = pq(html) # PyQuery object, is a callable
pq_list = parsed('.foo a') # doing css selection
for node in pq_list: # node here is a lxml element object
print node.attrib['href'] # => somewhere