>>> soup.findAll('item')[1].title
<title>Nov 24 | 8:00AM | Sole In. Peace Out. </title>
>>> soup.findAll('item')[1].title.text
u'Nov 24 | 8:00AM | Sole In. Peace Out.'
>>> date, _, title = soup.findAll('item')[1].title.text.rpartition(' | ')
>>> date
u'Nov 24 | 8:00AM'
>>> title
u'Sole In. Peace Out.'
>>> from datetime import datetime
>>> date = datetime.strptime(date, "%b %d | %I:%M%p").replace(year=datetime.now().year)
>>> dict(date=date, title=title)
{'date': datetime.datetime(2010, 11, 24, 8, 0), 'title': u'Sole In. Peace Out.'}
Обратите внимание, что это также включает время суток.
А потом, как я думаю, вам нужны все элементы,
>>> from datetime import datetime
>>> matches = []
>>> for item in soup.findAll('item'):
... date, _, title = item.title.text.rpartition(' | ')
... matches.append(dict(date=datetime.strptime(date, '%b %d | %I:%M%p').replace(year=datetime.now().year), title=title))
...
>>> from pprint import pprint
>>> pprint(matches)
[{'date': datetime.datetime(2010, 11, 24, 8, 0),
'title': u'The Americana Indian\u2014American Indian in the American Imagination'},
{'date': datetime.datetime(2010, 11, 24, 8, 0),
'title': u'Sole In. Peace Out.'},
...
{'date': datetime.datetime(2010, 12, 8, 8, 0),
'title': u'Apply to be an FYE Mentor'}]
Если вы хотите более сложную обработку года, вы можете сделать это. Вы поняли.
Последнее добавление: генератором был бы хороший способ использовать это.
from datetime import datetime
import urllib2
from BeautifulSoup import BeautifulSoup
def whatevers():
soup = BeautifulSoup(urllib2.urlopen('http://events.cmich.edu/RssStudentEvents.aspx').read())
for item in soup.findAll('item'):
date, _, title = item.title.text.rpartition(' | ')
yield dict(date=datetime.strptime(date, '%b %d | %I:%M%p').replace(year=datetime.now().year), title=title)
for match in whatevers():
pass # Use match['date'], match['title']. a namedtuple might also be neat here.