Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana Mengendalikan Keputusan `Tiada` Apabila Menggunakan Kaedah `find` dan `select_one` BeautifulSoup?

Bagaimana Mengendalikan Keputusan `Tiada` Apabila Menggunakan Kaedah `find` dan `select_one` BeautifulSoup?

Susan Sarandon
Lepaskan: 2024-11-12 12:55:02
asal
666 orang telah melayarinya

How to Handle `None` Results When Using BeautifulSoup's `find` and `select_one` Methods?

Memahami Tiada Hasil dalam BeautifulSoup

BeautifulSoup menyediakan kaedah untuk mengekstrak elemen daripada dokumen HTML. Walaupun sesetengah kaedah mengembalikan senarai elemen, yang lain direka untuk mencari hasil tunggal. Apabila kaedah terakhir gagal mencari elemen, ia mengembalikan Tiada.

Mengapa Tiada Berlaku

Tiada berlaku apabila kaedah find atau select_one tidak dapat mengesan elemen yang sepadan dengan kriteria carian. Ini boleh berlaku jika:

  • Elemen tidak wujud dalam dokumen HTML.
  • Kriteria carian tidak betul atau terlalu khusus.

Mengelakkan AttributeError : Objek 'NoneType' tidak mempunyai atribut...

Untuk mengelakkan ralat ini, adalah penting untuk mengendalikan hasil None dengan anggun. Berikut ialah beberapa strategi:

Semak untuk Tiada

Sebelum cuba mengakses atribut atau kaedah pada hasil kaedah cari atau pilih_satu, semak sama ada hasilnya Tiada.

soup = BeautifulSoup(...)
result = soup.find('a', class_='brother')
if result is None:
    # Handle the case where no element was found
Salin selepas log masuk

Kendalikan Tiada Dengan Sewajarnya

Bergantung pada konteks, terdapat beberapa cara untuk mengendalikan Tiada:

  • Tingkatkan pengecualian: Lemparkan pengecualian tersuai jika elemen yang dijangkakan tidak ditemui.
  • Sediakan nilai lalai: Jika elemen adalah pilihan, tetapkan nilai lalai kepada pembolehubah.
  • Log an ralat: Beritahu pengguna atau pentadbir bahawa elemen itu tidak ditemui.

Contoh:

soup = BeautifulSoup(...)
result = soup.find('a', class_='brother')
if result is None:
    print("No brother link found.")
elif not result.text:
    print("The brother link has no text.")
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana Mengendalikan Keputusan `Tiada` Apabila Menggunakan Kaedah `find` dan `select_one` BeautifulSoup?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan