آموزش Scraping وب با استفاده از Scrapy در Python for Data Science

Web Scraping using Scrapy in Python for Data Science

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: استاد خراش دادن وب با اسکرپی: باز کردن بینش های علم داده با استفاده از پایتون مفاهیم اساسی خراش دادن وب و نحوه استخراج اخلاقی داده ها از وب سایت ها را بیاموزید. درک کاملی از چارچوب Scrapy، معماری آن و اجزایی مانند عنکبوت ها، آیتم ها، خطوط لوله و تنظیمات به دست آورید. در فرآیند ایجاد و پیکربندی عنکبوت‌های Scrapy برای پیمایش در وب‌سایت‌ها و استخراج داده‌های هدفمند به طور مؤثر تسلط داشته باشید. با استفاده از انتخابگرهای Scrapy و میان افزار، مدیریت انواع محتوای وب، از جمله صفحات استاتیک و پویا را یاد بگیرید. روش‌های مختلف ذخیره‌سازی داده‌های خراش‌شده، مانند صادرات به CSV، JSON، یا پایگاه‌های داده را کاوش کنید. راهبردهایی را برای رسیدگی به مسائل رایج اسکرپینگ وب، مانند برخورد با محتوای رندر شده با AJAX و جاوا اسکریپت، مدیریت نرخ درخواست، و غلبه بر ضد scraping یاد بگیرید.

سلام و به دوره جدید من 'راهنمای کامل مبتدی تا پیشرفته برای خراش دادن وب با استفاده از Scrapy' خوش آمدید.


شما قبلاً می دانید که در این عصر فناوری اطلاعات، "داده" همه چیز است. و ما در همه جا داده های زیادی داریم. هر ثانیه چندین تن داده در حال تولید است. اما، درست مانند ضرب المثل "آب، آب در همه جا، نه قطره ای برای نوشیدن"، داده های جدولی ساختار یافته قابل استفاده در مقایسه با حجم وسیعی از داده های توزیع شده در سراسر اینترنت بسیار کمتر است. تجزیه و تحلیل داده های مدرن و یادگیری ماشینی به داده های ساختار یافته برای آموزش و ارزیابی مدل نیاز دارند.


اسکراپینگ وب روشی است که می‌توانیم از آن برای به دست آوردن خودکار مقادیر زیادی داده از وب‌سایت‌ها استفاده کنیم. بیشتر این داده های بدون ساختار در قالب صفحات یا جداول HTML هستند. برای استخراج و تبدیل این داده‌ها به شکل ساختاریافته مانند صفحه‌گسترده یا ذخیره در یک پایگاه داده می‌توان از ابزار scraping وب استفاده کرد تا بتوان از آن در برنامه‌های مختلف استفاده کرد.


ابزارهای زیادی برای انجام اسکراپینگ وب وجود دارد. Scrapy یک چارچوب خزیدن وب رایگان و منبع باز است که به زبان Python نوشته شده است که توسط Zyte، یک شرکت توسعه و خدمات خراش دادن وب، توسعه و نگهداری می شود. Scrapy که در اصل برای اسکراپینگ وب طراحی شده بود، می‌تواند برای استخراج داده‌ها با استفاده از API یا به عنوان یک خزنده وب همه منظوره نیز استفاده شود.


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


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


در جلسه بعدی، کتابخانه scrapy را راه اندازی می کنیم. از نصب مفسر پایتون شروع می کنیم، سپس به نصب IDE pycharm برای کدنویسی و در نهایت کتابخانه scrapy ادامه می دهیم. سپس با استفاده از خط فرمان scrapy shell یک بررسی سریع را امتحان می کنیم تا ببینیم آیا همه چیز همانطور که در نظر گرفته شده کار می کند یا خیر. ما سعی خواهیم کرد وب سایت ebay را خراش دهیم و کل محتوای وب سایت، صفحه ای که به صورت محلی در یک مرورگر ذخیره می شود و همچنین کل html در خط فرمان را دریافت می کنیم.


سپس در جلسه بعدی، با انتخابگرهای scrapy شروع می کنیم. ما دو نوع انتخابگر خراشیده را مورد بحث قرار خواهیم داد. انتخابگرهای CSS و همچنین انتخابگرهای XPath. ما سعی خواهیم کرد با استفاده از روش get یک عنصر h4 را از وب‌سایت ebay حذف کنیم و همه دسته‌های محصول را با get all واکشی کنیم.


