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:
input_tag = soup.find_all(attrs={"name": "stainfo"}) output = input_tag[0]['value']
input_tag = soup.find(attrs={"name": "stainfo"}) output = input_tag['value']
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!