obtener el atributo div val y el cuerpo del texto div

Aquí hay un pequeño código para obtener el valor div attr. Todos los nombres div son iguales con el mismo nombre de atributo.

redditFile = urllib2.urlopen("http://www.bing.com/videos?q=owl")
redditHtml = redditFile.read()
redditFile.close()
soup = BeautifulSoup(redditHtml)

productDivs = soup.findAll('div', attrs={'class' : 'dg_u'})
for div in productDivs:
    print div.find('div', {"class":"vthumb"})['smturl']
    #print div.find("div", {"class":"tl text-body"}) This print none rather then div text

primero imprime algunas URL (algunas veces 4,6,8, etc.) y luego

KeyError                                  Traceback (most recent call last)
<ipython-input-34-cc950a8a84f7> in <module>()
     26 productDivs = soup.findAll('div', attrs={'class' : 'dg_u'})
     27 for div in productDivs:
---> 28     print div.find('div', {"class":"vthumb"})['smturl']
     29     print div.find("div", {"class":"tl text-body"})

/usr/local/lib/python2.7/dist-packages/bs4/element.pyc in __getitem__(self, key)
    903         """tag[key] returns the value of the 'key' attribute for the tag,
    904         and throws an exception if it's not there."""
--> 905         return self.attrs[key]
    906 
    907     def __iter__(self):

KeyError: 'smturl'

ya que todos los nombres div son iguales con el mismosmturl nombre de atributo, por qué daKeyError ¿alguna ayuda?

Respuestas a la pregunta(1)

Su respuesta a la pregunta