و سپس در جلسه آینده، به نمونه های بیشتری از انتخابگرهای css خواهیم پرداخت. ما از وب سایت های جعبه سندباکس Books and Quotes از zyte برای انجام تمرینات خود استفاده خواهیم کرد. با رفتن به درونی‌ترین تگ‌های html، فهرستی از دسته‌های کتاب را دریافت می‌کنیم. ما نحو و ساختار استفاده از هر دو css و همچنین انتخابگرهای xpath را یاد خواهیم گرفت. پس از آن، نمونه هایی را با استفاده از انتخابگرهای xpath نیز امتحان خواهیم کرد.


در جلسه بعدی، همان عبارات حذف را در یک برنامه پایتون امتحان خواهیم کرد. ما یک پروژه pycharm جدید ایجاد می کنیم و کد scrapy را در فایل spider قرار می دهیم و بعداً فایل را اجرا می کنیم.


ما همچنین یک پروژه scrapy اختصاصی در pycharm ایجاد خواهیم کرد که همه فایل‌های پشتیبانی به صورت خودکار ایجاد می‌شوند. سپس عنکبوت ایجاد می کنیم که می تواند تمام نقل قول ها را از وب سایت نقل قول ها خراش دهد. ما عبارات scrapy مختلفی را در خود خط فرمان امتحان می‌کنیم تا بتوانیم داده‌های خاصی را از وب‌سایتی که با استفاده از xpath و همچنین انتخابگرهای css حذف کرده‌ایم استخراج کنیم.


در spyder ما سعی می‌کنیم با استفاده از یک عبارت حلقه‌ای، در هر یک از موارد نقل قول تکرار کنیم. بعداً پس از انجام تمام تنظیمات دقیق، این عبارت را در پروژه Scrapy spider خود قرار خواهیم داد. نتیجه خراشیده شده به طور ایمن در یک فایل json ذخیره خواهد شد.


ما اغلب با وب‌سایت‌هایی سروکار داریم که محتوا در چندین صفحه فهرست شده است. ما Spyder را در پروژه scrapy خود ایجاد خواهیم کرد که می تواند به طور خودکار از طریق پیوندهای هر صفحه بعدی حلقه بزند و سپس محتوا را درست مانند نحوه خراش دادن یک صفحه تکی خراش دهد. سپس داده ها در فایل json ذخیره می شوند.


به جای فایل json، گزینه scrapy features به طور مستقیم نتیجه حذف شده را در پایگاه داده sqlite به عنوان جداول و ردیف درج می کند. خواهیم دید که چگونه می‌توانیم داده‌ها را در یک پایگاه داده sqlite با استفاده از ویژگی به نام pipelining ذخیره کنیم که در آن فرآیندی پس از دیگری و پس از دیگری و غیره انجام می‌شود. و داده‌های داخل sqlite را برای تأیید بررسی می‌کنیم.


گاهی اوقات لازم است که به داخل پیوندهایی مانند "بیشتر بخوانید" یا "بیشتر بدانید" از موارد مقاله برویم و این باید خودکار شود تا هر پیوند خواندنی بیشتر بازدید و حذف شود. ما خواهیم دید که آیا پیوند وجود دارد یا خیر و اگر بله، یک تماس جداگانه برای رسیدگی به آن استفاده خواهد شد.


روند اخیر توسعه وب شامل صفحات پیمایش بی‌نهایتی است که کاربر می‌تواند مانند یک پست رسانه اجتماعی به پیمایش وب‌سایت ادامه دهد. با رسیدن کاربر تقریباً به انتهای صفحه، مجموعه بعدی پست ها یا داده ها بارگیری می شود. خواهیم دید که چگونه می‌توانیم داده‌ها را از این نوع صفحات پیمایشی بی‌نهایت با استفاده از scrapy خراش دهیم. آنها بیشتر از یک API برای بارگیری پویا داده ها استفاده می کنند و خواهیم دید که چگونه می توانیم داده ها را از پیوند REST API واکشی کنیم، آن را تجزیه و بعداً ذخیره کنیم.


