Lädt...

🔧 scrape JDIHN menggunakan PHP DiDOM dan supabase


Nachrichtenbereich: 🔧 Programmierung
🔗 Quelle: dev.to

Image description

Script PHP untuk scrape JDIHN menggunakan counting mundur.

Yup funny...

Kode lengkap

<?php

require 'vendor/autoload.php';

use DiDom\Document;

function safe_url($text) {
    return trim(preg_replace('/[^a-z0-9]+/i', '_', strtolower($text)), '_');
}

function insertToSupabase($data) {

    // Supabase API Config
    $supabaseUrl = 'https://ndahe.supabase.co';
    $supabaseKey = 'ndi45m03';


    $tableName = 'peraturan'; // Nama tabel di Supabase

    // Mengonversi array ke format asosiatif
    $formattedData = [];
    foreach ($data as $item) {
        if (!empty($item[1])) { // Abaikan field kosong
            $formattedData[$item[0]] = $item[1];
        }
    }

    $jsonData = json_encode([$formattedData]);

    $ch = curl_init("$supabaseUrl/rest/v1/$tableName");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        "Content-Type: application/json",
        "apikey: $supabaseKey",
        "Authorization: Bearer $supabaseKey",
        "Prefer: return=representation" // Mengembalikan data yang telah di-insert
    ]);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);

    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    return [
        'status' => $httpCode,
        'response' => json_decode($response, true)
    ];
}

//1987000
//1986526  working
for ($i = 1986526; $i >= 0; $i--) {

    echo "[$i]  ";

    $uri = "https://jdihn.go.id/pencarian/detail/$i";
    $html = @file_get_contents($uri); // Tambahkan @ untuk menghindari warning

    // Jika gagal mengambil halaman, lanjutkan ke iterasi berikutnya
    if ($html === false) {
        echo " \e[31m page not found  \e[0m \n";
        continue;
    }

    $document = new Document($html);

    // Cari elemen tabel pertama dalam halaman
    $table = $document->first('table');

    // Jika tabel tidak ditemukan, lanjutkan ke iterasi berikutnya
    if (!$table) {
        echo " \e[31m table not found  \e[0m \n";
        continue;
    }

    // Ambil semua baris dari tabel
    $rows = $table->find('tr');

    $data = [];
    foreach ($rows as $row) {
        // Ambil semua sel dari baris
        $cells = $row->find('td'); // Gunakan 'th' jika ingin mengambil header

        $rowData = [];

        if (isset($cells[0])) {
            $rowData[0] = safe_url($cells[0]->text());
        }

        if (isset($cells[2])) {
            $links = $cells[2]->find('a');
            foreach ($links as $link) {
                $rowData[1] = $link->getAttribute('href');
            }
            if (!isset($rowData[1])) {
                $rowData[1] = $cells[2]->text();
            }
        }

        // Tambahkan data jika tidak kosong
        if (!empty($rowData)) {
            $data[] = $rowData;
        }
    }


    $data[] = ["url_id", $i];

    $pesan = insertToSupabase($data);

    echo "\e[34m maybe \e[0m  [OK] \n";

    usleep(rand(100000, 500000));
}


Ini untuk bikin tabel di supabase, jangan lupa tambahkan id yang autoincreement (lupa namanya kalau di supabase)

CREATE TABLE peraturan (
    asal_dokumen TEXT,
    jenis_dokumen TEXT,
    nomor TEXT,
    tahun TEXT,
    judul TEXT,
    t_e_u TEXT,
    singkatan_jenis TEXT,
    tempat_terbit TEXT,
    tanggal_penetapan TEXT,
    tanggal_pengundangan TEXT,
    subyek TEXT,
    status TEXT,
    penandatangan TEXT,
    sumber TEXT,
    bahasa TEXT,
    unduhan TEXT,
    unduhan_alternatif TEXT,
    abstrak TEXT,
    unduhan_abstrak_alternatif TEXT,
    detil_dokumen TEXT,
    url_id TEXT,
);

Jangan lupa jalankan di Terminal Cpanel

nohup php script.php

Image description

...

🔧 scrape JDIHN menggunakan PHP DiDOM dan supabase


