
Sora Fujimoto
AI Solutions Architect

Web scraping telah menjadi alat penting untuk mengotomatiskan pengumpulan data dan memantau situs web untuk perubahan. Di postingan blog ini, kita akan menjelajahi cara menggunakan Puppeteer, sebuah pustaka Node.js, untuk web scraping, mendeteksi perubahan di situs web, dan mengambil tangkapan layar dari perubahan ini.
Puppeteer adalah pustaka Node.js yang menyediakan API tingkat tinggi untuk mengontrol Chrome atau Chromium tanpa kepala melalui protokol DevTools. Ini dapat digunakan untuk web scraping, pengujian otomatis, atau bahkan menghasilkan tangkapan layar dan PDF dari halaman web.
Sebelum memulai, pastikan Anda telah menginstal hal-hal berikut:
Anda dapat menginstal Puppeteer dengan menjalankan perintah berikut di terminal Anda:
npm install puppeteer
Untuk memulai, mari kita buat web scraper dasar yang menavigasi ke situs web dan mengekstrak konten teks.
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
// Navigasi ke situs web
await page.goto('https://example.com');
// Ekstrak konten teks
const content = await page.evaluate(() => {
return document.querySelector('h1').innerText;
});
console.log('Konten Halaman:', content);
await browser.close();
})();
Skrip ini membuka browser tanpa kepala, menavigasi ke example.com, dan mengekstrak teks dari elemen <h1>. Anda dapat mengganti URL dengan situs web yang ingin Anda scraper dan menyesuaikan selektor agar sesuai dengan elemen yang Anda minati.
Puppeteer memungkinkan Anda mengambil tangkapan layar dari halaman web dengan mudah. Anda dapat menangkap tangkapan layar halaman penuh atau area tertentu dari halaman.
Berikut cara mengambil tangkapan layar halaman penuh:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
// Navigasi ke situs web
await page.goto('https://example.com');
// Ambil tangkapan layar halaman penuh
await page.screenshot({ path: 'screenshot.png', fullPage: true });
await browser.close();
})();
Skrip ini menyimpan tangkapan layar dari seluruh halaman sebagai screenshot.png. Anda dapat memodifikasi path untuk menentukan nama file atau lokasi yang berbeda.
Memantau situs web untuk perubahan adalah fitur yang berguna dalam web scraping. Anda dapat mencapai ini dengan berulang kali memeriksa konten situs web dan membandingkannya dengan versi yang disimpan sebelumnya.
Berikut adalah contoh mendeteksi perubahan teks dan mengambil tangkapan layar jika kontennya berubah:
const puppeteer = require('puppeteer');
const fs = require('fs');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
// Navigasi ke situs web
await page.goto('https://example.com');
// Ekstrak konten teks
const currentContent = await page.evaluate(() => {
return document.querySelector('h1').innerText;
});
const previousContentPath = 'previous-content.txt';
let previousContent = '';
// Periksa apakah konten sebelumnya ada
if (fs.existsSync(previousContentPath)) {
previousContent = fs.readFileSync(previousContentPath, 'utf8');
}
// Bandingkan konten saat ini dengan konten sebelumnya
if (currentContent !== previousContent) {
console.log('Konten telah berubah!');
// Simpan konten baru
fs.writeFileSync(previousContentPath, currentContent);
// Ambil tangkapan layar dari perubahan
await page.screenshot({ path: `screenshot-${Date.now()}.png`, fullPage: true });
console.log('Tangkapan layar disimpan!');
} else {
console.log('Tidak ada perubahan yang terdeteksi.');
}
await browser.close();
})();
Dalam contoh ini:
<h1>.previous-content.txt).previous-content.txt untuk perbandingan di masa mendatang.Anda dapat menggunakan Node.js untuk menjadwalkan skrip ini agar dijalankan pada interval menggunakan paket node-cron.
Pertama, instal node-cron:
npm install node-cron
Sekarang, modifikasi skrip Anda agar dijalankan pada interval yang ditentukan (misalnya, setiap 5 menit):
const puppeteer = require('puppeteer');
const fs = require('fs');
const cron = require('node-cron');
cron.schedule('*/5 * * * *', async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
const currentContent = await page.evaluate(() => {
return document.querySelector('h1').innerText;
});
const previousContentPath = 'previous-content.txt';
let previousContent = '';
if (fs.existsSync(previousContentPath)) {
previousContent = fs.readFileSync(previousContentPath, 'utf8');
}
if (currentContent !== previousContent) {
console.log('Konten telah berubah!');
fs.writeFileSync(previousContentPath, currentContent);
await page.screenshot({ path: `screenshot-${Date.now()}.png`, fullPage: true });
console.log('Tangkapan layar disimpan!');
} else {
console.log('Tidak ada perubahan yang terdeteksi.');
}
await browser.close();
});
Skrip ini akan dijalankan setiap 5 menit (*/5 * * * *) dan memeriksa perubahan di situs web. Jika mendeteksi perubahan, itu akan mengambil tangkapan layar dan mencatat pembaruan.
Klaim Kode Bonus Anda untuk solusi captcha teratas di CapSolver: scrape. Setelah menebus, Anda akan mendapatkan bonus tambahan 5% setelah setiap pengisian ulang, tanpa batas.

Puppeteer adalah alat yang ampuh untuk web scraping dan mengotomatiskan tugas browser. Dalam postingan ini, kami menunjukkan cara menggunakan Puppeteer untuk web scraping dasar, mendeteksi perubahan situs web, dan menangkap tangkapan layar dari perubahan ini. Dengan teknik ini, Anda dapat memantau situs web dan melacak pembaruan secara otomatis. Pastikan untuk memeriksa kebijakan web scraping untuk menghindari pelanggaran ketentuan layanan.
Panduan captcha pengambilan data web untuk alur kerja data yang disetujui: pelajari jenis tantangan, pengelolaan API, konsistensi proxy, pengulangan, dan penggunaan yang bertanggung jawab.

API penyelesaian CAPTCHA cepat untuk otomatisasi: bandingkan alur kerja token, tantangan yang didukung, pemeriksaan latensi, dan integrasi CapSolver yang bertanggung jawab.
