Sto cercando di estrarre la prima e la terza colonna di this data table utilizzando BeautifulSoup. Dall'osservazione dell'HTML, la prima colonna ha un tag <th>
. L'altra colonna di interesse ha come tag <td>
. In ogni caso, tutto quello che sono riuscito a ottenere è un elenco della colonna con i tag. Ma, voglio solo il testo.Estrazione di colonne selezionate da una tabella utilizzando BeautifulSoup
table
è già un elenco, quindi non è possibile utilizzare findAll(text=True)
. Non sono sicuro di come ottenere l'elenco della prima colonna in un altro formato.
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
Non credo che sarete in grado di ottenere l'intera colonna come la rappresentazione HTML è basata su file (potrebbe essere sbagliato però). Immagino che potresti approssimare qualcosa facendo scorrere le righe e tirando fuori la colonna corrispondente, aggiungendola a una struttura dati di tua scelta. – RocketDonkey
Ho iniziato provandolo ma non riuscivo ancora a tirare fuori il testo. Aggiornerò la mia risposta per includere quella parte. Forse è una strada più facile da percorrere. – mac389