Rumah >pembangunan bahagian belakang >Tutorial Python >Ralat \'ResultSet\' Sup Cantik: Mengapa `find_all` Gagal pada Objek ResultSet?
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!