معنای 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 را فیلتر کردیم تا لینکهای درون سایت مشخص شود.
برای تست کدهای بالا، کد main زیر را بزنید:
public static void main(String[] args) {
String URL = "http://www.codegate.ir";
crawling(URL);
}