📈 127.66 Punkte
🔧 Programmierung

🔧 Scrape peraturan BPK dengan PHP, DiDOM dan Supabase


📈 81.48 Punkte
🔧 Programmierung

🔧 Membangun dan Mengelola Aplikasi Multi-Container Menggunakan Docker Swarm


📈 36.42 Punkte
🔧 Programmierung

🔧 Menganalisis Emosi, Umur, dan Gender Menggunakan Library Serengil/DeepFace di Python


📈 36.42 Punkte
🔧 Programmierung

🔧 Cara Menggunakan AI untuk Meningkatkan Produktivitas dan Efisiensi Kerja


📈 36.42 Punkte
🔧 Programmierung

🔧 Membangun Aplikasi Verifikasi Kode Autentikasi dengan Twilio Menggunakan Go dan Remix


📈 36.42 Punkte
🔧 Programmierung

🔧 Membuat CI/CD Workflow Menggunakan GitHub Action dan Deployer pada Framework Laravel


📈 36.42 Punkte
🔧 Programmierung

🔧 scrape beach with PHP and Supabase


📈 33.17 Punkte
🔧 Programmierung

🔧 How to Scrape Walmart How to Scrape Walmart Product Page Details with Python?


📈 32.38 Punkte
🔧 Programmierung

📰 Lk Scraper - An Fully Configurable Linkedin Scrape (Scrape Anything Within Linkedin)


📈 32.38 Punkte
📰 IT Security Nachrichten

🔧 Setup User Auth for your Reflex Python app using supabase (supabase-py)


📈 28.26 Punkte
🔧 Programmierung

🔧 How to setup Supabase with Nextjs for authentication | Supabase Auth


📈 28.26 Punkte
🔧 Programmierung

🔧 How to setup Supabase with Nextjs for authentication | Supabase Auth


📈 28.26 Punkte
🔧 Programmierung

🔧 Membuat Landing Page Sederhana dan Cepat dengan ReactJS, Vite, dan Tailwind CSS


📈 27.17 Punkte
🔧 Programmierung

🕵️ https://papuaprov.jdihn.go.id/readme.php


📈 26.2 Punkte
🕵️ Hacking

🕵️ https://sarmikab.jdihn.go.id/readme.php


📈 26.2 Punkte
🕵️ Hacking

🕵️ https://puncakjayakab.jdihn.go.id/readme.php


📈 26.2 Punkte
🕵️ Hacking

🕵️ https://puncakkab.jdihn.go.id/readme.php


📈 26.2 Punkte
🕵️ Hacking

🕵️ https://supiorikab.jdihn.go.id/readme.php


📈 26.2 Punkte
🕵️ Hacking

🕵️ https://dprd-bovendigoelkab.jdihn.go.id/readme.php


📈 26.2 Punkte
🕵️ Hacking

🕵️ https://tolikarakab.jdihn.go.id/readme.php


📈 26.2 Punkte
🕵️ Hacking

🕵️ https://keeromkab.jdihn.go.id/readme.php


📈 26.2 Punkte
🕵️ Hacking

🕵️ https://yahukimokab.jdihn.go.id/readme.php


📈 26.2 Punkte
🕵️ Hacking

🕵️ https://lannyjayakab.jdihn.go.id/readme.php


📈 26.2 Punkte
🕵️ Hacking

🕵️ https://waropenkab.jdihn.go.id/readme.php


📈 26.2 Punkte
🕵️ Hacking

🕵️ https://kepyapenkab.jdihn.go.id/readme.php


📈 26.2 Punkte
🕵️ Hacking

🕵️ https://yalimokab.jdihn.go.id/readme.php


📈 26.2 Punkte
🕵️ Hacking

🕵️ https://mamberamorayakab.jdihn.go.id/readme.php


📈 26.2 Punkte
🕵️ Hacking

🕵️ https://jdihn.go.id/yoloo.php


📈 26.2 Punkte
🕵️ Hacking

🕵️ https://mamberamotengahkab.jdihn.go.id/readme.php


📈 26.2 Punkte
🕵️ Hacking

🕵️ https://nabirekab.jdihn.go.id/readme.php


📈 26.2 Punkte
🕵️ Hacking

matomo