2017-10-12 1 views
0

je pour obtenir des attributs de balise par cettebeautifulsoup extracking TypeError attribut: objet « NoneType » est pas itérables

for a in soup.find_all('img', {'data-event': 'Clicked image'}, 
src=True,alt=True): 
    itemobj = a['src'] + ' --- ' + a['alt'] 

Maintenant, je travaille sur un autre site et quand j'ai essayé cela, il a jeté TypeError: objet « NoneType » n'est pas Iterable

song_link = line.find('td').find('a')['href'] (This works well) 
sss = line.find('span')['title'] (This in not working. But when I delete ['title'] part it works and shows inside of the <span> tag 

Mes données:

<span class="rating" title="4.5"> 
      <span class="icon-rating-sm icon-rating-sm__active"></span> 
      <span class="icon-rating-sm icon-rating-sm__active"></span> 
      <span class="icon-rating-sm icon-rating-sm__active"></span> 
      <span class="icon-rating-sm icon-rating-sm__active"></span> 
      <span class="icon-rating-sm icon-rating-sm__half"></span> 
</span> 

J'ai la solution recherche pour THI s mais jusqu'à présent, aucun d'entre eux a travaillé pour moi.

+1

Pouvez-vous clarifier votre question? Qu'avez-vous stocké dans la variable 'line'? Est-ce les données que vous avez publiées? –

Répondre

0

Lorsque j'ai essayé votre code sur les données que vous avez fournies, cela a bien fonctionné pour moi, donc je vais supposer qu'il y a plus de données à cela.

soup.find('span')['title'] 

vérifie la première chose qu'il trouve avec « span », si cela ne contient pas de balise de titre, il renvoie une exception.

par exemple. sur

<span></span> 
<span class="rating" title="4.5"> 
     <span class="icon-rating-sm icon-rating-sm__active"></span> 
     <span class="icon-rating-sm icon-rating-sm__active"></span> 
     <span class="icon-rating-sm icon-rating-sm__active"></span> 
     <span class="icon-rating-sm icon-rating-sm__active"></span> 
     <span class="icon-rating-sm icon-rating-sm__half"></span> 
</span> 

le code ne fonctionne pas.

Au moins c'est ce qui m'est arrivé plusieurs fois.