Selamat Malam Sobat sekalian. Di tutorial pertama ini, saya ingin berbagi cara membuat salah satu fitur dalam situs JombloPedia.com yaitu pencarian profile blogger secara massal. Teknik yang saya gunakan adalah crawling atau pengambilan data secara otomatis dengan menginput parameter yang sudah standar dari blogger.

Mesin Pencari Profile Blogger Dengan Metode Crawling

Selamat Malam Sobat sekalian. Di tutorial pertama ini, saya ingin berbagi cara membuat salah satu fitur dalam situs JombloPedia.com yaitu pencarian profile blogger secara massal. Teknik yang saya gunakan adalah crawling atau pengambilan data secara otomatis dengan menginput parameter yang sudah standar dari blogger. Untuk standar parameter pencarian profile blogger, sobat bisa melihat tabel di bawah ini:

 

Secara manual, untuk mencari profile blogger seseorang, kita harus mengakses melalui link:

https://www.blogger.com/profile-find.g

Setelah itu, masukkan parameter sesuai dengan standar yang sudah ditentukan blogger.com seperti gambar di atas. Untuk pencarian secara manual tersebut, kita tentu akan kesulitan ketika hendak mencari profile dengan banyak pilihan. Untuk itu, kita akan membuat satu tools pengambilan data profile blogger secara ototmatis dan massal. Dalam tutorial ini, kita akan membuat fitur pencarian dengan menggunakan parameter tempat seseorang.

Alat dan Bahan:

  1. PHP Simple HTML Dom (download di http://simplehtmldom.sourceforge.net/)
  2. Buat 1 File PHP dengan nama index.php (File utama, bisa dengan nama lain)

Cara Membuat:

  1. Letakkan file PHP Simple HTML Dom (simple_html_dom.php) satu folder dengan file utama index.php
  2. Di file utama Index.php, isi dengan script dasar HTML seperti di bawah ini:
    <html>
    <head>
    <title>Personal INFO</title>
    </head>
    <body>
    <form method="post" action="index.php">
    Provinsi:<input type="text" size="36" maxlength="36" name="prov">:<br />
    Kota:<input type="text" size="36" maxlength="36" name="kota">:<br />
    Start:<input type="text" size="36" maxlength="36" name="start">:<br />
    End:<input type="text" size="36" maxlength="36" name="end">:<br />
    <input type="submit" />
    </form>
    </body>
    </html>
    Penjelasan:
    • HTML dasar untuk menampilkan form, yaitu inputan provinsi (disimpan dalam variable name = "prov"), kota (disimpan dalam variable name = "kota"), start berisi nilai awal pencarian (name="start") dan end berisi nilai akhir pencarian (name="end").
    • Input yang sudah diinput dan di submit, akan diproses oleh file Index.php dengan script PHP yang disematkan di file utama ini seperti pada proses No. 3 di bawah.
  3. Tepat di bawah Tag </form> masukkan script ini:
    <?php
    include_once("simple_html_dom.php");
    set_time_limit(0);
    $prov= $_POST['prov'];
    $kota= $_POST['kota'];
    $start= $_POST['start'];
    $end= $_POST['end'];
    
    for($i = $start; $i < $end; $i += 10)
    {
    
    $target_url = "https://www.blogger.com/profile-find.g?t=l&loc0=ID&loc1=".$prov."&loc2=".$kota."&start=".$i;
    
    $curl = curl_init(); 
    curl_setopt($curl, CURLOPT_URL, $target_url);  
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);  
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);  
    $html = curl_exec($curl);  
    curl_close($curl);  
     
    $html= str_get_html($html); 
    
    foreach($html->find('div[id=maia-main] div') as $hasil)
    {
    $Link = $hasil->find('dl dt h2 a',0)->href;
    $Pic = $hasil->find('.profilephoto img',0)->src;
    $Name = $hasil->find('dt',0)->plaintext;
    $Desc = $hasil->find('dd',0)->plaintext;
    $Interest = $hasil->find('dd',1)->plaintext;
    
    echo $Link."<br/>";
    echo $Pic."<br/>";
    echo $Name."<br/>";
    echo $Desc."<br/>";
    echo $Interest."<br/>"; } } ?>

    Penjelasan:

    • Deklarasikan include file dom yang akan menjadi fungsi utama crawling. include_once("simple_html_dom.php");
    • Inputan tadi akan ditangkap oleh fungsi di PHP ini, yaitu pada variable-variabel $prov, $kota, $start, dan $end
    • Setelah itu dilakukan loop untuk mendapatkan profile berdasarkan nilai awal dan nilai akhir yang mau ditampilkan. Misal nilai $start = 0 dan $end = 10, maka data yang ditampilkan ada 10 profile blogger.
    • Nilai $target diisi dengan fungsi pencarian profile blogger yang sudah standar, dengan sedikit perubahan yaitu pada parameter untuk membatasi pencarian yaitu variable-variable yang sudah kita tetapkan melalui form input sebelumnya.
    • Fungsi $html= str_get_html($html); adalah untuk mengambil file di halaman hasil pencarian profile blogger.
    • Fitur-fitur pengambilan data/crawling dapat Sobat lihat di dokumentasi PHP Simple HTML DOM Parser (http://simplehtmldom.sourceforge.net/). Lalu, dari mana kita mengetahui tag HTML yang akan kita sedot datanya? Caranya adalah membuka Source Page dari halaman hasil pencarian profile blogger tadi. Sobat akan menemukan lingkup data yang diambil berada di antara tag id=maia-main, untuk itu kita menggunakan tag pencarian dom div[id=maia-main] div. Begitu seterusnya untuk data lain berupa Link Profile, Gambar, Nama, Deskripsi dan Interest Blogger yang akan dicari.
  4. Hasil akhir pengambilan data dengan Crawling ini mungkin masih sederhana. Sobat bisa mengembangkannya lebih agar terlihat menarik dengan menambahkan CSS styling pada hasil pencariannya.
  5. Sobat bisa melihat contoh yang saya kembangkan di website http://www.jomblopedia.com (Menu Cari Teman, atau Quick Tool di sebelah kanan situs.)

Jika ada pertanyaan atau masukan, silakan memberikan komentar di bawah ini. Salam :D


About Author

Debrian Ruhut Saragih

MahasiswaOnline.com


Comment & Discussions