


Kenapa saya mendapat ralat 'senarai keluar dari jarak' apabila menggunakan crawler python?
Ralat "Senarai Indeks Keluar Daripada" dalam Python Crawler: Sebab dan Penyelesaian
Apabila menggunakan Python dan BeautifulSoup untuk merangkak web, anda sering menemui list index out of range
kesilapan. Masalah ini boleh berlaku walaupun kod tidak diubahsuai, terutamanya apabila berurusan dengan laman web dinamik atau perubahan struktur laman web. Artikel ini menganalisis punca kesilapan ini dan menyediakan penyelesaian yang berkesan.
Berikut adalah kod sampel yang menunjukkan apa yang mungkin menyebabkan kesilapan ini berlaku:
permintaan import dari bs4 import cantikSoup headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) Applewebkit/537.36 (khtml, seperti gecko) Chrome/124.0.0.0 Safari/537.36 edg/124.0.0'} respons = requests.get ("https://www.iqiyi.com/ranks1/3/0", headers = headers) cetak (respons.status_code) respons = response.text sup = indahSoup (respons, "html.parser") def extract_data (): tajuk = [title.get_text (). Strip () untuk tajuk dalam soup.find_all ("div", kelas _ = "rvi__tit1")] haba = [heat.get_text (). Strip () untuk haba dalam sup.find_all ("span", kelas _ = "rvi__index__num")] Pengenalan = [intro.get_text (). Strip () untuk intro dalam sup.find_all ("p", kelas _ = "rvi__des2")] Tajuk kembali, panas, perkenalan def display_data (tajuk, haba, perkenalan): min_len = min (len (tajuk), len (haba), len (perkenalan)) untuk saya dalam julat (min_len): cetak (f "ranking: {i 1}, tajuk: {tajuk [i]}, populariti: {heat [i]}, pengenalan: {pengenalan [i]}") jika __name__ == '__main__': tajuk, haba, pengenalan = extract_data () display_data (tajuk, haba, perkenalan)
Dalam contoh ini, list index out of range
biasanya berlaku dalam fungsi display_data
. Alasannya ialah: panjang tiga senarai titles
, heat
, dan introductions
mungkin tidak konsisten. Jika salah satu senarai mempunyai panjang kurang daripada 10 (atau julat gelung), ralat indeks yang terikat akan berlaku apabila mengakses elemen senarai.
Penyelesaian:
Kuncinya adalah untuk memastikan bahawa sebelum mengakses elemen senarai, panjang senarai diperiksa dan hanya elemen dalam julat indeks yang sah diakses. Kod yang lebih baik adalah seperti berikut:
permintaan import dari bs4 import cantikSoup # ... (tajuk dan permintaan tetap sama) ... def extract_data (): # ... (Pengekstrakan tetap sama) ... def display_data (tajuk, haba, perkenalan): min_len = min (len (tajuk), len (haba), len (perkenalan)) # Cari senarai terpendek untuk saya dalam julat (min_len): cetak (f "ranking: {i 1}, tajuk: {tajuk [i]}, populariti: {heat [i]}, pengenalan: {pengenalan [i]}") jika __name__ == '__main__': tajuk, haba, pengenalan = extract_data () display_data (tajuk, haba, perkenalan)
Dengan mengira panjang terpendek dari tiga senarai min_len
dan menggunakan min_len
sebagai julat gelung, kami memastikan bahawa tiada elemen di luar julat indeks senarai diakses, dengan berkesan mengelakkan list index out of range
. Ini adalah cara pemprosesan yang lebih mantap yang boleh menyesuaikan diri dengan perubahan dalam struktur laman web yang berbeza dan jumlah data. Di samping itu, menambahkan mekanisme pengendalian ralat (seperti blok try-except
) juga merupakan amalan pengaturcaraan yang baik yang dapat mengendalikan situasi yang lebih kompleks.
Atas ialah kandungan terperinci Kenapa saya mendapat ralat 'senarai keluar dari jarak' apabila menggunakan crawler python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Inpython, youAppendElementStoalistusingTheAppend () method.1) useAppend () forsingLements: my_list.append (4) .2) useextend () or = formultipleelements: my_list.extend (lain_list) ormy_list = [4,5,6] .3) UseInsert () ForSpecificPositions: my_list.insert (1,5) .beaware

Kaedah untuk debug masalah shebang termasuk: 1. Semak garis shebang untuk memastikan ia adalah baris pertama skrip dan tidak ada ruang prefixed; 2. Sahkan sama ada laluan penterjemah adalah betul; 3. Panggil jurubahasa secara langsung untuk menjalankan skrip untuk mengasingkan masalah shebang; 4. Gunakan tali atau amanah untuk mengesan panggilan sistem; 5. Periksa kesan pembolehubah persekitaran pada shebang.

PythonlistscanbemanipulaterAnseveralMethodstoremoveelements: 1) theremove () methodRemoveStHefirStoccrencrentrenceAfaspiedValue.2)

Pythonlistscanstoreanydatatype, termasuk interintegers, strings, floats, booleans, otherlists, dandictionaries

PythonlistsSupportnumerousoperations: 1) addingElementSwithAppend (), extend (), andInsert ()

Buat tatasusunan pelbagai dimensi dengan numpy dapat dicapai melalui langkah-langkah berikut: 1) Gunakan fungsi numpy.array () untuk membuat array, seperti Np.Array ([[1,2,3], [4,5,6]]) untuk membuat array 2D; 2) Gunakan np.zeros (), np.ones (), np.random.random () dan fungsi lain untuk membuat array yang diisi dengan nilai tertentu; 3) Memahami sifat bentuk dan saiz array untuk memastikan bahawa panjang sub-array adalah konsisten dan mengelakkan kesilapan; 4) Gunakan fungsi np.reshape () untuk mengubah bentuk array; 5) Perhatikan penggunaan memori untuk memastikan bahawa kod itu jelas dan cekap.

Broadcastinginginnumpyisamethodtoperformoperationsonarraysofdifferentshapesbyautomaticallyaligningthem.itsImplifiescode, enhancesreadability, andboostsperformance.here'showitworks: 1) smallerarraysarepaddedwithonestomatchdimensions.2) CompatibeSt

Forpythondatastorage, chooselistsforflexabilityWithMixedDatatypes, array.arrayformemory-efficienthomogeneousnumericaldata, andnumpyarraysforadvancednumericalcomputing.listsareversatileButlessefficefientfientfientfientfientfientfientfientfientfientfientfientforydodeSforayDataSetSetShiSforayDataSetSetShiSforayDataSetSetShiSforayDataSetSetShoFficeSforaydataSetShoSforayDataSetsforayDataSetsforayDataSetsforaydataSetShiSforayDodeSforayDodeSforaydataSetRaydataSetRaydataSetRaydataSet


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

Dreamweaver CS6
Alat pembangunan web visual

Dreamweaver Mac版
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna
