Rumah >pembangunan bahagian belakang >Tutorial Python >Ralat \'ResultSet\' Sup Cantik: Mengapa `find_all` Gagal pada Objek ResultSet?

Ralat \'ResultSet\' Sup Cantik: Mengapa `find_all` Gagal pada Objek ResultSet?

Patricia Arquette
Patricia Arquetteasal
2024-11-26 08:28:08601semak imbas

Beautiful Soup 'ResultSet' Error: Why Does `find_all` Fail on ResultSet Objects?

Sup Cantik: Menangani Ralat Atribut 'ResultSet'

Apabila cuba mengikis struktur jadual menggunakan Sup Cantik, seseorang mungkin menghadapi ralat : "Objek 'ResultSet' tidak mempunyai atribut 'find_all'". Untuk menyelesaikan masalah ini, adalah penting untuk memahami struktur hasil yang dikembalikan oleh kaedah find_all.

Sifat Objek ResultSet

find_all mengembalikan senarai elemen padanan. Dalam kes anda, jadual mengandungi senarai satu elemen, jadual itu sendiri. Untuk mendapatkan semula baris dalam jadual, anda perlu memanggil find_all pada elemen, bukan pada objek ResultSet:

# Correct: Iterate over table body rows
for row in table[0].find_all('tr'):
    ...

Memahami Mesej Ralat

Mesej ralat "Objek 'ResultSet' tidak mempunyai atribut 'find_all'" menunjukkan bahawa anda cuba memanggil find_all pada Objek ResultSet itu sendiri. Objek ini tidak mempunyai atribut find_all, kerana ia bukan teg tetapi koleksi teg.

Contoh Penyelesaian

Berdasarkan kod yang anda berikan, pembetulan versi ialah:

...
table = soup.find_all(class_='dataframe')[0]  # Select the table element
for row in table.find_all('tr'):
    col = row.find_all('td')
    ...

Atas ialah kandungan terperinci Ralat \'ResultSet\' Sup Cantik: Mengapa `find_all` Gagal pada Objek ResultSet?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn