Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Mengelakkan 'TypeError: senarai indeks mestilah integer, bukan str' Apabila Mengekstrak Nilai Atribut dengan BeautifulSoup?

Bagaimana untuk Mengelakkan 'TypeError: senarai indeks mestilah integer, bukan str' Apabila Mengekstrak Nilai Atribut dengan BeautifulSoup?

Patricia Arquette
Lepaskan: 2024-12-02 20:13:11
asal
836 orang telah melayarinya

How to Avoid

Mengekstrak Nilai Atribut dengan BeautifulSoup

Apabila cuba mengekstrak nilai atribut "nilai" tertentu dalam teg "input" menggunakan BeautifulSoup, mesej ralat "TypeError: senarai indeks mestilah integer, bukan str" mungkin berlaku. Isu ini berpunca daripada salah faham tentang cara kaedah .find_all() BeautifulSoup beroperasi.

Pemahaman .find_all()

.find_all() mencari semua kejadian teg yang sepadan dengan atribut yang ditentukan dan mengembalikan senarai elemen. Ini bermakna apabila mengekstrak atribut teg input dengan nama tertentu, operasi mengembalikan elemen yang merupakan ahli senarai itu, bukan nilai atribut itu sendiri.

Membetulkan Kod

Untuk membetulkan ralat, terdapat dua pendekatan:

  1. Gunakan pengindeksan: Akses elemen dalam senarai menggunakan pengindeksan, di mana elemen pertama diwakili oleh input_tag[0]. Kemudian akses atribut 'nilai' elemen itu, contohnya:
input_tag = soup.find_all(attrs={"name": "stainfo"})
output = input_tag[0]['value']
Salin selepas log masuk
  1. Gunakan .find(): Daripada .find_all(), gunakan kaedah .find(), yang hanya mengembalikan elemen padanan pertama:
input_tag = soup.find(attrs={"name": "stainfo"})
output = input_tag['value']
Salin selepas log masuk

Dengan melaksanakan salah satu daripada pengubahsuaian ini, kod akan ekstrak nilai atribut yang diingini dengan betul, keluarkan pengecualian "TypeError".

Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan 'TypeError: senarai indeks mestilah integer, bukan str' Apabila Mengekstrak Nilai Atribut dengan 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