دانلود یک صفحه وب یا جیسون Api با https.request

با Node.js میتوان صفحات سایت ها را دانلود کرد.

کدها در گیتهاب

تشریح کدها

ماژول های به کار رفته شده

کلا از دو تا ماژول fs و https استفاده شد.

این ماژول ها درون Node.js هستند و نیازی به نصب با npm یا yarn ندارند. (همانطور که میدانید نام fs مخفف File System است)

تمام کدها به 3 بخش تقسیم میشوند:

بخش اول: ارسال درخواست به ادرس صفحه ای که میخواهید دانلود کنید

بخش دوم: پاسخ درخواست را در یک متغیر جمع کنید!

بخش سوم: ذخیره داده ها در فایل junior.html

بخش اول: ارسال درخواست

با استفاده از متد https.request یک درخواست به juniorfrontend.ir میفرستیم:

{
    hostname: 'juniorfrontend.ir',
    port: 443,
    path: '/',
    method: 'GET'
}

بخش دوم: جمع کردن پاسخ ها در یک متغیر

در هنگام رویداد data ، پاسخ ها (که همان کدهای html هستند) به داخل متغیر responseBody ریخته و جمع میشوند.

res => { 
    let responseBody = '';
    res.setEncoding("utf-8"); 
    res.on('data', data => {
        console.log("--chunk--", data.length);
        responseBody += data;
    }

بخش سوم: ذخیره داده ها

با متد fs.writeFile پاسخ های دریافتی (که همان responseBody است) در یک فایل به نام junior.html ذخیره میکنیم.

fs.writeFile(
'./junior.html', 
responseBody, 
err=>{
  if (err) { throw err; }
  console.log('file downloaded!');
})

این کار با 30 خط کد انجام شد. به همین سادگی!