web-dev-qa-db-fra.com

Belle soupe trouver des enfants pour une div particulière

J'ai essayé d'analyser une page Web qui ressemble à ceci avec Python-> Beautiful Soup:enter image description here

J'essaie d'extraire le contenu de la div td en surbrillance. Actuellement, je peux obtenir tous les divs en

alltd = soup.findAll('td')


for td in alltd:
    print td

Mais j'essaie de restreindre la portée de cela pour rechercher les tds dans la classe "tablebox" qui renverra probablement encore 30+ mais qui est plus gérable que 300+.

Comment puis-je extraire le contenu du td en surbrillance dans l'image ci-dessus?

31
Nick

Il est utile de savoir que quels que soient les éléments que BeautifulSoup trouve dans un élément, ils ont toujours le même type que cet élément parent, c'est-à-dire que diverses méthodes peuvent être appelées.

C'est donc du code qui fonctionne quelque peu pour votre exemple:

soup = BeautifulSoup(html)
divTag = soup.find_all("div", {"class": "tablebox"}):

for tag in divTag:
    tdTags = tag.find_all("td", {"class": "align-right"})
    for tag in tdTags:
        print tag.text

Cela imprimera tout le texte de toutes les balises td avec la classe "align-right" qui ont un div parent avec la classe de "tablebox".

55
Bo Milanovich