Python BeautifulSoup Parsing Table
Soalan:
Saya menggunakan BeautifulSoup Python untuk menghuraikan jadual yang mengandungi maklumat tiket letak kereta, tetapi saya bergelut untuk mengakses sel tertentu dalam jadual. Bolehkah sesiapa membantu saya mengekstrak semua baris dan sel yang sepadan?
Kod Berkaitan:
<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>
Penyelesaian:
Untuk mengakses baris dan sel dengan cekap, gunakan kod yang diubah suai berikut:
<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>
Output:
Menjalankan kod yang disemak akan menyediakan senarai senarai, di mana setiap senarai dalam mewakili baris dalam jadual dan setiap elemen dalam senarai dalam ialah kandungan teks sel:
[ ['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:'] ]
Nota:
Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Sel Tertentu daripada Jadual Menggunakan BeautifulSoup Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!