دوره های آموزشی سایت دانشجویار

ایجاد Web scrapper با استفاده از Node.js

Loading...
scrapper

اگر می خواهید یک Scrapper برای خود بسازید و اطلاعات را از هر وب سایتی بگیرید و با فرمت JSON دریافت کنید، در این مقاله به شما آموزش می دهیم که چگونه این کار را انجام دهید.

برسی بیشتر scrapper

در این آموزش به شما توضیح می دهیم که چگونه اطلاعات دلخواه خود را با استفاده از node.js از هر وبسایتی بگیرید و آن اطلاعات را با فرمت JSON به دست آورید که می توان از آن برا ساخت هر اپلیکیشنی استفاده کرد و اطلاعات زنده را از اینترنت اجرا کنید.

برای این آموزش ما از ویندوز ۱۰ نسخه ۶۴ بیت و VS 2015 استفاده می کنیم.

در ابتدا، IDE را نضب و راه اندازی کنید، js pre build installer را دانلود کنید.

scrapper

بعد از نصب آن، Visual Studio را باز کنید و یک قالب پروژه جدید JavaScript، Node.js بسازید.

scrapper

اکنون باید دو بسته “Request” و “Cheerio” را به پوشه npm اضافه کنیم.

scrapper

و jade را با یک کلیک راست حذف می کنیم. اگر می خواهید json را به صورت مستقیم در اپلیکیشن به کار ببرید یا آن را با استفاده از سرویس میزبانی کنید نیازی به حذف کردن آن نیست.

اکنون به app.js بروید و خط های ۱۴ و ۱۵ را برسی کنید.

scrapper

هم چنین app.use(‘/’, routes) را نیز برسی کنید.

app.use(‘/users’, users) را به app.use(‘/’, users) تغییر دهید.

اکنون به users.js بروید و کار های باقی مانده را انجام می دهیم. ابتدا، فایل های “cheerio” و “request” را اضافه کنید.

scrapper

یک متغبر برای ذخیره لینک url ایجاد کنید.

var url = “http://www.thenews.com.pk/CitySubIndex.aspx?ID=14”;

قابلیت router.get() را به صورت زیر اصلاح کنید.

router.get('/', function(req, res)  
{  
    request(url, function(error, response, body)  
    {  
        if (!error && response.statusCode === 200)  
        {  
            var data = scrapeDataFromHtml(body);  
            res.send(data);  
        }  
        return console.log(error);  
    });  
});  

scrapper

اکنون باید logic اصلی را بنویسیم. باید قابلیت های خود را مطابق با وب سایت خود و اطلاعاتی که می خواهید شخصی سازی کنید.

در این قسمت می خواهیم اطلاعات زیر، سرخط خبرها، توضیحات و لینک باز کردن جزئیات خبر را scrap کنیم. این اطلاعات به صورت پویا تغییر پیدا می کنند و آخرین اطلاعات را fetch می کنند.

scrapper

برای fetch کردن این اطلاعات باید با DOM آشنایی داشته باشید که در این صورت می توانید jQuery را برای آسان تر fetch کردن اطلاعات بنویسید.

scrapper

یک DOM برای نوشتن jQuery برای fetch کردن راحت تر ایجاد می کنیم.

scrapper

متن های قرمز nodes (گره) هستند. باید به loop برای دسترسی به اطلاعات وب سایت برسیم.

scrapper

ما یک قابلیت با نام scrapedatafromthtml به صورت زیر می نویسیم.

var scrapeDataFromHtml = function(html)  
{  
    var data = {};  
    var $ = cheerio.load(html);  
    var j = 1;  
    $('div.DetailPageIndexBelowContainer').each(function()  
    {  
        var a = $(this);  
        var fullNewsLink = a.children().children().attr("href");  
        var headline = a.children().first().text().trim();  
        var description = a.children().children().children().last().text();  
        var metadata = {  
            headline: headline,  
            description: description,  
            fullNewsLink: fullNewsLink  
        };  
        data[j] = metadata;  
        j++;  
    });  
    return data;  
};  

این قابلیت با استفاده از کلاس به ‘div’ دسترسی پیدا می کند. DetailPageIndexBelowContainer و DOM را برای fetch کردن fullNewsLink تکرار می کند. سپس سه مقدار در ردیفی به نام metadata اضافه می کند. یک ردیف دیگر به نام data نیز داریم که مقادیر را از metadata می آورد.

اکنون آن را اجرا و خروجی را برسی کنید.

scrapper



مطالب مرتبط
ديدگاه خود را ارسال کنيد


محبوب ترين ويدئو هاي انلاين
دوره برنامه نویسی فروشگاه اینترنتی
  • تعداد اعضا 80k
  • قيمت دوره۱۳۰,۰۰۰ تومان
  • امتيازدهي
    1 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 5( 5٫00 از 1 رای )
    Loading...
دوره آموزشی سیستم ثبت سفارش آنلاین
  • تعداد اعضا 80k
  • قيمت دوره--
  • امتيازدهي
    1 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 5( 5٫00 از 1 رای )
    Loading...
دوره طراحی سیستم مدیریت مشتریان
  • تعداد اعضا 80k
  • قيمت دوره۶۵,۵۰۰ تومان
  • امتيازدهي
    1 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 5( 5٫00 از 1 رای )
    Loading...