مهدی قدسی‌زاده
مهدی قدسی‌زاده
خواندن ۲ دقیقه·۴ سال پیش

کروال وبسایت با استفاده از Scrapy

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

یکی از راه‌های دریافت داده‌ها استفاده از کراولر یا خزنده برای جست و جو در وبسایت‌ها و تجزیه محتوای اون‌ها مطابق نیاز ما است.

من برای یک پروژه پردازش متن نیاز به دریافت محتویات خبرهای چند خبرگزاری داشتم. برای این‌کار از فریم‌ورک Scrapy در زبان پایتون استفاده کردم. این فریم‌ورک به شما این امکان رو می‌ده که:

  • درخواست‌های همزمان و متعدد به صفحات وب بفرستید.
  • به راحتی با استفاده از css selector یا xpath selector محتوای مورد نظرتون رو انتخاب کنید.
  • با استفاده از یک pipline که مطابق نیازتون طراحی می‌شه داده‌های خودتون رو تمیز و ذخیره کنید.
کروال وبسایت با استفاده از پایتون
کروال وبسایت با استفاده از پایتون


برای استفاده از فریم‌ورک Scrapy بعد از ساخت یک Virutal enviroment برای محیط توسعه خودتون با استفاده از دستور زیر اون رو نصب کنید:

pip install scrapy ipython

نصب ipython به شما کمک می‌کنه در زمان استفاده از شل (shell) در فریم‌ورک Scrapy محیط مناسب‌تری در اختیار داشته باشید.

بعد از نصب Scrapy به راحتی می‌تونید با استفاده از دستورهای زیر پروژه و عنکبوت(spider) خودتون رو بسازید و سریع وارد مرحله تجزیه وبسایت بشید:

scrapy startproject tutorial cd tutorial # برای ورود به پروژه scrapy genspider mydomain mydomain.com # نام عنکبوت و دامنه‌ای که مایل به خزیدن در آن هستید.

بعد از این مرحله می‌تونید. فایل عنکبوت خودتون رو باز کنید و مطابق نیاز خودتون اون رو ویرایش کنید.



در ویدیوی زیر یک کراولر برای خبرگزاری عصرایران می‌نویسیم و عنوان خبر، زیر‌عنوان خبر و متن خبر را در یک فایل json ذخیره می‌کنیم.

https://www.youtube.com/channel/UCF3v_GwH3Jg2c-V3hRwmcbg

در این ویدیو علاوه بر Scrapy از افزونه selectorGadget که برای مرورگرهای بر پایه کرومیوم موجود است استفاده کردم.

https://www.youtube.com/watch?v=B_XCgDZLN_Q&t=6s


اگر این آموزش برای شما جالب بود با دنبال کردن من در Youtube و ویرگول برای ادامه این‌کار حمایت کنید.

و اگر سوالی در مورد این آموزش داشتید می‌تونید در کامنت‌های این پست یا ویدیو از من بپرسید یا از طریق @mghodsizadeh در توییتر با من در ارتباط باشید.



یکی از روش‌های تجزیه وب استفاده از ابزارهایی مثل pandas، requests و beautifulsoup است، من در پروژه بورس تهران در پایتون از این ابزارها استفاده کردم شاید مطالعه این متن و کد‌های پروژه برای شما جالب باشه.

https://virgool.io/@ghodsizadeh
https://github.com/ghodsizadeh/tehran-stocks
پایتونوبپردازش متن
اینجا در مورد برنامه‌نویسی علمی و فنی، مدیریت کارها و کمی هم در رابطه با کتاب می‌نویسم.
شاید از این پست‌ها خوشتان بیاید