وب اسکرپینگ با انگولار.جی‌اس – اسکرپ کردن موزیک ویدئوهای بلاگ

وب اسکرپینگ با انگولار.جی‌اس – اسکرپ کردن موزیک ویدئوهای بلاگ

حتما توجه کرده اید که در انتهای بعضی از پست‌ها یک موزیک ویدئو قرار می دهم. این پست هم به همین موزیک ویدئوها مرتبط است (حداقل خوبه یه بار این ویدئوها بدرد خورد).

دیروز یکی از دوستان لطف کرده بود کامنت زیر را ارسال کرده بود:

 

. . .

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

 

با تشکر ازسجاد که باعث شد یک پست دیگه برای Angular آماده کنم. به این حال،این کامنتو خوندم و تصمیم گرفتم که بجایی اینکه “کانال تلگرام” جدیدی یا یک “پلی لیست” در یوتیوب درست کنم و تک‌تک لینک‌ موزیک ویدیو‌ها را بطور دستی پیدا کنم، از وب اسکرپینگ استفاده کنم، که هم چیز جدیدی یاد گرفته باشیم و هم سرگرم شویم!

 

وب اسکرپینگ – Web Scraping چیست؟

 

در کل این وب اسکرپ کردن چیز جدیدی نیست و از گذشته وجود داشته است. قبل از به روی کار آمدن API ، تنها روش به اشتراک گذاری داده‌ها بین سرویس‌ها استفاده از وب اسکرپینگ بوده است. بطور خلاصه وب اسکرپینگ فرایندی است که بطور خودکار اقدام به جمع آوری اطلاعات از وب سایت‌ ها می شود، به همین سادگی. امروزه روش های بسیاری برای این کار وجود دارد، یکی از آنها استفاده از برنامه‌های تخصصی است، به عنوان مثال می توانید از افزونه‌های مرورگرها مثل Web Scraper استفاده کنید – یا اینکه اسکریپت خود را نوشته و به جان سایت ها بیندازیم تا مثل یک کرم در سایت بخزد و دادها را جمع آوری کند. 🙂

 

توجه داشته باشید بعضی از سایت‌ها اجازه اسکرپت کردن را به شما نمی دهند و شخم زدن اینجور سایتها پیگرد قانونی دارد، پس مواظب باشید که چه سایتی را اسکرپت می کنید. 🙂

 

اگر بلاگ جادی را دنبال کرده باشید حتما وب اسکرپینگ با پایتون را مشاهده کرده اید – اگر اینطور نیست پیشنهاد می شود ویدیویی که در این رابطه تهیه کرده است را مشاهده کنید. در آن ویدیو، جادی از python برای اسکرپ کردن استفاده می کند. ما نیز می خواهیم با استفاده از Angular و jQuery و چند چیز دیگر چنین کاری کنیم (البته در این پست فعلا توضیحاتی برای چگونگی ساخت آن مطرح نمی شود – اما اگر تجربه کار با آنگولار را از قبل داشته باشید می توانید کد نهایی آن را در گیت هاب بررسی و اجرا کنید).

 

آموزش آنگولار

بله همانطور که در خروجی فوق مشاهده می کنید ما تمام موزیک‌ ویدیو ها بابون را یک جا در یک صفحه در اختیار داریم و می توانیم آنها را گوش کنیم (البته اگر علاقه ای به شندین آنها داشته باشید). توجه داشته باشید این پروژه تنها ارزش آموزش دارد و در حد یک برنامه خفن ایجاد نشده است. کدهای برنامه را سعی کرده ام خیلی واضح بنویسم اما خالی از اشکال نیست و همچنین زیاد هم بهینه نیست!!!!!! اما ارزش آن را دارد تا با مفهوم وب اسکرپینگ آشنا شویم.

 

توجه کنید برای اجرا برنامه باید فیلتر نشکنتنون روشن باشد. 🙂

 

نصب

ابتدا پروژه را از گیت‌هاب دانلود کنید:

آنگاه دستور bower install را در ریشه دایرکتوری ساخته شده اجرا کنید تا وابستگی‌های مرورد نیاز نصب شود.

 

توجه داشته باشید که نیازمند داشتن Node.js‌ هستید.

 

اجرا

یشتر مرورگرهای مدرن به خاطر امنیت اجازه بعضی از کارها را در برنامه نمی دهند. در این پست فرض شده است از مرورگر chrome استفاده می کنید، پس مرورگر را با دستور زیر اجرا کنید:

یا انکه از افزونه‌های گوگل کروم استفاده مثل CORS Toggle استفاده کنید. اگر این کار را انجام ندهیم با خطای زیر در کنسول مرورگر روبرو می شویم:

حال فایل index.html را بطور دستی در مروگر خود اجرا کنید – یا اینکه پیشنهاد می شود از http-server برای اجرای برنامه استفاده کنید:

تنها کافیست دستور http-server را در ریشه پروژه خود اجرا کنید و به آدرس http://localhost:8080 در مرورگر مراجعه کنید.

پس از اجرا چند لحظه صبر کنید تا اطلاعات از سایت دریافت شود و بعد دکمه LOAD VIDEO را کلیک کنید تا ده تا ده تا پست ها را بررسی کنید و هر کدام که ویدیو داشت را در صفحه نشان دهد.

امیدوارم توانسته باشم چیز جدیدی را در این کدها نشان دهم. همانطور که مشاهده می کنید با استفاده از وب اسکرپینگ کلی کار با مزه می شود انجام داد، پس دست به کار شوید و اپ‌های جالب درست کنید.


 

  • ژورا

    قند شکن ما که کار نکرد تا ببینیم چجوریه 🙂 ولی دستت درد نکنه
    وب اسکرپر با کرالر کارشون یکیه یا دو تا مقوله مجزا هستن؟

    • پاتریک درآواکیانس

      بله تقریبا یکی هستن! 😉