Tableau d'analyse Python BeautifulSoup
Question :
J'utilise BeautifulSoup de Python pour analyser un tableau contenant des informations sur les tickets de stationnement, mais j'ai du mal à accéder à des cellules spécifiques du tableau. Quelqu'un peut-il m'aider à extraire toutes les lignes et leurs cellules correspondantes ?
Code pertinent :
<code class="python">soup = BeautifulSoup(plateRequest.text) table = soup.find("table", {"class": "lineItemsTable"}) for row in table.findAll("tr"): cells = row.findAll("td") print(cells)</code>
Solution :
Pour accéder efficacement aux lignes et aux cellules, utilisez le code modifié suivant :
<code class="python">data = [] table = soup.find('table', attrs={'class':'lineItemsTable'}) table_body = table.find('tbody') rows = table_body.find_all('tr') for row in rows: cols = row.find_all('td') cols = [ele.text.strip() for ele in cols] data.append([ele for ele in cols if ele]) # Remove empty values</code>
Sortie :
L'exécution du code révisé fournira une liste de listes, où chaque liste interne représente une ligne du tableau, et chaque élément de la liste interne est le contenu textuel d'une cellule :
[ ['1359711259', 'SRF', '08/05/2013', '5310 4 AVE', 'K', '19', '125.00', '$'], ['7086775850', 'PAS', '12/14/2013', '3908 6th Ave', 'K', '40', '125.00', '$'], ['7355010165', 'OMT', '12/14/2013', '3908 6th Ave', 'K', '40', '145.00', '$'], ['4002488755', 'OMT', '02/12/2014', 'NB 1ST AVE @ E 23RD ST', '5', '115.00', '$'], ['7913806837', 'OMT', '03/03/2014', '5015 4th Ave', 'K', '46', '115.00', '$'], ['5080015366', 'OMT', '03/10/2014', 'EB 65TH ST @ 16TH AV E', '7', '50.00', '$'], ['7208770670', 'OMT', '04/08/2014', '333 15th St', 'K', '70', '65.00', '$'], ['.00\n\n\nPayment Amount:'] ]
Remarques :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!