Je suit le code python:Beautiful Soup: Obtenez le contenu des sous-noeuds
def scrapeSite(urlToCheck):
html = urllib2.urlopen(urlToCheck).read()
from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup(html)
tdtags = soup.findAll('td', { "class" : "c" })
for t in tdtags:
print t.encode('latin1')
Cela me retourner suivant le code html:
<td class="c">
<a href="more.asp">FOO</a>
</td>
<td class="c">
<a href="alotmore.asp">BAR</a>
</td>
J'aimerais obtenir le texte entre le a-Node (par exemple FOO ou BAR), qui serait t.contents.contents. Malheureusement, cela ne fonctionne pas si facilement :) Quelqu'un at-il une idée de comment résoudre ce problème?
Merci beaucoup, toute aide est appréciée!
Cheers, Joseph
Non cela ne fonctionne pas, ceci est le message d'erreur: AttributeError: objet 'NavigableString' n'a aucun attribut 'contenu' –
@Joseph: J'ai testé cela et cela fonctionne sur BeautifulSoup 3.0.4, Python 2.5 .. Si cela ne fonctionne pas pour vous, vous pouvez avoir des contenus différents dans la liste du contenu réel. J'ai modifié la réponse avec une solution plus générique. –
Le t.find ('a'). Contents [0] -part a fait l'affaire :) Merci beaucoup –