re.findall
требуется шаблон регулярного выражения и строка в качестве аргументов, поэтому вам нужно обернуть ваше регулярное выражение вокруг r"
и "
и избежать любых двойных кавычек по порядку чтобы иметь действительный шаблон:
re.findall(r"('class=\"(a-z_0-9)\"')('dt=\"(0-9.)\"')('>(A-Za-z 0-9)<')",page)
Ваше регулярное выражение также не соответствует требуемой информации. Один из них:
<span.*class="([^"]*)".*dt="([^"]*)".*>(.*)<\/span>
Итак, сложив все вместе, мы получим:
import re
page = """<div>
<span class="item_1" dt="2012.03.12">Item Name 1</span>
<span class="item_2" dt="2012.03.6" time="12:51">Item Name 2</span></div>"""
print(re.findall(r'<span.*class="([^"]*)".*dt="([^"]*)".*>(.*)<\/span>',page))
Что на выходе:
[('item_1', '2012.03.12', 'Item Name 1'), ('item_2', '2012.03.6', 'Item Name 2')]