priv - Ekstraksi Data Semua Kelas Perkuliahan

Selasa, 25 Februari 2025

ekstraksi semua baris data kode, mata kuliah, kelas dan dosen dari https://akademik.its.ac.id/list_kelas.php. abaikan yang kelasnya M00. sajikan dalam bentuk csv dengan script PHP

========================


Berikut adalah contoh script PHP untuk mengekstraksi data dari URL `https://akademik.its.ac.id/list_kelas.php`, mengabaikan kelas dengan kode "M00", dan menyimpan hasilnya dalam format CSV.


### Script PHP:


```php

<?php

// URL target

$url = "https://akademik.its.ac.id/list_kelas.php";


// Inisialisasi cURL

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);


// Eksekusi cURL dan ambil konten HTML

$html_content = curl_exec($ch);


// Periksa apakah request berhasil

if ($html_content === false) {

    die("Gagal mengambil data dari URL.");

}


// Tutup koneksi cURL

curl_close($ch);


// Gunakan DOMDocument untuk parsing HTML

$dom = new DOMDocument();

libxml_use_internal_errors(true); // Suppress warnings for invalid HTML

$dom->loadHTML($html_content);

libxml_clear_errors();


// Inisialisasi DOMXPath untuk query

$xpath = new DOMXPath($dom);


// Cari semua baris data dalam tabel

$rows = $xpath->query('//tr[contains(@class, "NormalBG") or contains(@class, "AlternateBG")]');


// Array untuk menyimpan hasil ekstraksi

$extracted_data = [];


// Loop melalui setiap baris

foreach ($rows as $row) {

    // Ekstrak kolom-kolom yang relevan

    $cols = $row->getElementsByTagName('td');

    if ($cols->length >= 7) { // Pastikan baris memiliki cukup kolom

        $kode = $cols->item(0)->textContent;

        $mata_kuliah = $cols->item(1)->textContent;

        $kelas = $cols->item(3)->textContent;


        // Ekstrak informasi dosen dan jadwal

        $dosen_info = $cols->item(6)->textContent;

        $dosen = (trim($dosen_info) != "- tidak terdata -") ? trim(explode("-", $dosen_info)[0]) : "Tidak terdata";


        // Abaikan kelas dengan kode "M00"

        if ($kelas != "M00") {

            $extracted_data[] = [$kode, $mata_kuliah, $kelas, $dosen];

        }

    }

}


// Simpan hasil ke dalam file CSV

$csv_file = fopen("extracted_data.csv", "w");


// Tulis header

fputcsv($csv_file, ["Kode", "Mata Kuliah", "Kelas", "Dosen"]);


// Tulis data

foreach ($extracted_data as $row) {

    fputcsv($csv_file, $row);

}


// Tutup file CSV

fclose($csv_file);


echo "Data berhasil diekstraksi dan disimpan ke extracted_data.csv";

?>

```


### Penjelasan Script:

1. **Mengambil Konten HTML**:

   - Menggunakan `cURL` untuk mengambil konten HTML dari URL.

   - Jika request gagal, script akan berhenti dan menampilkan pesan error.


2. **Parsing HTML**:

   - Menggunakan `DOMDocument` dan `DOMXPath` untuk mem-parsing dan mengekstraksi data dari HTML.

   - `libxml_use_internal_errors(true)` digunakan untuk menekan peringatan jika HTML tidak valid.


3. **Ekstraksi Data**:

   - Mencari semua baris dengan class `NormalBG` atau `AlternateBG`.

   - Mengekstrak kode mata kuliah, nama mata kuliah, kelas, dan informasi dosen.

   - Mengabaikan baris dengan kelas "M00".


4. **Simpan ke CSV**:

   - Menggunakan `fputcsv` untuk menulis data ke file CSV.

   - File CSV disimpan dengan nama `extracted_data.csv`.


### Output:

Setelah menjalankan script, file `extracted_data.csv` akan berisi data seperti berikut:


```csv

Kode,Mata Kuliah,Kelas,Dosen

EF234612,Animasi Komputer dan Pemodelan 3D,T,Siska Arifiani, S.Kom., M.Kom.

EF234615,Audit Sistem,T,Prof. Drs.Ec. Ir. Riyanarto Sarno, M.Sc., Ph.D.

EF234712,Big Data (EN),T,Ratih Nur Esti Anggraini, S.Kom, M.Sc., Ph.D.

EF234605,Capstone Project,T,Ir. Suhadi Lili, M.T.I.

EF234619,Deep Learning,T,Prof. Dr.Eng. Chastine Fatichah, S.Kom., M.Kom.

EF234614,Desain Pengalaman Pengguna (EN),T,Hadziq Fabroyir, S.Kom., Ph.D.

EF234701,Etika Profesi (EN),A,Ir. Ary Mazharuddin Shiddiqi, S.Kom., M.Comp.Sc., Ph.D.

EF234613,Game Edukasi dan Simulasi,T,Imam Kuswardayan, S.Kom, M.T

EF234602,Interaksi Manusia dan Komputer,A,Dr. Anny Yuniarti, S.Kom., M.Comp.Sc.

EF234602,Interaksi Manusia dan Komputer,B,Siska Arifiani, S.Kom., M.Kom.

EF234602,Interaksi Manusia dan Komputer,C,Dr. Anny Yuniarti, S.Kom., M.Comp.Sc.

```


### Catatan:

1. **Autentikasi**: Jika situs web memerlukan login, Anda perlu menambahkan session atau cookie yang valid ke dalam request cURL. Contoh:

   ```php

   curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); // Simpan cookie

   curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); // Gunakan cookie

   curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([

       'username' => 'your_username',

       'password' => 'your_password'

   ]));

   curl_setopt($ch, CURLOPT_URL, 'https://akademik.its.ac.id/login.php');

   curl_exec($ch); // Login

   ```


2. **Perizinan**: Pastikan Anda memiliki izin untuk mengakses dan mengekstraksi data dari situs web tersebut.


3. **Error Handling**: Tambahkan penanganan error yang lebih baik jika diperlukan, terutama untuk kasus-kasus seperti jaringan bermasalah atau perubahan struktur HTML.

Share this article :

0 komentar :

Speak up your mind

Tell us what you're thinking... !

 
Support : Creating Website | Johny Template | Mas Template
Copyright © 2011. Catatan Kuswardayan - All Rights Reserved
Template Created by Creating Website Inspired by Sportapolis Shape5.com
Proudly powered by Blogger