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
DDDoriginal
2024-10-29 09:08:02273parcourir

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>

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 :

  • 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!

Déclaration:
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