BeautifulSoup en Python - l'obtention de la n-ème de tag de type

J'ai un code html qui contient de nombreux <table>s.

Je vais essayer d'obtenir les informations contenues dans le second tableau. Est-il un moyen de le faire sans l'aide de soup.findAll('table') ?

Lorsque j'utilise soup.findAll('table'), j'obtiens une erreur:

ValueError: too many values to unpack

Est-il un moyen pour obtenir le n-ème balise code ou d'une autre manière qui ne nécessite pas de passer par toutes les tables? Ou devrais-je voir si je peux ajouter des titres aux tables? (comme <table title="things">)

Il y a aussi des en-têtes (<h4>title</h4>) au-dessus de chaque table, si cela aide.

Grâce.

MODIFIER

Voici ce que je pensais lorsque j'ai posé la question:

J'ai été déballage des objets en deux valeurs, quand il y avait beaucoup plus. Je pensais que ce serait juste de me donner les deux premières choses à partir de la liste, mais bien sûr, elle a gardé de me donner l'erreur mentionnée ci-dessus. J'étais pas au courant de la valeur de retour est une liste et pensé que c'était un objet spécial ou quelque chose et j'ai fondé mon code de mon amis.

Je pensais à cette erreur signifie qu'il n'y en avait trop, les tableaux de la page et qu'il ne pouvait pas les traiter, donc j'ai demandé un moyen de le faire sans la méthode que j'utilisais. Je devrais probablement avoir arrêté en supposant que les choses.

Maintenant je sais que ça renvoie une liste et je peux l'utiliser dans une boucle for ou obtenir une valeur avec soup.findAll('table')[someNumber]. J'ai appris ce déballage est et comment l'utiliser ainsi. Merci à tous ceux qui ont aidé.

J'espère que ça efface les choses, maintenant que je sais ce que je fais à ma question moins de sens que lorsque je l'avais demandé, j'ai donc pensé que je venais de mettre ici une note sur ce que je pensais.

EDIT 2:

Cette question est maintenant assez vieux, mais je vois encore que je n'ai jamais été très clair sur ce que je faisais.

Si ça aide quelqu'un, j'ai été de tenter de décompresser le findAll(...) résultats, dont le montant est à eux que je ne connaissais pas.

useless_table, table_i_want, another_useless_table = soup.findAll("table");

Comme il n'y avait pas toujours le nombre de tables que j'avais deviné à la page, et toutes les valeurs du tuple besoin d'être déballé, j'ai reçu le ValueError:

ValueError: too many values to unpack

Donc, je cherchais le moyen de saisir la deuxième (ou quel que soit l'indice) de la table dans le tuple retourné sans que des erreurs sur le nombre de tables ont été utilisés.

en faisant soup.findAll('table') n' pas provoquer un ValueError. Merci de poster votre code complet. too many values to unpack signifie que vous disposez de plusieurs variables sur la partie gauche de l'expression.
soup.find(title="things") ??
Au sommet de la poste, j'ai dit que je l'utilise sur code avec de nombreux <table>s en elle. Je l'utilise sur cette page: view-source:dhmc.us/joueurs/view/nasonfish et je suis en utilisant ce code: table1, table2 = soup.find_all('table')
soup.find_all('table') renvoie une liste. tables = soup.find_all('table') devrait fonctionner
L'erreur indique que vous avez plus que 2 tables, donc le décompresser échoue. Ne pas utiliser un tuple déballage dans ce cas.

OriginalL'auteur nasonfish | 2012-12-30