Membuat Bot Instagram di Node.js Menggunakan Nightmare.js

Setelah sebelumnya membahas tentang web scraper , di artikel ini kita masih menggunakan teknik scraping tetapi bukan hanya untuk mengambil informasi melainkan membuat bot Instagram untuk berjualan 🙄.

Mungkin kita sering melihat komentar yang tidak penting di akun seleb Instagram seperti jual peninggi badan, pelangsing, pemutih, dan masih banyak lagi yang lainnya. Akun toko online tersebut menggunakan penyedia jasa bot untuk melakukan spam terhadap akun selebgram agar dapat meningkatkan pengunjung dan penjualan di toko online mereka.

Pada kesempatan ini, kita akan membuat bot Instagram sendiri yang dapat melakukan like dan comment berdasarkan query pencarian Instagram menggunakan NightmareJS. Penamaan method yang simple dan lebih mudah dimengerti membuat Library ini sangat mudah untuk diimplementasi. Hanya dengan pengetahuan dasar tentang HTML, kita sudah bisa membuat mimpi buruk untuk web manapun, persis seperti nama dari library ini 😂. Dengan menggunakan electron, library ini memungkinkan kita untuk dapat melihat hasil scraping di GUI.


Setup Project

Seperti biasa, mari persiapkan direktori dan beberapa package yang dibutuhkan.

yarn add nightmare

Let’s Scrape It !

Deklarasi:

const Nightmare = require('nightmare');
const nightmare = Nightmare({
show: true,
webPreferences: {
partition: 'nopersist',
},
});

const username = 'wisnugro';
const password = '12345678';
const search = '#jogja';
const comment = 'keren';
const posts = 10;

Dimulai dengan login ke web Instagram:

nightmare
.goto('http://instagram.com')
.wait('._b93kq')
.click('._b93kq') // log in option
.wait('input[name=username]')
.insert('input[name=username]', username)
.insert('input[name=password]', password)
.click('button');

Lakukan pencarian berdasarkan query:

nightmare
.wait('input[placeholder=Search]')
.insert('input[placeholder=Search]', search)
.wait('._gimca')
.click('._gimca') // top suggest

Like dan comment postingan sebanyak yang diinginkan:

nightmare
.wait('._mck9w')
.click('._mck9w a') // click post
.wait('._eszkz');

for (let i = 0; i < posts; i++) {
nightmare.wait(1000)
.click('._eszkz') // like
.insert('._bilrf', comment) // comment
.type('._bilrf', '\u000d')
.click('._3a693'); // next
}

nightmare
.wait(1000)
.end()
.then(function () {
console.log('success');
})
.catch(function (err) {
console.log(err);
});

Berikut merupakan keseluruhan kode:

Hasil

electron
Instagram Posts You’ve Liked

Penggunaan selector class di web Instagram sangat tidak disarankan, karena class akan di generate terus menerus oleh Instagram. Untuk itu cek kode di bawah untuk penggunaan selector tag untuk mendapatkan nama class.

Kunjungi juga link dibawah untuk mencoba bot Instagram.

Sekian untuk tutorial kali ini, semoga bermanfaat.