و صفحاتی هستند که محتوای واقعی html را از سرور ارائه نمی دهند. آنها فقط کد جاوا اسکریپت را به مرورگر می فرستند و مرورگر کد را اجرا می کند و بلافاصله صفحه html ایجاد می کند. اکثر برنامه های اسکراپ فقط جاوا اسکریپت را در اختیار دارند و نه html. اسکرپی هم همینطور. بنابراین برای تجزیه این محتویات html، باید از موتور جاوا اسکریپت برای شبیه سازی تولید محتوا استفاده کنیم و بعداً آن محتوای html را تجزیه خواهیم کرد. کمی مشکل است، اما ساده تر از آن چیزی است که فکر می کنید.


یک سناریوی اسکراپینگ پیشرفته مشابه زمانی است که ما نیاز به خودکارسازی فرم ارسالی یا ارسال درخواست پست به سرور داریم. به عنوان مثال، اگر وب سایتی فقط در صورت ورود به سیستم، صفحه ای با اطلاعات ارائه می دهد، scrapy می تواند ابتدا فرم را ارسال کند و پس از ارسال فرم، داده های کاربران وارد شده در دسترس خواهد بود و می توان آن را خراش داد.


هنگامی که ما راه‌اندازی عنکبوت را داریم و اگر طولانی‌تر باشد، بهترین راه این است که آن را به یک سرور منتقل کرده و به جای اجرا از رایانه شخصی خود اجرا کنید. خواهیم دید که چگونه می‌توانیم یک سرور اسکرپی را راه‌اندازی کنیم تا بتوانید آن را با هر یک از ارائه‌دهنده‌های ابری مورد علاقه خود میزبانی کنید و یک سرور اسکرپی در ابر دارید.


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


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


بنابراین فعلاً همین است. به زودی شما را در کلاس درس خود می بینم.


یادگیری مبارک !!


سرفصل ها و درس ها

مقدمه و فهرست مطالب Introduction and Table of Contents

  • مقدمه و فهرست مطالب Introduction and Table of Contents

مقدمه ای بر Web Scraping و Scrapy Library Introduction to Web Scraping and Scrapy Library

  • مقدمه ای بر Web Scraping و Scrapy Library Introduction to Web Scraping and Scrapy Library

راه اندازی کتابخانه Scrapy Setting up Scrapy Library

  • راه اندازی کتابخانه Scrapy Setting up Scrapy Library

انجام خزیدن سریع وب سایت با استفاده از Scrapy Doing a Quick Crawling of the Website using Scrapy

  • انجام خزیدن سریع وب سایت با استفاده از Scrapy Doing a Quick Crawling of the Website using Scrapy

Scrapy CSS Selectors مقدمه Scrapy CSS Selectors Introduction

  • Scrapy CSS Selectors مقدمه Scrapy CSS Selectors Introduction

نمونه های انتخابگر CSS بیشتر More CSS Selector Examples

  • نمونه های انتخابگر CSS بیشتر More CSS Selector Examples

انتخابگرهای Xpath Scrapy Scrapy Xpath Selectors

  • انتخابگرهای Xpath Scrapy Scrapy Xpath Selectors

استفاده از Scrapy در داخل برنامه پایتون Using Scrapy Inside a Python Program

  • استفاده از Scrapy در داخل برنامه پایتون - قسمت 1 Using Scrapy Inside a Python Program - Part 1

  • استفاده از Scrapy در داخل یک برنامه پایتون - قسمت 2 Using Scrapy Inside a Python Program - Part 2

یک پروژه Scrapy جدید ایجاد کنید Create a new Scrapy Project

  • یک پروژه Scrapy جدید ایجاد کنید - قسمت 1 Create a new Scrapy Project - Part 1

  • ایجاد یک پروژه Scrapy جدید - قسمت 2 Create a new Scrapy Project - Part 2

برای دریافت نقل قول و نویسنده عبارت ایجاد کنید Create Expression to get Quote and Author

  • برای دریافت نقل قول و نویسنده عبارت ایجاد کنید Create Expression to get Quote and Author

بیان را به پروژه Scrapy اضافه کنید Add Expression to Scrapy Project

  • بیان را به پروژه Scrapy اضافه کنید Add Expression to Scrapy Project

حذف چندین صفحه به صورت خودکار Scrapping Multiple Pages Automatically

  • حذف چندین صفحه به صورت خودکار Scrapping Multiple Pages Automatically

ذخیره داده های حذف شده در SQLite DB Saving Scrapped Data In SQLite DB

  • ذخیره داده های حذف شده در SQLite DB - قسمت 1 Saving Scrapped Data In SQLite DB - Part 1

  • ذخیره داده های حذف شده در SQLite DB - قسمت 2 Saving Scrapped Data In SQLite DB - Part 2

