Scraping Web dengan Puppeteer: Mendeteksi Perubahan Situs Web dan Mengambil Tangkapan Layar

Sora Fujimoto
AI Solutions Architect
07-Oct-2024

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.
Apa itu Puppeteer?
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.
Prasyarat
Sebelum memulai, pastikan Anda telah menginstal hal-hal berikut:
Anda dapat menginstal Puppeteer dengan menjalankan perintah berikut di terminal Anda:
bash
npm install puppeteer
Web Scraping Dasar dengan Puppeteer
Untuk memulai, mari kita buat web scraper dasar yang menavigasi ke situs web dan mengekstrak konten teks.
javascript
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.
Mengambil Tangkapan Layar dengan Puppeteer
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:
javascript
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.
Mendeteksi Perubahan Situs Web
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:
javascript
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:
- Skrip mengekstrak konten dari elemen
<h1>. - Ini membandingkan konten saat ini dengan versi yang disimpan sebelumnya (
previous-content.txt). - Jika perubahan terdeteksi, itu mengambil tangkapan layar dan menyimpannya dengan stempel waktu di nama file, memastikan bahwa setiap tangkapan layar unik.
- Konten baru disimpan ke
previous-content.txtuntuk perbandingan di masa mendatang.
Menjadwalkan Scraper untuk Dijalankan Secara Teratur
Anda dapat menggunakan Node.js untuk menjadwalkan skrip ini agar dijalankan pada interval menggunakan paket node-cron.
Pertama, instal node-cron:
bash
npm install node-cron
Sekarang, modifikasi skrip Anda agar dijalankan pada interval yang ditentukan (misalnya, setiap 5 menit):
javascript
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.
Kode Bonus
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.

Kesimpulan
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.
Pernyataan Kepatuhan: Informasi yang diberikan di blog ini hanya untuk tujuan informasi. CapSolver berkomitmen untuk mematuhi semua hukum dan peraturan yang berlaku. Penggunaan jaringan CapSolver untuk kegiatan ilegal, penipuan, atau penyalahgunaan sangat dilarang dan akan diselidiki. Solusi penyelesaian captcha kami meningkatkan pengalaman pengguna sambil memastikan kepatuhan 100% dalam membantu menyelesaikan kesulitan captcha selama pengambilan data publik. Kami mendorong penggunaan layanan kami secara bertanggung jawab. Untuk informasi lebih lanjut, silakan kunjungi Syarat Layanan dan Kebijakan Privasi.
Lebih lanjut

Meningkatkan Otomatisasi Perusahaan: Infrastruktur Berbasis LLM untuk Pengenalan CAPTCHA yang Mulus & Efisiensi Operasional
Ketahui bagaimana Infrastruktur Otomatisasi AI yang didukung LLM mengubah pengenalan CAPTCHA, meningkatkan efisiensi proses bisnis dan mengurangi intervensi manual. Optimalkan operasi otomatis Anda dengan solusi verifikasi canggih.

Adรฉlia Cruz
30-Mar-2026

Memperluas Pengumpulan Data untuk Pelatihan LLM: Menyelesaikan CAPTCHA Secara Skala
Pelajari cara meningkatkan pengumpulan data untuk pelatihan LLM dengan menyelesaikan CAPTCHA dalam jumlah besar. Temukan strategi otomatis untuk membangun dataset berkualitas tinggi untuk model AI.

Nikolai Smirnov
27-Mar-2026

Perbaiki Kesalahan Cloudflare 1005: Panduan Pengambilan Data Web & Solusi
Pelajari cara memperbaiki Cloudflare Error 1005 diakses ditolak selama web scraping. Temukan solusi seperti proksi rumah tangga, pemindaian sidik jari peramban, dan CapSolver untuk CAPTCHA. Optimalkan ekstraksi data.

Sora Fujimoto
27-Mar-2026

Cara Menyelesaikan CAPTCHA di OpenBrowser Menggunakan CapSolver (Panduan Otomatisasi Agen AI)
Selesaikan CAPTCHA di OpenBrowser dengan CapSolver. Otomatisasi reCAPTCHA, Turnstile, dan lainnya untuk agen AI dengan mudah.

Aloรญsio Vรญtor
26-Mar-2026

Cara Menyelesaikan CAPTCHA Apa pun di HyperBrowser Menggunakan CapSolver (Panduan Pemasangan Lengkap)
Selesaikan CAPTCHA apa pun di HyperBrowser dengan CapSolver. Otomatiskan reCAPTCHA, Turnstile, AWS WAF, dan lainnya dengan lebih mudah.

Emma Foster
26-Mar-2026

Cara Menyelesaikan reCAPTCHA v2 Python dan API
Pelajari cara menyelesaikan reCAPTCHA v2 dengan Python dan API. Panduan lengkap ini mencakup metode Proxy dan Proxyless dengan kode yang siap produksi untuk otomatisasi.

Aloรญsio Vรญtor
25-Mar-2026

