Pembalakan dan Pengendalian Ralat untuk Bot
Bina bot ringkas yang tahan lasak dengan menambah pembalakan berstruktur dan pengendalian ralat berhemah supaya kegagalan dapat dilihat dan dipulihkan.
Pembalakan dan Pengendalian Ralat untuk Bot ialah pelajaran Pengikisan Web dan Pembangunan Bot percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Pengikisan Web dan Pembangunan Bot, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Pengikisan Web dan Pembangunan Bot merangkumi sejumlah 4 pelajaran.
Mengapa Bot Memerlukan Log
Bot berjalan tanpa pengawasan, selalunya mengikut jadual. Apabila sesuatu rosak, Anda tidak sedang memerhatikannya. Pengelogan meninggalkan jejak supaya Anda boleh mendiagnosis perkara yang berlaku selepas itu.
Tanpa log, kegagalan senyap boleh tidak disedari selama berhari-hari.
print() Bukan Pengelogan
Pemula menggunakan print(), tetapi ia tiada aras, tiada cap masa dan tiada cara mudah untuk mengubah hala ke fail. Modul Python logging menyelesaikan semua masalah ini.
print('something happened') # no level, no time, hard to manageMenyediakan Pengelogan
Konfigurasikan pengelogan sekali ketika permulaan. Tetapkan format dengan cap masa dan aras, kemudian pilih destinasi output.
import logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s %(levelname)s %(message)s'
)
log = logging.getLogger('bot')
log.info('Bot started')Aras Log
Aras membolehkan Anda mengawal tahap perincian:
DEBUGjejak terperinci.INFOkemajuan biasa.WARNINGsesuatu yang ganjil tetapi boleh dipulihkan.ERRORoperasi gagal.CRITICALbot tidak boleh meneruskan.
log.debug('fetched 12 rows')
log.warning('retrying after timeout')
log.error('login failed')Mengelog ke Fail
Untuk bot tanpa pengawasan, tulis log ke fail supaya Anda boleh menyemaknya kemudian. Pengendali berputar mengehadkan saiz fail.
from logging.handlers import RotatingFileHandler
handler = RotatingFileHandler('bot.log', maxBytes=1_000_000, backupCount=3)
log.addHandler(handler)Menangkap Pengecualian
Bungkus operasi berisiko dalam try/except supaya satu kegagalan tidak merosakkan keseluruhan tugas. Logkan ralat bersama konteksnya.
try:
submit_form(data)
except Exception as e:
log.error('form submission failed: %s', e)Mengelog Jejak Timbunan Penuh
Gunakan log.exception di dalam blok except untuk menangkap jejak timbunan penuh, yang amat berguna bagi penyahpepijatan.
try:
risky()
except Exception:
log.exception('unexpected error in risky()')Mencuba Semula Kegagalan Sementara
Gangguan rangkaian ialah perkara biasa. Tangkapnya dan cuba semula beberapa kali sebelum berputus asa, sambil mengelog setiap percubaan.
for attempt in range(3):
try:
fetch()
break
except ConnectionError:
log.warning('attempt %d failed, retrying', attempt + 1)
else:
log.error('all attempts failed')Gagal dengan Jelas
Kegagalan senyap berbahaya. Untuk ralat kritikal, tingkatkan tindakan: hantar e-mel amaran, tulis fail penanda atau keluar dengan kod bukan sifar supaya penjadual menyedarinya.
import sys
if not data:
log.critical('no data scraped, aborting')
sys.exit(1)Penutupan Bersih
Sentiasa lepaskan sumber walaupun berlaku ralat. Blok finally atau pengurus konteks menjamin pelayar ditutup dan fail dikosongkan tanpa mengira perkara yang berlaku.
try:
run_bot()
finally:
driver.quit()
log.info('bot finished')Konteks Pengelogan Berstruktur
Lampirkan konteks pada setiap baris log, seperti URL semasa atau id item, supaya apabila Anda meneliti log yang panjang, Anda terus mengetahui rekod yang dirujuk oleh sesuatu mesej.
log.info('scraped item %s from %s', item_id, url)Semakan Pantas
Uji pemahaman Anda tentang pengelogan bot dan pengendalian ralat.
Imbas Kembali
Anda telah belajar menjadikan bot mudah tahan lasak: gunakan modul logging dan bukannya print, pilih aras yang sesuai, logkan ke fail berputar, tangkap dan logkan pengecualian bersama jejak timbunan, cuba semula ralat sementara, gagal dengan jelas bagi isu kritikal dan lakukan penutupan dengan bersih.
Pelajari Python dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 12
- Pelajaran
- 48
Soalan Lazim
Adakah pelajaran “Pembalakan dan Pengendalian Ralat untuk Bot” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Pengikisan Web dan Pembangunan Bot, termasuk “Pembalakan dan Pengendalian Ralat untuk Bot”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Pengikisan Web dan Pembangunan Bot merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Pembalakan dan Pengendalian Ralat untuk Bot”?
Bina bot ringkas yang tahan lasak dengan menambah pembalakan berstruktur dan pengendalian ralat berhemah supaya kegagalan dapat dilihat dan dipulihkan. Anda berlatih Pengikisan Web dan Pembangunan Bot menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Pengikisan Web dan Pembangunan Bot?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Pengikisan Web dan Pembangunan Bot di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.
Berapa lamakah pelajaran “Pembalakan dan Pengendalian Ralat untuk Bot” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Pengikisan Web dan Pembangunan Bot ini?
Ya. Setiap pelajaran Pengikisan Web dan Pembangunan Bot menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Menentukan Objektif Bot
- Mengautomatikkan Penghantaran Borang Mudah
- Menjadualkan Tugasan Asas
- Pembalakan dan Pengendalian Ralat untuk Bot