Maison > développement back-end > Tutoriel Python > Comment extraire des cellules spécifiques d'un tableau à l'aide de BeautifulSoup de Python ?

Comment extraire des cellules spécifiques d'un tableau à l'aide de BeautifulSoup de Python ?

DDD
Libérer: 2024-10-29 09:08:02
original
268 Les gens l'ont consulté

How to Extract Specific Cells from a Table Using Python's BeautifulSoup?

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>
Copier après la connexion

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>
Copier après la connexion

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:']
]
Copier après la connexion

Remarques :

  • La dernière ligne de la sortie correspond au montant du paiement, qui ne fait pas partie du tableau.
  • La dernière colonne de chaque ligne représente une zone de texte de saisie et peut nécessiter un traitement spécial.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal