A Sam
A Sam
خواندن ۲ دقیقه·۵ سال پیش

پیاده سازی ربات های اینترنتی

با سلام خدمت مخاطبین گرامی

در این مطلب، به بررسی crawler ها پرداخته و مراحل ساخت ربات های اینترنتی از این قبیل را دنبال می کنیم.

خزنده های وب (یا همان web crawlerها) برنامه های اتوماتیکی هستند که وظایف از پیش تعیین شده ای دارند؛ از قبیل اسنخراج متن و محتوی از سطح اینترنت، ارسال متن و محتوی به وب سرور های مختلف، پر کردن فرم های آنلاین و غیره.

این مدل از خزنده ها که در این مطلب بررسی می شوند، از نوع متمرکز (Focused) هستند، به این معنی که هنگام اجرای درخواست، کاربر باید تا انتهای عملیات منتظر بنشیند تا بتواند دستور جدیدی به برنامه دهد.

در ساخت این ربات، از زبان #C و در محیطِ Visual Studio 2015 استفاده شده است. در پروژه ابزارهایی از قبیل Selenium و httpclient و chromeDriver استفاده شده است که در محیط پروژه می توانید آنلاین دریافت کرده و نصب کنید. بسته به نیاز، می توانید برخی از ابزار ها را نصب نکنید یا ابزار های بیشتری نصب کنید، مثلاً من از chromeDriver استفاده کرده ام، شاید شما با firefoxDriver راحت تر باشید.

برای پیاده سازی چنین رباتی، باید مراحل عملیاتی را بشناسیم. میخواهیم با وارد کردن آدرس URL یک وبسایت، ربات ما در آنجا شروع به فعالیت کند. (فراموش نکنید از لحاظ قانونی، ربات شما باید ابتدای ورود به هر سایت، اول فایلِ robots.txt/ را باز کند و در آنجا ببیند که آیا اجازه فعالیت در وب پیج مورد نظر را دارد یا خیر) به آدرس صفحه اول که به ربات می دهیم، seed نیز گفته می شود. میخواهیم از مقصد همه آدرس های موجود را جمع آوری کند و در یک فایل (به صورت منظم و مرتب و خوانا) ذخیره کند، سپس از آن فایل، آدرس های موجود را دانه دانه واکشی کرده و به عنوان seed قرار دهد و عملیات را باز تکرار کند.

ابزار selenium کمک شایانی در پیدا کردن و واکشی کردن تگ های موجود در ابرمتن صفحات وب به ما می کند. برای جستجو در ابرمتن ها، روش های بسیاری موجود است، یکی از این روش ها استفاده از متد Xpath می باشد، توسط این متد می توانید تا جزئی ترین عناصر صفحه وب را بیابید یا صرفاً به طور کلی، یک دسته از اطلاعات را select کنید. در این لینک می توانید نحوه پیدا کردن و جستجو کردن تگ های موجود در یک ابرمتن توسط سلنیوم را مشاهده کنید:

https://www.swtestacademy.com/xpath-selenium

ضمناً می توانید به فایل نصبیِ خزنده ای که شخصا طراحی کرده ام از طریق این لینک، دسترسی بیابید:

https://github.com/Vihuda/crawler/tree/installation_folder

و همچنین به نسخه های مختلف این پروژه می توانید از طریق این لینک دسترسی بیابید:

http://edu.bluepeople.dx.am

نحوه کارکرد این برنامه، به این صورت است که توسط chromeDriver یک مرورگر باز کرده، به صفحه موردنظر می رود، در محتویات ابرمتن آن صفحه، تگ های <a> را جستجو می کند، از آن تگ ها، رشته داخل href را استخراج می کند و به صورت مرتب در هر خط از یک فایل متنی آنها را ذخیره می کند. سپس به صورت بازگشتی، از آن فایل، خط به خط لینک ها را لینک مبداء قرار می دهد و این عملیات را تکرار می کند.

امیدوارم محتویات این مطلب برای شما مخاطبین گرامی مفید بوده باشد.

crawlerخزنده
شاید از این پست‌ها خوشتان بیاید