Quelqu'un peut-il me dire comment je peux obtenir la table dans une page HTML qui a le plus de lignes? J'utilise BeautifulSoup.Obtenir une table avec le nombre maximum de lignes dans une page en utilisant BeautifulSoup
Il y a cependant un petit problème. Parfois, il semble y avoir une table imbriquée dans une autre.
<table>
<tr>
<td>
<table>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</table>
<td>
</tr>
</table>
Lorsque le code table.findAll('tr')
exécute, il compterait toutes les lignes de l'enfant pour la table et les lignes de la table imbriquée dessous. La table parente a juste une rangée mais la table imbriquée a trois et je considérerais que c'est la plus grande table. Voici le code que j'utilise pour extraire la plus grande table actuellement, mais il ne tient pas compte du scénario susmentionné.
soup = BeautifulSoup(html)
#Get the largest table
largest_table = None
max_rows = 0
for table in soup.findAll('table'):
number_of_rows = len(table.findAll('tr'))
if number_of_rows > max_rows:
largest_table = table
max_rows = number_of_rows
Je suis vraiment perdu avec ça. Toute aide les gars?
Merci à l'avance
Ne vous avez une classe ou id qui pourraient être utilisés pour distinguer les tables? – systempuntoout