DEV Community

Eko Priyanto
Eko Priyanto

Posted on

scrape peraturan.go.id

Image description

Untuk contoh di sini saya pakai diDOM

<?php
require 'vendor/autoload.php'; // Pastikan DiDOM terinstall melalui Composer

use DiDom\Document;

$max_pages = 5; // Jumlah halaman yang ingin di-scrape

for ($page = 1; $page <= $max_pages; $page++) {
    $url = "https://peraturan.go.id/cariglobal?PeraturanSearch%5Bidglobal%5D=&page=$page";
    $options = [
        'http' => [
            'method' => 'GET',
            'header' => "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
        ]
    ];
    $context = stream_context_create($options);
    $html = file_get_contents($url, false, $context);

    // Cek apakah HTML berhasil diambil
    if (!$html) {
        die("Gagal mengambil data dari URL pada halaman $page.\n");
    }

    $document = new Document();
    $document->loadHtml($html);

    // Mencari semua elemen dalam <div class="strip grid">
    $items = $document->find('div.strip.grid');

    foreach ($items as $item) {
        // Mendapatkan jenis peraturan
        $jenis = $item->first('a.float-right') ? trim($item->first('a.float-right')->text()) : 'Tidak tersedia';

        // Mendapatkan judul peraturan
        $judul = $item->first('p') ? trim($item->first('p')->text()) : 'Tidak tersedia';

        // Mendapatkan link dokumen PDF
        $pdf = $item->first('a[target="_blank"]') ? trim($item->first('a[target="_blank"]')->getAttribute('href')) : 'Tidak tersedia';

        // Mendapatkan link detail peraturan dan uraian
        $detail_link_element = $item->first('p a[data-pjax="0"]');
        $link = $detail_link_element ? trim($detail_link_element->getAttribute('href')) : 'Tidak tersedia';
        $uraian = $detail_link_element ? trim($detail_link_element->text()) : 'Tidak tersedia';

        // Mendapatkan nama kementerian atau lembaga yang mengeluarkan peraturan
        $lembaga_element = $item->first('div.score span.loc_open');
        $lembaga = $lembaga_element ? trim($lembaga_element->text()) : 'Tidak tersedia';

        echo "Halaman: $page\n";
        echo "Jenis: $jenis\n";
        echo "Judul: $judul\n";
        echo "PDF: $pdf\n";
        echo "Link: $link\n";
        echo "Uraian: $uraian\n";
        echo "Lembaga: $lembaga\n";
        echo "-----------------------------\n";
    }
}


Enter fullscreen mode Exit fullscreen mode

Contoh kode ini akan scrape 5 halaman pertama di pencarian peraturan.go.id

Image description

Top comments (0)