java, جاوا, حل مسائل با جاوا

Crawler در جاوا (Crawler in java)

Crawler در جاوا

در این قسمت تیم کدگیت را با آموزش نوشتن Crawler در جاوا همراهی کنید. پیش نیاز این آموزش شامل موارد زیر است:

  1. آشنایی با متد
  2. آشنایی با حلقه for
  3. استثناها در جاوا
  4. اضافه کردن کتابخانه در جاوا
  5. کتابخانه Jsoup (فایل jar را دانلود کنید)

Crawler چیست؟

یک Spider ، یک Crawler از نظر لغوی به معنی عنکبوت و خزیدن است. Spider ها یا Crawler ها هر دو در واقع یک چیز هستند ، آنها نرم افزار یا اسکریپت اتوماتیکی هستند که لینک های اینترنتی را به یک الگوریتم مشخص و هدفمند دنبال می کنند و به وب سایت های مختلف سر می زنند و محتوای موجود در صفحات وب سایت را برای پایگاه داده های موتورهای جستجو ایندکس می کنند تا این پایگاه داده همیشه به روز باشد. در واقع Crawler ها یک نوع روبات هستند که بصورت روزانه همین عملیات را انجام می دهند.

نوشتن Crawler در جاوا

در این قسمت ما یک Crawler ساده می‌نویسیم که وبسایتی را به عنوان ورودی می‌گیرد و تمام لینک‌های آن را به ما نمایش می‌دهد. برای این کار ما از کتابخانه Jsoup استفاده می‌کنیم. این کتابخانه می‌تواند کد یک سایت را بخواند و فیلتر‌های خاصی را بر روی کد اعمال کند. کد Crawler در جاوا به صورت زیر است:

     public static void crawling(String URL) {

          Document doc = null;
          try {
              doc = Jsoup.connect(URL).get();
          } catch (IOException e) {
              return;
          }

          Elements questions = doc.select("a[href]");
          for (Element link : questions) {
              if (link.attr("href").contains("codegate.ir")) {
                   System.out.println(link.attr("href"));
              }
          }
     }

در بالا ما یک متد به نام Crawling نوشتیم که ورودی آن آدرس سایت است. درون متد ابتدا به کمک کتابخانه Jsoup کد سایت را می‌خوانیم(()Jsoup.connect). خروجی متد Connect یک Document است(همان کد وبسایت) و به کمک متد Select درون کلاس Document میتوانیم کد سایت خود را فیلتر کنیم. در اینجا ما href را فیلتر کردیم تا لینک‌های درون سایت مشخص شود.

تست Crawler در جاوا

برای تست کدهای بالا، کد main زیر را بزنید:

     public static void main(String[] args) {
          String URL = "http://codegate.ir";
          crawling(URL);
     }

4 دیدگاه در “Crawler در جاوا (Crawler in java)

  1. hani گفت:

    اگه بخوام با Nutch بنویسم باید چیکار کنم

    1. با سلام. کتابخانه apache آموزش های مختلفی داره که داخل سایت توضیح داده شده است.

  2. محنا گفت:

    میشه یکم راجب کدش توضیح بدید؟ممنون میشم…

    1. سعید غریبی گفت:

      سلام. یک متد نوشتیم به نام crawling که آدرس سایت رو به عنوان ورودی می‌گیره و در خروجی تمام tagهای href رو بررسی می‌کنه که اگر لینک (Tagهایی) که شامل http://www.codegate.ir میشن رو چاپ کنه.
      اگر قسمت خاصی سوال دارید در همین قسمت دیدگاه بزارید تا پاسخ بدم.
      تشکر.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *