Tutorial Lengkap Cara Mudah Scrapping Sitemap Menggunakan Node.JS

Tutorial Lengkap Cara Mudah Scrapping Sitemap Menggunakan Node.JS

Apa kabar kalian semua? kembali lagi bersama kami di JogjaXploit ini. Kali ini saya akan membagikan Tutorial Lengkap mengenai Cara Scrapping Sitemap Menggunakan Node.JS yang mudah dan tentunya secara lengkap.

Setelah pada artikel sebelumnya kami membagikan aplikasi ePSXe Premium yang dapat kalian download secara gratis, kali ini kami akan membagikan Tutorial Scrapping Sitemap.

Namun sebelum kita menuju pada pembahasan Tutorial step by step nya, kami akan memberikan sedikit pengertian terlebih dahulu mengenai apa itu Scrapping sitemap karena kami merasa ada sebagian orang yang belum mengenal dan mengetahui apa itu Scrapping.

Apa itu Web Scrapping?


Web Scrapping adalah proses atau cara pengambilan data suatu situs secara otomatis menggunakan AI atau Bot. Jadi tidak perlu susah-susah menggunakan tenaga manusia untuk melakukan hal tersebut.

Supaya kalian lebih mudah memahami mengenai Scrapping Web, kami akan berikan contohnya. Misalkan terdapat sebuah website berita yang mana tiap hari nya mereka meng-update belasan bahkan puluhan artikel berita. 

Apakah mereka menggunakan tenaga manusia ( mengetik sendiri dan mencari berita nya sendiri? ) jawabannya Tidak. Mereka menggunakan AI atau Bot untuk menghemat tenaga dan waktu yang mereka keluarkan.

Bagaimana Cara Kerja AI?


Cara kerja nya cukup simpel, contoh saja Robot Jurnalis akan mencatat setiap artikel / berita baru, kejadian / fenomena dari berbagai sumber yang mereka dapatkan.

Setelah Robot selesai mengambil / Scrapping Sitemap, data tadi akan diolah lagi menggunakan algoritma yang sudah didesain oleh masing-masing perusahaan atau personal.

Dengan adanya AI, kita tidak perlu lagi menghabiskan banyak waktu untuk mencari dan menulis berita lagi. Biarkan Robot yang bekerja, kita hanya perlu memberikan komando dan mengontrol nya.

Nah dengan adanya AI tersebut, kita bisa menggunakannya untuk Scrapping Website milik orang lain. Jadi kita dapat mengambil artikel yang terdapat pada suatu situs dan memasukkan ke situs kita secara otomatis. Sangat keren bukan?

Sampai sini kami harap kalian sudah paham mengenai apa itu AI dan Scrapping Sitemap. Jika tertarik dan penasaran, simak terus ya.

Sebelum menuju kepada Tutorial nya, kami membagikan artikel ini hanya sebagai pengetahuan semata. Diharapkan untuk menggunakan Scrapping ini untuk keperluan yang positif saja, misalkan untuk mengetahui berapa jumlah postingan suatu web / blog, dan sebagainya.

Kami tidak bertanggung jawab atas segala resiko yang terjadi. Sekali lagi, harap gunakan cara ini untuk hal yang positif ya.

Mengenai aman atau tidak nya, cara yang kami bagikan ini 100% aman. Maksud aman disini yaitu bebas virus dan segala kejahatan lainnya.

Daripada kelamaan sekarang kita mulai saja pada pembahasan inti yaitu step by step Scrapping Web nya.

Tutorial Cara Scrapping Sitemap Menggunakan Node.JS


Pada tutorial ini kami menggunakan 3 paket modul ( modul package ) yaitu :
  1. Package "unirest" yang berfungsi untuk mengambil DOM HTML dari link atau URL target ( sitemap ).
  2. Package "random-useragent" yang mana berfungsi untuk melakukan request Http menjadi random atau secara acak.
  3. Package "fs" yang berfungsi untuk membuat sebuah file dan menaruh file hasil dari Scrapping sitemap.
Langkah Pertama, Buat sebuah file yang bernama server.js dan simpan ke dalam sebuah folder

Pada file server.js isikan dengan kode / script di bawah ini.

/*
CODE BY JOGJAXPLOIT, THANKS FOR SUPPORT
*/

//---- Setting sitemap Target
Link_Sitemap = 'https://www.tribunnews.com/sitemap.xml';
Remove_Duplicate_Link = "no";
//---------------------------

var unirest = require('unirest');
var random_useragent = require('random-useragent');
var fs = require('fs');
var DataRegex = new Array();
var dataNewSitemap = new Array();
var startLinkSitemap = 0;
var newDataUrlSitemap = "";

//Fungsi Extract Hostname From String
function extractHostname(t) {
    return (t.indexOf("//") > -1 ? t.split("/")[2] : t.split("/")[0]).split(":")[0].split("?")[0]
};

//Fungsi Menghapus String Array Kosong
// Referensi : https://www.maskoding.com/2020/08/menghapus-string-array-kosong.html
function cleanArray(actual) {
    var newArray = new Array();
    for (var i = 0; i < actual.length; i++) {
        if (actual[i]) {
            newArray.push(actual[i]);
        }
    }
    return newArray;
};

