Cara Scraping Data Website dengan n8n HTTP Request
Setiap Senin, seseorang di tim Anda membuka lima website, menyalin harga atau stok ke spreadsheet, dan mengulanginya minggu depan. Pekerjaan menyalin dari layar ke sel adalah kandidat otomasi klasik — dan n8n bisa mengambil alih dengan dua node saja. Tapi tutorial scraping yang bertanggung jawab tidak boleh mulai dari teknik; ia harus mulai dari pertanyaan boleh atau tidak. Maka begitulah kita mulai.
Batas hukum dan etika scraping lebih dulu
Empat aturan yang kami pegang dan sarankan Anda pegang:
- Baca syarat layanan situsnya. Banyak situs — terutama marketplace dan media sosial — melarang scraping secara eksplisit. Larangan itu nyata; langgar berarti minimal IP diblokir, maksimal urusan hukum.
- Hormati
robots.txt(bukasitus.com/robots.txt) — itu pernyataan resmi bagian mana yang tidak ingin diakses mesin. - Jangan membebani. Ambil secukupnya, sepelan mungkin: sekali sehari, satu-dua halaman, jeda antar request. Scraping yang sopan tidak terasa oleh pemilik situs; yang rakus adalah serangan kecil.
- Data publik ≠ bebas pakai. Menyalin konten berhak cipta untuk diterbitkan ulang, atau memanen data pribadi, tetap salah meski halamannya terbuka.
Wilayah amannya: data faktual publik (harga resmi, kurs, jadwal, pengumuman) dari situs yang tidak melarang, diambil dengan santun, untuk analisis internal. Di luar itu, tanya dulu — kadang jawabannya justru "pakai saja API kami".
Langkah 1: Cek apakah situs punya API atau RSS tersembunyi
Scraping HTML adalah pilihan terakhir, karena paling rapuh. Sebelum itu, dua menit pengecekan sering menemukan jalan yang lebih baik: banyak situs punya API publik atau feed RSS (coba /feed, /rss, atau cari "nama-situs API"); dan banyak halaman modern memuat datanya lewat panggilan JSON internal yang bisa dilihat di tab Network browser DevTools (filter XHR, muat ulang halaman, cari respons berisi data yang Anda incar). Endpoint JSON semacam itu lebih stabil dan lebih ringan daripada membedah HTML — kalau ketemu, pakai itu lewat HTTP Request dan lewati langkah 3.
Langkah 2: Ambil halaman dengan HTTP Request node
Untuk situs yang memang harus dibaca HTML-nya: node HTTP Request, method GET, URL halamannya. Dua kesantunan teknis: isi header User-Agent yang jujur (beberapa situs menolak request tanpa identitas), dan pasang jeda — node Wait beberapa detik — di antara request kalau mengambil lebih dari satu halaman. Jalankan dan lihat hasilnya: satu gumpalan HTML mentah. Catatan batas yang penting: kalau data yang Anda cari tidak ada di HTML hasil node ini (halaman yang dirender penuh oleh JavaScript), HTTP Request tidak akan pernah melihatnya — cek dulu endpoint JSON dari langkah 1, dan kalau tetap buntu, kebutuhan Anda masuk kategori browser automation yang di luar cakupan tutorial ini.
Langkah 3: Ekstrak data dengan HTML Extract
Node HTML (operasi Extract) memetik nilai dari HTML memakai CSS selector. Cara menemukan selector-nya: buka halaman di browser, klik kanan pada data yang diincar → Inspect, dan baca elemennya — misalnya harga di dalam <span class="price"> berarti selector-nya .price. Di node HTML, definisikan tiap nilai yang mau diambil:
Extraction Values:
key: nama → selector: .product-title
key: harga → selector: .price
Return Array: aktifkan kalau halaman memuat banyak item
Lanjutkan dengan node Code kecil untuk membersihkan hasil — harga "Rp 1.250.000" menjadi angka 1250000, spasi dipangkas — karena data bersih di hulu menghemat semua rumus di hilir.
Langkah 4: Simpan rapi dan pantau perubahan struktur
Muara standarnya: Google Sheets dengan kolom timestamp, sumber, nama, nilai — sehingga dari waktu ke waktu Anda mendapat data historis gratis (grafik pergerakan harga kompetitor tersusun sendiri). Jadwalkan dengan Schedule Trigger sekali sehari di jam sepi.
Lalu bagian yang membedakan scraper yang bertahan dari yang mati diam-diam: situs berubah tanpa memberi tahu Anda. Redesign kecil mengganti nama class, dan selector Anda mulai mengembalikan kosong — bukan error, hanya kosong, yang lebih licik. Pasang penjaga: node IF yang memeriksa hasil ekstraksi (nol item, atau nilai kosong/tak masuk akal) dan mengirim peringatan Telegram "struktur situs X sepertinya berubah, selector perlu dicek". Dengan penjaga itu, perubahan situs jadi tugas perbaikan lima menit, bukan tiga minggu data bolong yang ketahuan belakangan.
Situs yang sebaiknya tidak Anda scrape
Daftar hitam praktis: situs yang melarang di ToS-nya (marketplace besar umumnya — dan mereka punya program API resmi untuk kebutuhan sah), situs yang butuh login (akses ber-login mengikat Anda pada perjanjian yang hampir pasti melarang otomasi), apa pun yang berbau data pribadi, dan situs yang memasang pertahanan anti-bot aktif — captcha dan blokir adalah pemilik rumah yang bilang tidak; menerobosnya bukan otomasi lagi, melainkan pemaksaan. Untuk semua kasus itu, jalur yang benar selalu sama: cari API resmi, atau hubungi pemiliknya.
Dipakai dengan santun, pola ambil-ekstrak-simpan-jaga ini menutup kebutuhan pemantauan data eksternal kebanyakan bisnis kecil. Dan kalau kebutuhan Anda lebih dalam — banyak sumber, volume besar, atau integrasi ke sistem internal — tim AI automation kami merancangnya lengkap dengan sisi kepatutannya. Diskusikan kebutuhan data Anda.
Clovertechno