1. Langkah pertama yang harus dilakukan yaitu mencari target website yang akan kita scrape datanya misalnya, (contoh: https://www.kompas.com/covid-19 ) inspect terlebih dahulu dan tes dengan menjalankan menggunakan fungsi file_get_contents() pada php seperti berikut
3. Kemudian kita inspect element untuk menelusuri pola script dari data yang akan kita ambil.
4. Setelah mengetahui pola script dan letak-letak data yang akan kita ambil, disini saya akan mengambil data pada tag <div> dengan class="covid__row". kurang lebih script html yang kita inspect seperti ini. kita bisa lihat pola yang diberikan dari script tersebut terlihat berulang.
<div class="covid__row">
<div class="covid__prov">DKI Jakarta</div>
<div class="covid__total">
<span class="-odp">Terkonfirmasi: <strong>183735</strong></span>
<span class="-gone">Meninggal: <strong>3270</strong></span>
<span class="-health">Sembuh: <strong>164787</strong></span>
</div>
</div>
<?php
$html = file_get_contents('https://www.kompas.com/covid-19'); // print_r($html);die;
preg_match_all( '/<div class="covid__row">.*?<div class="covid__prov">(.*?)<\/div>.*?<span class="-odp">Terkonfirmasi: <strong>(.*?)<\/strong><\/span>.*?<span class="-gone">Meninggal: <strong>(.*?)<\/strong><\/span>.*?<span class="-health">Sembuh: <strong>(.*?)<\/strong><\/span>.*?<\/div>/s', $html, $posts, PREG_SET_ORDER );
print_r($posts);die;?>
6. Maka dari script tersebut akan muncul data array dari hasil scrape berikut:
<?php
$html = file_get_contents('https://www.kompas.com/covid-19');
// print_r($html);die;
preg_match_all('/<div class="covid__row">.*?<div class="covid__prov">(.*?)<\/div>.*?<span class="-odp">Terkonfirmasi: <strong>(.*?)<\/strong><\/span>.*?<span class="-gone">Meninggal: <strong>(.*?)<\/strong><\/span>.*?<span class="-health">Sembuh: <strong>(.*?)<\/strong><\/span>.*?<\/div>/s',
$html,
$posts,
PREG_SET_ORDER
);
$show = "<pre><code>";
foreach ($posts as $post) {
$show .= "Kota : ".$post[1].',<br>'."Terkonfirmasi : ".$post[2].',<br>'."Meninggal : ".$post[3].',<br>'."Sembug : ".$post[4].',<br><br>';
}
$show .= "</code></pre>";
echo $show;?>
8. Maka data akan muncul seperti berikut.
Itulah cara melakukan web scraping menggunakan regex pada PHP. semoga bermanfaat.
0 Comments