دریافت پیوندهای جزئیات نویسنده از همه صفحات Getting Author Details Links from all pages

  • دریافت اطلاعات نویسنده پیوندها از همه صفحات - قسمت 1 Getting Author Details Links from all pages - Part 1

  • دریافت اطلاعات نویسنده پیوندها از همه صفحات - قسمت 2 Getting Author Details Links from all pages - Part 2

دریافت جزئیات نویسنده و تجزیه آن Getting Author Details and Parse it

  • دریافت جزئیات نویسنده و تجزیه آن Getting Author Details and Parse it

پیمایش بی نهایت - ایجاد عبارت Infinite Scrolling - Create Expression

  • پیمایش بی نهایت - ایجاد عبارت - قسمت 1 Infinite Scrolling - Create Expression - Part 1

  • پیمایش بی نهایت - ایجاد عبارت - قسمت 2 Infinite Scrolling - Create Expression - Part 2

پیمایش بی نهایت - اضافه کردن بیان به پروژه Scrapy Infinite Scrolling - Add Expression to Scrapy Project

  • پیمایش بی نهایت - افزودن بیان به پروژه اسکرپی - قسمت 1 Infinite Scrolling - Add Expression to Scrapy Project - Part 1

  • پیمایش بی نهایت - اضافه کردن بیان به پروژه Scrapy - قسمت 2 Infinite Scrolling - Add Expression to Scrapy Project - Part 2

استقرار Spider در سرور Scrapyd Deploy Spider in Scrapyd Server

  • استقرار Spider در سرور Scrapyd - قسمت 1 Deploy Spider in Scrapyd Server - Part 1

  • استقرار Spider در سرور Scrapyd - قسمت 2 Deploy Spider in Scrapyd Server - Part 2

Scraping پیشرفته - صفحات HTML تولید شده توسط JS Advanced Scraping - JS Generated HTML pages

  • Scraping پیشرفته - صفحات HTML تولید شده JS - قسمت 1 Advanced Scraping - JS Generated HTML pages - Part 1

  • Scraping پیشرفته - صفحات HTML تولید شده JS - قسمت 2 Advanced Scraping - JS Generated HTML pages - Part 2

خراش دادن پیشرفته - درخواست های فرم را با استفاده از Scrapy ارسال کنید Advanced Scraping - Post Form Requests using Scrapy

  • Scraping پیشرفته - ارسال درخواست های فرم با استفاده از Scrapy - قسمت 1 Advanced Scraping - Post Form Requests using Scrapy - Part 1

  • خراش دادن پیشرفته - ارسال درخواست های فرم با استفاده از Scrapy - قسمت 2 Advanced Scraping - Post Form Requests using Scrapy - Part 2

  • خراش دادن پیشرفته - ارسال درخواست های فرم با استفاده از Scrapy - قسمت 3 Advanced Scraping - Post Form Requests using Scrapy - Part 3

کد منبع کامل پیوست FULL SOURCE CODE ATTACHED

  • کد منبع کامل پیوست FULL SOURCE CODE ATTACHED

نمایش نظرات

آموزش Scraping وب با استفاده از Scrapy در Python for Data Science
جزییات دوره
3.5 hours
31
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
1,000
3.9 از 5
ندارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Abhilash Nelson Abhilash Nelson

استاد و برنامه نویس ارشد مهندسی کامپیوتر در دبی من یک پیشگام ، با استعداد و امنیت گرا Android/iOS Mobile و PHP/Python Web Developer Application Developer با بیش از هشت سال تجربه کلی فناوری اطلاعات که شامل طراحی ، پیاده سازی ، یکپارچه سازی ، آزمایش و حمایت از تأثیر است برنامه های کامل وب و تلفن همراه. من دارنده مدرک کارشناسی ارشد کارشناسی ارشد در رشته علوم کامپیوتر و مهندسی هستم. تجربه من با برنامه نویسی PHP/Python یک مزیت اضافی برای برنامه های سرویس گیرنده Android و iOS مبتنی بر سرور است. من در حال حاضر تمام وقت به عنوان یک معمار ارشد راه حل مشغول به کار هستم که پروژه های مشتری خود را از ابتدا تا انتها مدیریت می کنم تا از طراحی با کیفیت ، ابتکاری و کاربردی اطمینان حاصل کنم.