JavaScript:
একটি ওয়েবপেজ ডাউনলোড করা
কিভাবে:
নোড.জেএস দিয়ে node-fetch ব্যবহার করে একটি পেজ ডাউনলোড করার একটি দ্রুত উপায় এখানে দেওয়া হল:
const fetch = require('node-fetch'); // প্রথমে এটি ইনস্টল করতে হতে পারে!
async function downloadPage(url) {
try {
const response = await fetch(url);
const body = await response.text();
console.log(body); // পেজের HTML সোর্স আউটপুট দেয়
} catch (error) {
console.error(error);
}
}
downloadPage('https://example.com');নমুনা আউটপুট:
<!doctype html>
<html>
<head>
<title>Example Domain</title>
...
</html>গভীর ডুব
ঐতিহাসিকভাবে, ওয়েব পেজ ডাউনলোড করা হতো ব্রাউজারে XMLHTTPRequest অথবা নোড.জেএসে http মডিউলের মাধ্যমে। তবে, ES6-এর পর, fetch API এর সহজ সিনট্যাক্স এবং Promise-ভিত্তিক প্রকৃতির কারণে আধুনিক মানদণ্ড হয়ে উঠেছে।
বিকল্পগুলির মধ্যে axios রয়েছে, যা নেটিভ fetch এর তুলনায় একটু বেশি কার্যকারিতা সহ রিকোয়েস্ট সামলায়। জটিল ব্যবহারের ক্ষেত্রে, জাভাস্ক্রিপ্ট-রেন্ডার কনটেন্ট নিয়ে কাজ করার জন্য হেডলেস ব্রাউজারে পেজটি প্রকৃতপক্ষে রেন্ডার করতে আপনি puppeteer ব্যবহার করতে পারেন।
পেজ ডাউনলোড বাস্তবায়নের সময় robots.txt মেনে চলা, User-Agent সামলানো যাতে ব্লক না হয়ে যায়, এবং সার্ভার ওভারলোড অথবা রেস কন্ডিশনের সাথে সম্ভাব্য সমস্যা এড়াতে অ্যাসিঙ্ক্রোনাস হ্যান্ডলিংকে যত্নসহকারে পরিচালনা করার মতো দিকগুলি লক্ষ্য রাখা উচিত।
আরও দেখুন
fetchAPI সম্পর্কে MDN Web Docs: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch- Axios GitHub পৃষ্ঠা: https://github.com/axios/axios
- Puppeteer GitHub পৃষ্ঠা: https://github.com/puppeteer/puppeteer
- ওয়েব স্ক্র্যাপিং শ্রেষ্ঠ প্রক্রিয়াগুলি সম্পর্কে একটি নিবন্ধ: https://www.scrapingbee.com/blog/web-scraping-best-practices/