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

Apa yang terbaik ekstensi untuk menyelesaikan CAPTCHA 2026?
Dalam dunia keamanan online yang terus berkembang, tantangan CAPTCHA telah menjadi hambatan umum bagi pengguna internet...

Emma Foster
12-Dec-2025

Lumiproxy: Proxy Premium untuk Pengambilan Data Web & Pengumpulan Data
Dalam artikel ini, kami akan menunjukkan kepada Anda apa itu Lumiproxy dan layanan yang mereka tawarkan.

Emma Foster
12-Dec-2025

Genlogin: Mengubah Secara Revolusioner Pengalaman Otomatisasi Web Anda
Dalam artikel ini, kami akan menunjukkan kepada Anda apa itu Genlogin dan layanan yang mereka tawarkan.

Nikolai Smirnov
12-Dec-2025

Proxys.io: Proxy individu untuk tugas apa pun
Dalam artikel ini, kami akan menunjukkan kepada Anda apa itu Proxys.io dan layanan yang mereka tawarkan.

Nikolai Smirnov
12-Dec-2025

Tabproxy: Nilai yang baik proxy perumahan luar negeri
Dalam artikel ini, kami akan menunjukkan kepada Anda apa itu Tabproxy dan layanan yang mereka tawarkan.

Emma Foster
12-Dec-2025

IP2World Proxy Rumah: Solusi Proxy IP Global Terkemuka
Dalam artikel ini, kami akan menunjukkan kepada Anda apa itu IP2World dan layanan yang mereka tawarkan.

Ethan Collins
12-Dec-2025

