هیچ دوره ای در سبد خرید شما وجود ندارد
Web Scraping و Web Crawling دو مورد از مهم ترین موارد بررسی و تحلیل صفحات وب هستند. در سال 2008 فریمورکی تحت عنوان Scrapy انتشار یافت که برای تازه کاران ساده و برای حرفه ای ها به اندازه کافی دارای ویژگی های مثبت است.
وبسایت ها حاوی اطلاعات معنی دار هستند که می توانیم آن ها را استخراج کنیم و در کاربرد مورد نظرتان ( طراحی موتور جستجو یا ایجاد یک دیتاست برای کار تحلیل داده یا …) از این داده ها بهره ببرید.
در دوره آموزش Scrapy در پایتون ، با Scrape کردن محتویات خام از صفحات وب و ذخیره کردن آنها برای استفاده بعدی در یک قالب ساختارمند و معنادار ، نحوه ی کارکرد Scrapy ، ساختار کلی آن، نحوه ی استفاده از Selector های Css و Xpath در Scrapy برای انتخاب بخش های مورد نظرتان از یک وبسایت ، استفاده از Scrapy Shell ، مفاهیم Crawl کردن صفحات وب و ساخت موتور های جستجو و Spider ها و… آشنا میشوید.
دوره آموزش Scrapy در پایتون مناسب چه افرادی است؟
افرادی که در حوزه ی Data analysis فعالیت میکنند و میخواهند اطلاعاتی را برای تحلیل از صفحات وب استخراج کنند، افرادی که میخواهند موتور جستجو برای یک وبسایت به خصوص بسازند یا با نحوه ی کارکرد موتور های جستجو مثل Google ، Bing ، Yahoo و… آشنا شوند و افرادی که به استخراج اطلاعات از وب علاقه دارند مخاطبین این دوره هستند.
آنچه با مشاهده این دوره به دست می آورید:
- متخصص شدن در زمینه برنامه نویسی پایتون
- پیاده سازی پروژه های تخصصی و هیجان انگیز
- توسعه و پیاده سازی خزنده های وب (Web Crawler)
- دریافت به روز ترین سرفصل آموزشی و آخرین ورژن های تکنولوژی
- آموزش مطالب تخصصی و عدم اتلاف وقت برای مباحث غیر کاربردی
- اجرایی کردن ایده های خودتان
- کسب درآمد از از این حوزه
- اشتغال و درآمد زایی
- و …
پیش نیاز ها:
- آشنایی با زبان Python
تکنولوژی ها و نرم افزار ها:
- Python 3
- Scrapy 1.8.0
- Visual Studio Code
سرفصل های دوره آموزش Scrapy در پایتون :
جلسه اول : مقدمه و معرفی دوره
جلسه دوم : مفاهیم فریورک Scrapy برای استخراج ساختارمند اطلاعات از وب
- معرفی Scrapy
- Web Scraping
- Web Crawling
- Spider
- CSS Selector and Xpath Selector
- بررسی ساختار کلی Scrapy و چگونگی کار کردن اجزای آن با یکدیگر
جلسه سوم : معرفی دستورات Scrapy
- نصب Scrapy
- بررسی دستورات bench , version , settings
- معرفی Scrapy Shell
جلسه چهارم : Css Selector
- استخراج اطلاعات با کلاس های css
- استخراج اطلاعات با عبارات منظم ( Regular Expression )
- اسپمر ها
جلسه پنجم : Xpath Selector
جلسه ششم : پروژه اول
جلسه هفتم : بررسی الگوریتم یک Search Engine برای یک سایت اختصاصی
جلسه هشتم : پروژه دوم
- استخراج اطلاعات مورد نیاز برای ساخت یک Search Engine برای سایت StackOverflow
جلسه نهم : پروژه سوم ( کار با داده های فارسی)
- استخراج اطلاعات فارسی از سایت دانشجویار ( اطلاعات دوره ها)
جلسه دهم: استخراج لینک های یک وبسایت با scrapy shell
مشاهده گیتهاب مدرس ( محمد تقی زاده )
تمامی پرسش های پایتونی و سوالات دوره از بخش نظرات توسط مدرس پاسخ داده میشود.
مزایای خرید دوره :
- تمامی آموزش ها 3 ماه بعد از انتشار دوره دارای پشتیانی تخصصی توسط مدرس هستند.
- چنانچه سورس و فایل های جانبی برای دوره موجود باشد، همراه با لینک های آموزش در اختیار شما قرار می گیرد.
- با تهیه این دوره آموزشی، محتوای ارزشمند برای ورود به بازار کار را به قیمت ناچیزی در اختیار دارید.
- ویدئو های آموزشی توسط واحد کنترل کیفیت ما بررسی و سطح علمی ، صدا و تصویر ، شیوه بیان و سایر موارد آن تایید می شود.
- ویدئو های آموزشی ما در حد نیاز به مباحث تئوری می پردازد و بیشتر آموزش به صورت عملی و متناسب با بازار کار می باشد.
- بلافاصله پس از ثبت سفارش لینک دانلود برای شما فعال شده و به ایمیلتان ارسال میگردد. همچنین در صورت انتخاب گزینه پستی مراحل ارسال مرسوله از طریق ایمیل به اطلاع شما میرسد.
- کیفیت تمامی دوره های سایت تضمین شده است. در صورت عدم رضایت از آموزش، به انتخاب شما یا به صورت رایگان یک یا چند آموزش معادل دیگر دریافت می کنید و یا ۷۰ درصد مبلغ پرداختی به کیف پول شما بازگشت داده می شود.
scrapy چیست؟
Scrapy یک فریمورک متنباز (open-source) برای استخراج دادهها از وبسایتها و وباسکرپینگ (web scraping) در زبان برنامهنویسی پایتون است. این فریمورک به ویژه برای پروژههای بزرگ و پیچیده وباسکرپینگ طراحی شده و قابلیتهای متعددی برای جمعآوری و پردازش دادهها فراهم میآورد. برخی از ویژگیها و قابلیتهای کلیدی Scrapy عبارتند از:
مدیریت درخواستها و پاسخها
Scrapy به شما این امکان را میدهد که به راحتی درخواستهای HTTP به وبسایتها ارسال کرده و پاسخهای دریافتی را پردازش کنید. این کار شامل ارسال درخواستهای GET و POST، مدیریت کوکیها، و پردازش هدرها میشود.
استخراج دادهها و مدیریت و ذخیره آنها
با استفاده از Scrapy، میتوانید دادهها را از صفحات وب استخراج کنید. این فریمورک ابزارهای قدرتمندی برای استخراج اطلاعات از HTML، XML، JSON و دیگر فرمتهای داده فراهم میآورد. شما میتوانید دادهها را با استفاده از انتخابگرهای CSS یا XPath استخراج کنید.
علاوه بر این، می توانید دادههای استخراج شده با استفاده از Scrapy را به فرمتهای مختلفی مانند CSV، JSON، یا XML ذخیره کنید. همچنین میتوانید دادهها را مستقیماً در پایگاههای داده مانند MongoDB، PostgreSQL، یا MySQL ذخیره کنید.
مدیریت لینکها و ناوبری
Scrapy قابلیت دنبال کردن لینکها و پیمایش خودکار بین صفحات مختلف یک وبسایت را دارد. این ویژگی برای استخراج دادهها از سایتهای بزرگ با ساختار پیچیده بسیار مفید است.
پشتیبانی از چندین درخواست همزمان
Scrapy به صورت پیشفرض از قابلیتهای همزمانی (concurrency) و پردازش موازی (parallel processing) پشتیبانی میکند که به افزایش کارایی و سرعت استخراج دادهها کمک میکند.
پشتیبانی از پروکسی و شبیهسازی مرورگر
Scrapy میتواند از پروکسیهای مختلف برای مخفی کردن هویت و جلوگیری از بلاک شدن توسط وبسایتها استفاده کند. همچنین میتوان از ابزارهایی مانند Selenium برای شبیهسازی مرورگرها استفاده کرد.
قابلیت توسعه و سفارشیسازی
Scrapy به راحتی قابل توسعه و سفارشیسازی است. شما میتوانید با ایجاد اسپایدرهای (spiders) مختلف و افزودن middlewares و pipelines، عملکرد فریمورک را مطابق با نیازهای خاص خود تغییر دهید.
azarbaijanbabak
با سلام خدمت استاد بزرگوار انشالله پاینده و موفق باشید
استاد عزیز یه مشکلی دارم در مورد اسکرپینگ صفحات iframe
در داخل محتوای iframe یک جدول داریم ولی متاسفانه نمی تونم اطلاعات جدول رو استخراج کنم
با beautifulsoup, scrapy نشد
لطف می کنید راهنمایی فرمایید
ممنون
محمد تقی زاده مدرس دوره
سلام، همچنین آرزوی موفقیت و سلامتی برای شما دوست گرامی
در تلگرام واسم کدتون رو ارسال کنید حتما کمکتون خواهم کرد.
Telegram: Tqzdh
سام ..
سلام
اگه میشه بگید نسخه پایتون شما زمان ضبط دوره چند بوده؟!
محمد تقی زاده مدرس دوره
نسخه های مختلفی استفاده میکردم در زمان ضبط این دوره
3.5.2 – 3.7.4 – 3.8.1
اسکرپی کلا روی نسخه های جدید پایتون معمولا کمی باید صبر کنید تا اوکی بشه، حتما در پروژه یک venv بسازید و از نسخه های قبلی که با اسکرپی اوکی هستند استفاده کنید.
snouralahi دانشجوی دوره
سلام استاد خسته نباشید دستور scrapy در python 3.10.7اجرا نمیشه و ارور میده مشکل چیه ؟
محمد تقی زاده مدرس دوره
سلام دوست عزیز ، احتمالا روی این نسخه از پایتون مشکل داره ، روی نسخه ی دیگه از پایتون میتونی یک virtual environment بسازی یا اینکه دقیقا ببین چه اروری داده و به چه dependency هایی احتمالا اشاره کرده که باید نصب کنی
موفق باشی
Hosseincs دانشجوی دوره
من میخوام اطلاعات جدول tsetmc رو کامل دریافت کنم ولی از میری که گفتید xpath هایی که وارد میکنم نتیجه نمیده میخواستم راهنماییم کنید لطفا
Hosseincs دانشجوی دوره
سلام. این آموزشی که در scrapy دادید فقط در کنسول قابل انجامه. من میخوام از طریق اجرای کد خودم که احتمالا در یک UI اجرا میشه استفاده کنم. دوم این که میخوام داخل صفحه روی یک آیکون کلیک کنه یا وارد یک اکانت با یک یوزرنیم پسورد بشه. این امکانات رو سلنیوم داره برای scrapy میخواستم یک لطفا این رو آموزش بدید.
mahdikhakbaz7
سلام یک سوال داشتم
آیا میشه با scrapy وارد اکانت تو سایت های مختلف شد ؟
مثلا بعضی از سایت ها تا در سایت لاگین نکنی یک سری محتوا ها رو نمایش نمیدن . می خواستم بدونم میشه با scrapy یک جور اول وارد اکانت که قبلا ساختی بشی و داده ها رو استخاج کنی یا این که برای این کار حتما باید از سلنیوم استفاده کرد ؟
محمد تقی زاده مدرس دوره
درود دوست گرامی ، خیلی سوال میشه در این رابطه ، برای چنین پروژه هایی انتخاب اول خودم و پیشنهادم سلنیوم هست ، زمانیکه قصد دارید یک تعامل (ارسال دیتا و یک اکشن) در یک صفحه وبسایتی انجام دهید
ashkan
سلام متاستفانه فایل with open(‘books_title.text’,’+a’) as f:
for title in title_list:
f.write(title + “\n”)
f.close()
فایل .txt تشکیل نمیشود داخل پوشه , امکانش هست راهنمایی کنید
محمد تقی زاده مدرس دوره
دود اشکان عزیز ، بدون شک جایی از کد ات ایراد داره که فایل رو برات ایجاد نمیکنه :) اروری دریافت میکنی یا اینکه فایل رو در یک آدرس دیگری واست ایجاد میکنه ؟ کامل سعی کن تحلیل کنی کد رو و اینکه دیباگینگ هم از مهارت های مهم یک برنامه نویس هستش ، مشکلت حل نشد کد ات رو واسم بفرست که بهتر بتونم کمک کنم
mohsenjafari2020
سلام ممنون از اموزش های خوب شما
ببخشید استاد به چه صورت میشه اطلاعات یک سایت رو به صورت دوره ای مثلا هر یک ساعت یک باز به صورت اتومات استخراج کرد و اطلاعات ان را بشه در برنامه دیگر استفاده کرد ممنون میشم راهنماییم کنید در مورد schedual مطالعه کردم ولی نمیدونم در کجا برنامه ازش استفاده کنم .ممنون میشم راهنماییم کنید
محمد تقی زاده مدرس دوره
درود محسن عزیز ، دقیقا یکی از روش های اجرای اتوماتیک یک اسکریپت پایتونی در بازه های زمانی خاص استفاده از ماژول Schedule هست ابتداعا با pip نصبش کن و باید اسکریپت پایتونی برای خزنده ات بنویسی که کارش این باشه که صرفا خزنده رو اجرا کنه (شیوه اش رو داخل همین صفحه در کامنت ها به یکی از دانشجوها توضیح دادم بگردی پیدا میکنی) سپس تکه کد مربوط به اجرای چند دقیقه یکبار رو بیای و به کد اضافه کنی با ماژول Schedule
– شیوه استفاده از ماژول Schedule هم به شدت ساده هست :) این ویدئو رو که برات لینکش رو قرار دادم حتما مشاهده کن :
https://www.youtube.com/watch?v=zwIGxcDxS5o
fatemebesharat766
ای کاش scrape کردن از سایت های javascript هم آموزش می دادید
تشکر
محمد تقی زاده مدرس دوره
سلام دوست عزیز ؛
در این دوره سعی شده که به فریمورک اسکرپی برای استخراج داده های ساختارمند از صفحات وب در قالب پروژه های جذاب و جالب در زمانی بسیار کوتاه ولی جامع پرداخته بشه ؛
در مورد چالشتون سایت های جاوااسکریپتی درواقع منظورتون اینه که یه سری کد های جاوا اسکریپت رباتمون بفرسته به صفحه ی وب مثلا صفحه ای رو اسکرول کنه یا کلیکی به یک المنت صفحه وارد کنه، برای اینکار توصیه میکنم از فریمورک سلنیوم استفاده کنید در کنار اسکرپی
انشالله به زودی یک دوره جامع ربات نویسی وب با سلنیوم رو استارت میزنیم
برای تمرین اسکرپی هم میتونید دوره طراحی سایت آمار لحظه ای کرونا رو مشاهده کنید و به زودی ه دوره طراحی سایت موتور جستجوی فیلم و موسیقی با پایتون و اسکرپی و فلسک و مونگو دی بی
آرزوی موفقیت…
boystars
سلام.
شما برای اجرا توی shell این کار رو انجام میدید. اگر بخوایم کدی که زدیم رو توی ویژوال استودیو اجرا کنیم باید چیکار کرد؟
در کل منظورم اینکه این کد رو چطور کنار کدهای دیگه ای که نوشتیم ران کنیم؟
ممنون
محمد تقی زاده مدرس دوره
دوست عزیزم سلام ، سوال به شدت مناسبی پرسیدی و نشون میده که با دوره همراه بودی برای چنین کاری بار دیگر سوالت رو خلاصه کنم و پاسخش رو اینجا توضیح بدم که دوستان دیگر هم بتونن دسترسی داشته باشن
چطور میتونیم اسپایدر خودمون اجرا کنیم ؟!
روش اول خط فرمان ( مشابه هر فریمورک پایتونی ) به صورت اجرای عملیات فرمان خزش به خزنده دستور زیر میتونیم اینکار رو انجام بدیم ، که در دوره توضیح داده شده
>> scrapy crawl crawler_name
روش دوم از داخل خود script (این روش خیلی بحث پیچیده ای نیست و انتظار میره دوستانی که با پایتون کار میکنن بتونن سرچ کنن و بتونن این کار رو انجام بدن ، در دوره طراحی سایت آمار کرونا این مورد در جلسه ۶ ام توضیح داده شده با عنوان اتصال خزنده به پروژه )
روش های زیادی وجود داره مثلا استفاده از کتابخانه os و یا استفاده از cmdline و … ولی روش معمول به شکل زیر هستش :
>> فرضا اسپایدر به شکل زیر باشه :
class Scraper(scrapy.Spider):
name = “Scraper”
start_urls = [‘https://daneshjooyar.com’]
def parse(self, response):
…
>> برای اجرا در برنامه های پایتونی :
# Run spider
from scrapy.crawler import CrawlerProcess
process = CrawlerProcess()
process.crawl(Scraper)
process.start()
اگر نتونستید به درستی مشاهده کنید در تلگرام یا اینستاگرام بهم پیام بدید براتون ارسال کنم
آرزوی مفقیت دارم واستون :) (به زودی دوره پیاده سازی موتور های جستجو با پایتون رو از دست ندید:) )
بهنام
سلام خسته نباشید
سایتی مثل دیوار که در اون هر چی اسکرول میکنیم داده ها بیشتر میشه رو چطور استخراج کنم؟
من دوره پایتونتونو گرفتم که فوق العادست، خلاصه، مفید و جامع.
ممنون از پاسخگوییتون.
محمد تقی زاده مدرس دوره
بهنام عزیز درود، امیدوارم استفاده کرده باشی و تو مسیر برنامه نویسی موفق باشی…
اما در مورد سوالی که پرسیدی، برای چنین مواردی میتونی از کتابخونه ی selenium استفاده کنی و کد های js بنویسی که صفحه رو scroll کنن، مقدمات این کتابخونه هم در دوره جامع پایتون اومده اما دوره جامع selenium رو به زودی در دانشجویار منتشر میکنیم، البته فعلا با یه سرچ ساده هم میتونی به راه حل برسی و اگر اوکی نشد از طریق تلگرام بهم اطلاع بده راهنماییت میکنم..
adel.cs920@gmail.com
این دوره به نسبت دوره پایتون ضعیف بود. در پیشنیازهای این دوره نوشته شده “پایتون” ولی مدرس در طول دوره با فرض اینکه دانشجو خیلی چیزها مثل html، css و … رو رو کامل مسلطه کارو پیش میبره و باعث شده آموزش گنگ باشه. همچنین سیر تدریس، یکنواختی و یکپارچگی مطالب خوب نبود. من دوره پایتون آقای تقی زاده هم تهیه کردم و راضی بودم اما از این دوره راضی نبودم.
kiyani
سلام و وقت بخیر
ممنونم استاد عزیز
خیلی عالی توضیح داده بودید برای من که اصلا پایتون کار نکرده بودم و هیچی نمیدونستم
یه سوال من میخواهم در سایتم که وردپرس هست اخبار جدید از یک سایت دیگه با اسکرپی را بگیرم و در سایتم نمایش دهم یا قیمت روز طلا و ارز این نوع کراول یا اسکرپی را چگونه انجام میدهند!؟ اگر دوره یا آموزشی هست لطفا معرفی کنید ممنون
محمد تقی زاده مدرس دوره
نظر لطفته دوست عزیزم؛ بسیار انرژی گرفتم؛
اما راجع به سوالت:
چندین روش رو میتونی اتخاذ کنی برای انجام اینکاری که گفتی(استخراج اطلاعات با اسکرپی و نمایشش داخل وردپرس)
روش اول: اطلاعات رو جداگانه داخل یک پروژه استخراج کنی و مثلا داخل یک دیتابیس Mysql و phpmyadmin ذخیره کنی (برای ذخیره سازی اطلاعات در دیتا بیس Mysql با پایتون یا سرچ کن یا میتونی به دوره ی جامع پایتون مراجعه کنی) بعد از ذخیره سازی اطلاعات خیلی راحت میتونی داخل وردپرس کدهای مربوط به php مربوط به پست خبر موردنظرت رو تغییر بدی یعنی اینکه ابتدا در سمت php به دیتا بیس mysql وصل بشی و اطلاعات مورد نظرت رو که از طریق پایتون و اسکرپی ذخیره کردی، بازیابی و استفاده کنی، که اینجا باید دانش در مورد php قاعدتا داشته باشی برای تغییر کدهای قالب وردپرس(در زمینه یادگیری php هم دوره های خوبی داخل دانشجویار هست ولی با یه سرچ هم میتونی کارت رو انجام بدی )
روش دوم : استفاده از Rest API : متونی اطلاعاتی که واسه هر پست داری رو از طریق rest api با php ، درخواست بدی و از سمت scrapy یک json بعنوان response برگردونی (اگر با api بصورت کلی آشنایی نداری داخل دوره پایتون بهش پرداختم ولی در مورد rest که یکی از مهمترین مسائل در برنامه نویسی بک اند وب در حال حاضر محسوب میشه در آینده قراره در بسته ی جامع بک اند وب کامل بهش بپردازیم ، اگر اطلاعی در موردش نداری و میخوای از این روش استفاده کنی در مورد معماری Restful api حتما سرچ کن خیلی کمکت میکنه دوره طراحی سایت کرونا هم میتونه واست یک تمرین مرتبط باشه البته)
روش سوم : از فریمورک ها ابزارهایی که داخل php وجود داره برای استخراج اطلاعات از وب استفاده کنی.
پیشنهاد من بین این سه روش: اگر با معماری rest آشنا نیستی و میخوای از وردپرس استفاده کنی روش اول میتونه بهترین روش واسه پروژه ات باشه.
alinfrat
دوره خوبی بود ولی ابتدایی بود
دنبال آموزش کامل تری بودم
محمد تقی زاده مدرس دوره
دورد دوست عزیزم ؛
با انجام پروژه های مختلف به جنبه های اساسی استخراج اطلاعات از وب پرداخته شده ؛ حالا واسه افزایش تجربه باید تمرین، تمرین و تمرین کنی،
اگر چالشی داری که نتونستی برطرفش کنی با من در ارتباط باش ، حتما کمکت میکنم..
محمد جاودانه
با سلام.
میخاستم بدونم در این دوره یاد میدهید که چگونه کنترل موس و کیبورد رو در پایتون به دست بگیرد و یک کاری را به طور مداوم انجام دهد؟
محمد تقی زاده مدرس دوره
سلام دوست عزیزم، این مساله ای که گفتی اگر منظورت نوشتن رباتیه که اطلاعات رو از وب دریافت کنه، آره این دوره دقیقا به این مطلب میپردازه، اما اگر منظورت ارسال اطلاعات به سمت وب هست این موضوع کتابخانه selenium در پایتون هست ، برای یادگیری این مطلب بنده خودم دوره ای بصورت کامل که آموزش جامع سلنیوم باشه ضبط نکردم اما برای یادگیری کلی میتونم دوره جامع برنامه نویسی پایتون قدم ششم رو بهت پیشنهاد کنم در اونجا به این مطالب بصورت کلی میپردازیم اما در زمینه دریافت اطلاعات و استخراج اطلاعات ساختارمند از صفحات وب ، در این دوره بصورت کامل یکی از بهترین ابزار های این کار در زبان پایتون یعنی Scrapy Framework رو بررسی میکنیم.
محسن
سلام.
اگر دوره “آموزش جامع زبان برنامه نویسی پایتون با تمرکز بر هوش مصنوعی و یادگیری ماشین” رو تهیه کنیم. لازمه این دوره رو هم داشته باشیم یا توی اون دوره کاور میشه؟
محمد تقی زاده مدرس دوره
سلام محسن عزیز، در دوره جامع پایتون به کلیاتی از خواندن از وب و ارسال اطلاعات به سمت وب با Scrapy و Selenium اشاره شده (در قسمت ۴ از قدم ششم دوره) که میتونه خیلی کمکت کنه البته اگر هدفت اینه که تو این زمینه پروژه های حرفه ای کار کنی مثل ساخت موتور های جستجو، خزنده ها، بررسی structure کلی فریمورک اسکرپی و… نیاز هست که این آموزش رو ببینی
iman
آموزش مفیدی بود فقط نحوه Scrape کردن از سایت های javascript اموزش داده نشده. وگرنه آموزش جامعی است.
تشکر
nima
بسیار دوره عالیه باکیفیتی
محمد تقی زاده مدرس دوره
تشکر دوست عزیزم، رضایت مخاطب بهترین پاداش برای یک مدرس است.