est ici un morceau de code HTML (de délicieux):Python et BeautifulSoup, ne trouvant pas 'a'
<h4>
<a rel="nofollow" class="taggedlink " href="http://imfy.us/" >Generate Secure Links with Anonymous Referers & Anti-Bot Protection</a>
<span class="saverem">
<em class="bookmark-actions">
<strong><a class="inlinesave action" href="/save?url=http%3A%2F%2Fimfy.us%2F&title=Generate%20Secure%20Links%20with%20Anonymous%20Referers%20%26%20Anti-Bot%20Protection&jump=%2Fdux&key=fFS4QzJW2lBf4gAtcrbuekRQfTY-&original_user=dux&copyuser=dux&copytags=web+apps+url+security+generator+shortener+anonymous+links">SAVE</a></strong>
</em>
</span>
</h4>
Je suis en train de trouver tous les liens où class = "Action inlinesave". Voici le code:
sock = urllib2.urlopen('http://delicious.com/theuser')
html = sock.read()
soup = BeautifulSoup(html)
tags = soup.findAll('a', attrs={'class':'inlinesave action'})
print len(tags)
Mais il ne trouve rien!
Des pensées?
Merci
Qu'advient-il si vous utilisez 'tags = soupe. findAll ('a', attrs = {'class': 'inlinesave'}) 'à la place? –
Hmmm ... ça marche !! Toute explication raisonnable à pourquoi ?? – pns
Les attributs de classe multiples sont séparés par des espaces. L'ancre en question a assigné des classes "inlinesave" et "action". Je suppose que c'est pourquoi la recherche de l'un ou l'autre nom de classe fonctionnera. – Haes