// start ---------
unirest('GET', Link_Sitemap)
    .headers({
        'user-agent': random_useragent.getRandom()
    })
    .end(function (res) {
        // Mengekstrak Link Sitemap
        let getRegex = res.raw_body.match(/<loc>.*?(<\/loc>)/g);
        for (var i = 0; i < getRegex.length; i++) {
            DataRegex[i] = getRegex[i].replace(/(<loc>|<\/loc>)/g, "").replace(/(<\!\[CDATA\[|\]\]\>)/g, "");
            if (getRegex[i].indexOf(".xml") >= 0) {
                dataNewSitemap[i] = DataRegex[i];
            };
        };
        //Mendeteksi Apakah masih ada link sitemap
        if (dataNewSitemap.length == 0) {
            console.log("Tidak Ditemukan Link Sitemap di dalam url " + Link_Sitemap);
            setTimeout(function () {
                console.log("Mengekstrak Link di dalam url " + Link_Sitemap + " >>");
            }, 1000);
            setTimeout(function () {
                console.log(DataRegex.join("\n"));
                for (var i = 0; i < DataRegex.length; i++) {
                    newDataUrlSitemap += DataRegex[i] + ",";

                };
                saveFile();
            }, 4000);
        } else {
            console.log("Ditemukan " + dataNewSitemap.length + " Link Sitemap");
            setTimeout(function () {
                console.log("Mengekstrak Sub-Link Sitemap....")
            }, 1000);
            setTimeout(function () {
                nextExtracSubSitemap();
            }, 2000);
        };

    });

function nextExtracSubSitemap() {
    console.log("Mengekstrak link sitemap > " + dataNewSitemap[startLinkSitemap] + " ( " + Number(startLinkSitemap + 1) + "/" + dataNewSitemap.length + " )");
    unirest('GET', dataNewSitemap[startLinkSitemap])
        .headers({
            'user-agent': random_useragent.getRandom()
        })
        .end(function (res) {
            // Mengekstrak Sub-Link Sitemap
            if (startLinkSitemap < dataNewSitemap.length - 1) {
                let getRegex1 = res.raw_body.match(/<loc>.*?(<\/loc>)/g);
                for (var i = 0; i < getRegex1.length; i++) {
                    newDataUrlSitemap += getRegex1[i].replace(/(<loc>|<\/loc>)/g, "").replace(/(<\!\[CDATA\[|\]\]\>)/g, "") + ",";

                };
                console.log("Succes Mengekstrak " + cleanArray(newDataUrlSitemap.split(",")).length + " Link");
                startLinkSitemap += 1;
                nextExtracSubSitemap()
            } else if (startLinkSitemap == dataNewSitemap.length - 1) {
                console.log("Menampilkan Hasil Extract Url Sitemap..");
                setTimeout(function () {
                    if (Remove_Duplicate_Link == "yes") {
                        console.log(Array.from(new Set(newDataUrlSitemap.split(","))).toString().split(",").join("\n"));
                    } else {
                        console.log(cleanArray(newDataUrlSitemap.split(",")).join("\n"));
                    }
                    setTimeout(function () {
                        saveFile();
                    }, 1000);
                }, 2000);
            }
        });
}

function saveFile() {
    console.log("Membuat File Dengan Nama : " + extractHostname(Link_Sitemap) + ".txt");
    if (Remove_Duplicate_Link == "yes") {
        var DbFile = Array.from(new Set(cleanArray(newDataUrlSitemap.split(",")))).toString().split(",").join("\n");
        console.log("Membersihkan Link Duplicate / Link yang sama >_");
    } else {
        var DbFile = cleanArray(newDataUrlSitemap.split(",")).join("\n");
    };
    setTimeout(function () {
        console.log("Menyimpan File >_")
        var stream = fs.createWriteStream("OUTPUT/" + extractHostname(Link_Sitemap) + ".txt");
        stream.once('open', function (fd) {
            stream.write(DbFile);
            setTimeout(function () {
                console.log("suscces..");
            }, 1000);
            stream.end();
        });
    }, 1000);
};

Langkah Kedua, buat folder yang bernama Output yang mana akan dijadikan tempat dari file hasil scrapping tadi.

Langkah Ketiga, Install Package dibawah ini.

1. Package "unirest"

npm install unirest

2. Package "random-useragent"

npm install random-useragent

Langkah Keempat, eksekusi / jalankan file yang bernama server.js menggunakan perintah atau code dibawah ini.

node server.js

Langkah Kelima, tinggal tunggu saja proses Scrapping nya. Lama atau tidak nya tergantung dari jumlah artikel / sitemap suatu situs.

Tutorial Cara Scrapping Website

Apabila proses Scrapping Sitemap nya selesai, nanti hasil nya akan disimpan pada sebuah Folder Output yang sudah kita buat sebelumnya.

Supaya hasil scrapping web nya terlihat rapi, kalian dapat membuka nya menggunakan Sublime Text atau Code Editor favorit kalian ( VSCode, Atom, etc ).

Cara Scrapping sitemap

Selesai.

Keterangan :

Ganti Link_Sitemap dengan url target yang ingin kalian lakukan scrapping.

Bagaimana, mudah bukan?. Mungkin bagi sebagian orang cukup membingungkan, karena pada dasarnya ini merupakan tutorial tingkat menengah keatas.

Namun tidak masalah jika kalian mencobanya karena dapat menambah ilmu dan wawasan juga. Yang penting jangan pernah berhenti belajar dan belajar.

Mungkin cukup sekian Tutorial Cara Mudah Scrapping Web Menggunakan Node JS. Apabila ada pertanyaan, silahkan bertanya melalui kolom komentar. Terima kasih sudah mau berkunjung dan sampai jumpa pada artikel menarik selanjutnya.

Silahkan Bertanya atau Beri Tanggapannya, Terima Kasih

Posting Komentar

Silahkan Bertanya atau Beri Tanggapannya, Terima Kasih

Post a Comment (0)

Lebih baru Lebih lama

ads

ads