Unfortunately, it strptimedoes not have format characters for "skip ordinal suffix" - so I would first skip with a small RE and then parse the "clean" string. I.e:.
>>> import re
>>> import datetime
>>> ordn = re.compile(r'(?<=\d)(st|nd|rd|th)\b')
>>> def parse(s):
... cleans = ordn.sub('', s)
... dt = datetime.datetime.strptime(cleans, '%d %B %Y')
... return dt.date()
...
>>> parse('5th November 2010')
datetime.date(2010, 11, 5)
date vs datetime , , .date() datetime ; -).
, dateutil, , "" ( ;-), .