J'ai essayé d'analyser une page Web qui ressemble à ceci avec Python-> Beautiful Soup:
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?
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".