SERP SCRAPING WITH NODE.JS

Antara
5 min readOct 20, 2023

--

Web scraping adalah teknik yang digunakan untuk mengekstrak data dari berbagai situs web, dan dalam artikel ini, kami akan fokus pada bagaimana Anda dapat melakukan web scraping terhadap hasil pencarian mesin telusur (SERP) menggunakan Node.js.

apa itu Node.js ?

Node.js adalah platform JavaScript berbasis server yang memungkinkan Anda untuk menjalankan kode JavaScript di sisi server.

Apa manfaat dari SERP Scraping menggunakan Node.js ?

Pergantian Kata Kunci yang mudah dan fleksible, kita dapat memilih kata kunci yang nnatinya secara otomatis masuk dalam hasil scrap, kata kunci dapat disesuaikan pada situs web di halaman hasil pencarian mesin telusur seperti Google. Dengan data ini, Anda dapat mengukur efektivitas strategi SEO Anda dan menyesuaikannya sesuai kebutuhan.

Pengambilan Data Demografis Pengguna, Anda dapat menganalisis data demografis pengguna yang muncul dalam hasil pencarian untuk memahami lebih baik audiens target Anda.

apa langkah- langkah yang harus dilakukan ?

  1. Pastikan anda sudah memiliki Node.Js dan terlitas pada device anda (https://nodejs.org/en)
Situs download Node.js

2. Pastikan anda memiliki Notepad++ dan terinstal pada device anda (https://notepad-plus-plus.org/downloads/)

3. Buat Folder dalam disk anda yang dikususkan untuk Scraping

4. Install module Unirest dan Cheerio pada JS

D:\Belajar>npm install cheerio

added 14 packages in 4s

13 packages are looking for funding
run `npm fund` for details

D:\Belajar>npm install unirest
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142

added 55 packages, and audited 70 packages in 6s

15 packages are looking for funding
run `npm fund` for details

3 moderate severity vulnerabilities

Some issues need review, and may require choosing
a different dependency.

Run `npm audit` for details.

bila sudah maka tampilan dalam folder akan seperti ini

Module telah berhasil di install

5. Persiapkan google yang ingin di search (misal : googlegames)

6. Setelah menentukan target maka buat folder .js dan letakan dalam folder (contoh folder Belajar)

buka dengan notepad++ dan lalu masukan kode ini (contoh)

const unirest = require("unirest");
const cheerio = require("cheerio");

const getOrganicData = () => {
return unirest
.get("https://www.google.com/search?q=google+games")
.headers({
"User-Agent":
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36",
})
.then((response) => {
let $ = cheerio.load(response.body);

let titles = [];
let links = [];
let snippets = [];
let displayedLinks = [];

$("h3[class='LC20lb MBeuO DKV0Md']").each((i, el) => {
titles[i] = $(el).text();
});
$("a[jsname='UWckNb']").each((i, el) => {
links[i] = $(el).attr("href");
});
$(".g .VwiC3b ").each((i, el) => {
snippets[i] = $(el).text();
});
$(".g .yuRUbf .NJjxre .tjvcx").each((i, el) => {
displayedLinks[i] = $(el).text();
});

const organicResults = [];

for (let i = 0; i < titles.length; i++) {
organicResults[i] = {
title: titles[i],
links: links[i],
snippet: snippets[i],
displayedLink: displayedLinks[i],
};
}
console.log(organicResults)
});
};

getOrganicData();

lalu save.

6. Untuk melihat elemen yang akan di scraping maka anda misa menekan tombol CTRL + SHIFT + C (untuk membuka Inspect Window)

contoh inspeksi halaman pada pencarian google games

maka anda dapat mendefinisikan untuk tiap-tiap elemen yang ada dalam kode HTML untuk di scrap.

Menentukan Title

Title terdapat pada h3

setelah mengetahui letak title maka dapat dimasukan syntax

$("h3[class='LC20lb MBeuO DKV0Md']").each((i, el) => {
titles[i] = $(el).text();

Hal tersebut sangat flexible dan dapat diubah ubah sesuai kebutuhan yang anda mau, hal serupa dapat dilakukan untuk menentukan Link, dan Keterangan dari web tersebut.

7. Untuk mendapat hasil dari scraping masukan syntax :

D:\Belajar>node BelajarScraping

8. Setelah Berhasil maka SERP dapat di save pada file JSON dengan cara menambahkan beberapa syntax :

const unirest = require("unirest");
const cheerio = require("cheerio");
const fs = require("fs"); // Import the fs module

const getOrganicData = () => {
return unirest
.get("https://www.google.com/search?q=google+games")
.headers({
"User-Agent":
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36",
})
.then((response) => {
let $ = cheerio.load(response.body);

let titles = [];
let links = [];
let snippets = [];
let displayedLinks = [];

$("h3[class='LC20lb MBeuO DKV0Md']").each((i, el) => {
titles[i] = $(el).text();
});
$("a[jsname='UWckNb']").each((i, el) => {
links[i] = $(el).attr("href");
});
$(".g .VwiC3b ").each((i, el) => {
snippets[i] = $(el).text();
});
$(".g .yuRUbf .NJjxre .tjvcx").each((i, el) => {
displayedLinks[i] = $(el).text();
});

const organicResults = [];

for (let i = 0; i < titles.length; i++) {
organicResults[i] = {
title: titles[i],
links: links[i],
snippet: snippets[i],
displayedLink: displayedLinks[i],
};
}

// Convert the organicResults array to a JSON string
const jsonData = JSON.stringify(organicResults, null, 2);

// Write the JSON data to a file
fs.writeFile("ScrapingGoogleGames.json", jsonData, (err) => {
if (err) {
console.error("Error writing JSON file:", err);
} else {
console.log("Organic results saved to organic_results.json");
}
});
});
};

getOrganicData();

lalu save. kemudian run di cmd

D:\Belajar>node BelajarScraping
Organic results saved to organic_results.json

maka file JSON sudah masuk kedalam folder dan dapat dilihat hasil dari scrap anda.

Maka dengan ini anda secara sah telah mempelajari tahap-tahap SERP scraping dengan menggunakan Node JS.

Semoga dapat membantu dan selalu semangat dalam belajar !

--

--