Error ini kadang terjadi saat kita menggunakan pandas untuk membaca html dari sebuah url, misalnya seperti ini:

Nah, kadang ini menyebabkan error seperti ini:

Error SSLCertVerificationError muncul ketika Python tidak dapat memverifikasi sertifikat SSL dari server saat melakukan permintaan HTTPS. Ini sering kali terjadi ketika sertifikat SSL yang digunakan oleh server tidak dapat diverifikasi oleh Python, yang mungkin disebabkan oleh beberapa masalah yang mungkin terjadi. Berikut adalah penjelasan detil dan beberapa penyebab umum:

  1. Tidak Dapat Menemukan Sertifikat Otoritas Sertifikat (CA):
    • Python menggunakan daftar Sertifikat Otoritas Sertifikat (CA) lokal untuk memverifikasi sertifikat SSL server. Jika tidak dapat menemukan atau memverifikasi sertifikat otoritas sertifikat yang diperlukan, maka kesalahan ini dapat terjadi.
    • Solusi: Pastikan bahwa sistem Python Anda memiliki sertifikat otoritas sertifikat yang diperlukan. Anda dapat memperbarui sertifikat otoritas sertifikat dengan menginstal paket sertifikat CA yang diperlukan.
  2. Sertifikat SSL Server Tidak Valid atau Kadaluarsa:
    • Sertifikat SSL yang digunakan oleh server mungkin tidak valid atau telah kedaluwarsa.
    • Solusi: Periksa validitas dan masa berlaku sertifikat SSL server. Jika sertifikat tidak valid, hubungi administrator server atau penyedia sertifikat SSL untuk memperbarui atau mendapatkan sertifikat yang valid.
  3. Masalah Konfigurasi SSL pada Server:
    • Konfigurasi SSL pada server mungkin tidak benar atau tidak lengkap.
    • Solusi: Periksa konfigurasi SSL pada server untuk memastikan bahwa semuanya dikonfigurasi dengan benar.
  4. Penggunaan IP Address Daripada Nama Domain:
    • Jika Anda menggunakan alamat IP server daripada nama domain, sertifikat SSL mungkin terkait dengan nama domain dan bukan IP.
    • Solusi: Gunakan nama domain server daripada alamat IP.
  5. Nonaktifkan Verifikasi SSL (Tidak Disarankan):
    • Tindakan ini sangat tidak aman karena memungkinkan sambungan ke server tanpa verifikasi sertifikat SSL. Sebaiknya hindari tindakan ini kecuali untuk keperluan pengembangan atau debugging.
    • Solusi (Hati-hati): Nonaktifkan verifikasi SSL, namun pastikan untuk memahami risikonya dan hanya gunakan di lingkungan pengembangan.

Solusi

  1. Permintaan HTTP:
    • requests.get(url, verify=False): Membuat permintaan HTTP GET ke url dengan parameter verify=False. Pengaturan verify=False nonaktifkan verifikasi sertifikat SSL, yang dapat berguna dalam kasus seperti yang Anda tunjukkan di mana ada masalah verifikasi sertifikat.
  2. Pengecekan Keberhasilan Permintaan:
    • if response.ok: Memeriksa apakah permintaan berhasil dengan memeriksa apakah status respons HTTP adalah 2xx (sukses).
    • Jika permintaan berhasil ( response.ok bernilai True), maka lanjut ke langkah berikutnya untuk membaca HTML.
    • Jika permintaan gagal ( response.ok bernilai False), cetak pesan “Eror”.
  3. Membaca HTML dengan Pandas:
    • html_content = response.text: Mengambil isi HTML dari respons permintaan.
    • dfs = pd.read_html(html_content): Membaca tabel HTML dari isi HTML menggunakan fungsi pd.read_html(). Fungsi ini akan mengembalikan list dari DataFrame berdasarkan tabel-tabel yang ditemukan di HTML.
    • df = dfs[0]: Mengambil DataFrame pertama dari list hasil pembacaan HTML. Anda mungkin perlu menyesuaikan indeks ini tergantung pada struktur HTML dan tabel yang ingin Anda baca.
  4. Penanganan Kesalahan Verifikasi SSL:
    • Pengaturan verify=False pada permintaan HTTP memberikan solusi darurat dengan menonaktifkan verifikasi sertifikat SSL. Ini adalah tindakan yang tidak aman dan sebaiknya hanya digunakan dalam keadaan darurat atau untuk keperluan pengembangan.
    • Jika verifikasi sertifikat SSL dinonaktifkan, itu berarti tidak ada verifikasi keaslian atau keamanan pada koneksi ke server, sehingga berpotensi membuka pintu untuk serangan Man-in-the-Middle (MITM) di lingkungan yang tidak aman.

Penting untuk dicatat bahwa menonaktifkan verifikasi SSL adalah solusi darurat dan tidak disarankan untuk penggunaan di lingkungan produksi, terutama jika data yang dikirim atau diterima sensitif. Sebaiknya, identifikasi dan perbaiki penyebab masalah sertifikat SSL untuk memastikan keamanan koneksi Anda.

 

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.