Cara Menggunakan node-fetch untuk Web Scraping

Adélia Cruz
Neural Network Developer
27-Sep-2024
Apa itu node-fetch?
node-fetch
adalah sebuah library JavaScript yang ringan yang membawa API window.fetch
ke Node.js. Ini sering digunakan untuk melakukan permintaan HTTP dari lingkungan Node.js, menyediakan cara yang modern dan fleksibel untuk menangani operasi jaringan secara asinkron.
Fitur:
- Berbasis Promise: Menggunakan JavaScript promises untuk mengelola operasi asinkron dengan cara yang sederhana.
- Dukungan Node.js: Dirancang khusus untuk lingkungan Node.js.
- Dukungan Stream: Mendukung stream, membuatnya sangat cocok untuk menangani data besar.
- Kecil dan Efisien: Desain minimalis, berfokus pada kinerja dan kompatibilitas dengan fitur JavaScript modern.
Prasyarat
Sebelum menggunakan node-fetch
, pastikan Anda memiliki:
Instalasi
Untuk menggunakan node-fetch
, Anda perlu menginstalnya menggunakan npm atau yarn:
bash
npm install node-fetch
atau
bash
yarn add node-fetch
Contoh Dasar: Melakukan Permintaan GET
Berikut adalah cara melakukan permintaan GET sederhana menggunakan node-fetch
:
javascript
const fetch = require('node-fetch');
fetch('https://httpbin.org/get')
.then(response => response.json())
.then(data => {
console.log('Response Body:', data);
})
.catch(error => {
console.error('Error:', error);
});
Contoh Web Scraping: Mengambil Data JSON dari API
Mari kita ambil data dari API dan log hasilnya:
javascript
const fetch = require('node-fetch');
fetch('https://jsonplaceholder.typicode.com/posts')
.then(response => response.json())
.then(posts => {
posts.forEach(post => {
console.log(`${post.title} — ${post.body}`);
});
})
.catch(error => {
console.error('Error:', error);
});
Menangani Captcha dengan CapSolver dan node-fetch
Pada bagian ini, kita akan mengintegrasikan CapSolver dengan node-fetch
untuk menangani captcha. CapSolver menyediakan API untuk menyelesaikan captcha seperti ReCaptcha V3 dan captcha, memungkinkan otomatisasi tugas yang memerlukan penyelesaian captcha tersebut.
Contoh: Menyelesaikan ReCaptcha V3 dengan CapSolver dan node-fetch
Pertama, instal node-fetch
dan CapSolver:
bash
npm install node-fetch
npm install capsolver
Sekarang, berikut cara menyelesaikan ReCaptcha V3 dan menggunakan solusinya dalam permintaan Anda:
javascript
const fetch = require('node-fetch');
const CAPSOLVER_KEY = 'YourKey';
const PAGE_URL = 'https://antcpt.com/score_detector';
const PAGE_KEY = '6LcR_okUAAAAAPYrPe-HK_0RULO1aZM15ENyM-Mf';
const PAGE_ACTION = 'homepage';
async function createTask(url, key, pageAction) {
try {
const apiUrl = 'https://api.capsolver.com/createTask';
const payload = {
clientKey: CAPSOLVER_KEY,
task: {
type: 'ReCaptchaV3TaskProxyLess',
websiteURL: url,
websiteKey: key,
pageAction: pageAction
}
};
const response = await fetch(apiUrl, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(payload)
});
const data = await response.json();
return data.taskId;
} catch (error) {
console.error('Error creating CAPTCHA task:', error);
throw error;
}
}
async function getTaskResult(taskId) {
try {
const apiUrl = 'https://api.capsolver.com/getTaskResult';
const payload = {
clientKey: CAPSOLVER_KEY,
taskId: taskId,
};
let result;
do {
const response = await fetch(apiUrl, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(payload)
});
result = await response.json();
if (result.status === 'ready') {
return result.solution;
}
await new Promise(resolve => setTimeout(resolve, 5000)); // wait 5 seconds
} while (true);
} catch (error) {
console.error('Error fetching CAPTCHA result:', error);
throw error;
}
}
async function main() {
console.log('Creating CAPTCHA task...');
const taskId = await createTask(PAGE_URL, PAGE_KEY, PAGE_ACTION);
console.log(`Task ID: ${taskId}`);
console.log('Retrieving CAPTCHA result...');
const solution = await getTaskResult(taskId);
const token = solution.gRecaptchaResponse;
console.log(`Token Solution: ${token}`);
const res = await fetch('https://antcpt.com/score_detector/verify.php', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ 'g-recaptcha-response': token })
});
const response = await res.json();
console.log(`Score: ${response.score}`);
}
main().catch(err => {
console.error(err);
});
Menangani Proxy dengan node-fetch
Untuk mengarahkan permintaan Anda melalui proxy dengan node-fetch
, Anda akan memerlukan proxy agent seperti https-proxy-agent
. Berikut cara mengimplementasikannya:
bash
npm install https-proxy-agent
Contoh dengan proxy:
javascript
const fetch = require('node-fetch');
const HttpsProxyAgent = require('https-proxy-agent');
const proxyAgent = new HttpsProxyAgent('http://username:password@proxyserver:8080');
fetch('https://httpbin.org/ip', { agent: proxyAgent })
.then(response => response.json())
.then(data => {
console.log('Response Body:', data);
})
.catch(error => {
console.error('Error:', error);
});
Menangani Cookie dengan node-fetch
Untuk menangani cookie di node-fetch
, Anda dapat menggunakan library seperti fetch-cookie
. Berikut cara menggunakannya:
bash
npm install fetch-cookie
Contoh:
javascript
const fetch = require('node-fetch');
const fetchCookie = require('fetch-cookie');
const cookieFetch = fetchCookie(fetch);
cookieFetch('https://httpbin.org/cookies/set?name=value')
.then(response => response.json())
.then(data => {
console.log('Cookies:', data);
})
.catch(error => {
console.error('Error:', error);
});
Penggunaan Lanjutan: Header Kustom dan Permintaan POST
Anda dapat menyesuaikan header dan melakukan permintaan POST dengan node-fetch
:
javascript
const fetch = require('node-fetch');
const headers = {
'User-Agent': 'Mozilla/5.0 (compatible)',
'Accept-Language': 'en-US,en;q=0.5',
};
const data = {
username: 'testuser',
password: 'testpass',
};
fetch('https://httpbin.org/post', {
method: 'POST',
headers: headers,
body: JSON.stringify(data),
})
.then(response => response.json())
.then(data => {
console.log('Response JSON:', data);
})
.catch(error => {
console.error('Error:', error);
});
Kode Bonus
Klaim Kode Bonus Anda untuk solusi captcha teratas di CapSolver: scrape. Setelah menukarkannya, Anda akan mendapatkan bonus tambahan 5% setelah setiap isi ulang, tanpa batas waktu.

