L'extraction de colonnes sélectionnées à partir d'une table à l'aide de BeautifulSoup

Je suis en train d'extraire la première et troisième colonnes de ce tableau de données à l'aide de BeautifulSoup. En regardant le code HTML de la première colonne a une <th> tag. L'autre colonne d'intérêt est que <td> tag. En tout cas, tout ce que j'ai pu sortir une liste de la colonne avec les balises. Mais, je veux juste le texte.

table est déjà une liste donc je ne peux pas utiliser findAll(text=True). Je ne suis pas sûr de la façon d'obtenir la liste de la première colonne dans une autre forme.

from BeautifulSoup import BeautifulSoup
from sys import argv
import re

filename = argv[1] #get HTML file as a string
html_doc = ''.join(open(filename,'r').readlines())
soup = BeautifulSoup(html_doc)
table = soup.findAll('table')[0].tbody.th.findAll('th') #The relevant table is the first one

print table
Je ne crois pas que vous serez en mesure d'obtenir la totalité de la colonne comme la représentation HTML est à base de lignes (peut être mal). J'imagine que vous pouvez approximative de quelque chose en parcourant les lignes et en tirant la colonne correspondante, en l'ajoutant à une structure de données de votre choix.
J'ai commencé par essayer, mais ne pouvait toujours pas retirer le texte. Je vais mettre à jour ma réponse à inclure la partie. Peut-être que c'est un moyen plus facile d'aller.

OriginalL'auteur mac389 | 2012-10-25