Kesimpulan
Dengan node-fetch
, Anda dapat secara efektif mengelola permintaan HTTP di Node.js. Dengan mengintegrasikannya dengan CapSolver, Anda dapat menyelesaikan captcha seperti ReCaptcha V3 dan captcha, memberikan akses ke konten terbatas. Selain itu, node-fetch
menawarkan penyesuaian melalui header, dukungan proxy, dan manajemen cookie, menjadikannya alat serbaguna untuk web scraping dan otomatisasi.
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

Pengenalan Gambar Berbasis AI: Dasar-Dasar dan Cara Mengatasinya
Ucapkan selamat tinggal pada kesulitan CAPTCHA gambar – CapSolver Vision Engine menyelesaikannya dengan cepat, cerdas, dan tanpa kerumitan!

Ethan Collins
25-Apr-2025

Agen Pengguna Terbaik untuk Web Scraping & Cara Menggunakannya
Panduan untuk user agent terbaik untuk web scraping dan penggunaan efektifnya untuk menghindari deteksi. Jelajahi pentingnya user agent, jenis-jenisnya, dan cara mengimplementasikannya untuk web scraping yang lancar dan tidak terdeteksi.

Ethan Collins
07-Mar-2025

Sidik Jari TLS Cloudflare: Apa Itu dan Cara Mengatasinya
Pelajari tentang penggunaan TLS fingerprinting Cloudflare untuk keamanan, bagaimana cara mendeteksi dan memblokir bot, dan jelajahi metode efektif untuk mengatasinya dalam tugas web scraping dan penelusuran otomatis.

Ethan Collins
28-Feb-2025

Mengapa saya terus diminta untuk memverifikasi bahwa saya bukan robot?
Pelajari mengapa Google meminta Anda untuk memverifikasi bahwa Anda bukan robot dan jelajahi solusi seperti menggunakan API CapSolver untuk menyelesaikan tantangan CAPTCHA secara efisien.

Ethan Collins
27-Feb-2025

Mengapa Situs Web Mengira Saya Bot? Dan Cara Mengatasinya
Pahami mengapa situs web menandai Anda sebagai bot dan cara menghindari deteksi. Pemicu utama meliputi tantangan CAPTCHA, IP yang mencurigakan, dan perilaku browser yang tidak biasa.

Ethan Collins
20-Feb-2025

Cara Mengestrak Data dari Situs Web yang Dilindungi Cloudflare
Dalam panduan ini, kita akan mengeksplorasi teknik etis dan efektif untuk mengekstrak data dari situs web yang dilindungi Cloudflare.

Ethan Collins
20-Feb-2025