مشاهده آنلاین دوره وب اسکرپینگ
در دوره وب اسکرپینگ چه مواردی آموزش داده میشود؟
Web Scraping، شاه کلیدی است که اگر به حوزههای هوش مصنوعی و یادگیری ماشین، علم داده علاقه داشته باشید، حتماً تاکنون به آن نیاز پیدا کردهاید. میدانید که داده، پایه و اساس همه پروژهها است. واقعیت این است که اگر داده نباشد عملاً انجام پروژه معنی نخواهد داشت. ولی جمعآوری داده تمیز همیشه چالشبرانگیز است.
ممکن است در سطح اینترنت، کگل و گیتهاب مجموعهداده پیدا کنیم ولی لزوماً تمیز نیستند و متأسفانه گاهی اوقات تمیزکردن آن مدت زیادی طول میکشد. پس بهتر نیست یکبار برای همیشه شناکردن را، یاد بگیریم تا بهراحتی در دریایی از پروژهها موجسواری کنیم؟ قطعاً اگر بتوانیم خودمان بر اساس نیازمان، دادههای مناسب را جمعآوری کنیم خروجی پروژههایمان رشد چشمگیری خواهد داشت. پس با ما همراه باشید تا یکی از بهترین راههای موجود را ارائه دهیم.
احتمالاً عبارت Web Scraping به گوشتان خورده باشد. Web Scraping روشی بسیار کاربردی برای جمعآوری داده است. مزیتWeb Scraping این است که هیچ محدودیتی در جمعآوری داده نخواهید داشت یعنی با یکبار آموزش دیدن، داده خود را جمعآوری کرده و برای پروژهها و تحلیلهایتان استفاده خواهید کرد.
در این دوره ابتدا مفاهیم تئوری وب اسکرپینگ را یاد گرفته و برای ورود سریع به فاز عملی دوره، با html و تعدادی از ابزارهای Web Scraping آشنا میشویم. در ادامه، از ابزارهای متنوعی که در Web Scraping استفاده میشود، دو ابزار پرکاربرد BeautifulSoup و Selenium به همراه دو پروژه عملی مجزا (از صفر تا 100) به شما آموزش داده میشود.
در این دوره آموزشی سعی شده نکات کلیدی که قطعاً در پروژههای واقعی به آنها نیاز خواهید داشت، بهصورت گلچین شده به شما آموزش داده شود. پس بعد از مشاهده این دوره، بهراحتی مرحله جمعآوری داده را انجام میدهید و زمانی که قبلاً صرف جستجو مجموعهداده و نامهنگاری اداری میشد، صرفهجویی میشود و تمرکز خودتان را بر اجزا دیگر پروژهها قرار میدهید.
سرفصل مطالب
- تعریف Web Scraping
- اهمیت و کاربرد Web Scraping
- نحوه استخراج دیتا در Web Scraping
- تعریف Web Crawling
- کاربرد Web Crawling
- مقایسه دو مفهوم Web Scraping و Web Crawling
- سؤال: آیا Web Scraping قانونی است؟
- فایل robots.txt
- معرفی HTML
- HTML Tags
- HTML Elements
- HTML Attributes
- Scrapy
- BeautifulSoup
- Selenium
- Static vs. Dynamic Webpages
- نصب کتابخانهها و موارد موردنیاز
- BeautifulSoup Basics و توابع مهم
- find
- find_all & findAll
- select_one
- select
- get_text
- get attribute values
- استخراج دیتا از یک page (page اول)
- استخراج دیتا از چند page
- نصب کتابخانهها و موارد موردنیاز
- Selenium Basics و Locators
- Class Name
- ID
- Name
- LinkText
- XPath
- جستوجو کردن
- استخراج دیتا از یک page (page اول)
- استخراج دیتا از چند page (pagination)
پیشنیازهای دوره آموزشی Web Scraping
برای بهرهمندی حداکثری از این دوره آموزشی، بهتر است پیشنیاز آن یعنی دانش برنامهنویسی و پایتون را کسب کنید که برای یادگیری آن، دوره رایگان در سایت موجود است. پس توصیه میشود ابتدا دوره رایگان برنامهنویسی پایتون را مشاهده کرده و سپس به سراغ این دوره بیایید.
نکته: اگر برای انجام پروژه ها، داده احتیاج داشتید حتما به کانال تلگرامی ما مراجعه کنید.
ویدیوهای این دوره در یوتیوب قابل مشاهده است.
فیلم جلسات رایگان
برای مشاهده ویدیوها اینجا کلیک کنید و سپس به آدرس ثبت شده مراجعه کنید.
مباحث هر جلسه
جلسه اول:
در این بخش به معرفی دوره میپردازیم.
همانطور که میدانیم داده، پایه و اساس تمامی پروژههای هوش مصنوعی است زیرا اولین مرحله برای شروع یک پروژه در حوزه علم داده و یادگیری ماشین، جمعآوری دیتاست مناسب است.
اگر با سایتهایی مانند GitHub و Kaggle آشنا باشید، میدانید که منابع بسیار مفیدی برای جمعآوری داده هستند اما اکثر اوقات دادههایی که ما نیاز داریم، پیشازاین جایی استفاده نشده و یا اینکه به فرمتی که نیاز داریم، وجود ندارد. اینجاست که web scraping به کمک ما میآید.
بهطورکلی این دوره، به دو فاز اصلی تقسیم میشود:
- فاز تئوری: در این فاز با دو مفهوم web scraping و web crawling، اهمیت و کاربرد آنها آشنا میشویم.
- فاز عملی: در این فاز به پیادهسازی پروژههای عملی web scraping با دو ابزار Beautiful Soup و Selenium میپردازیم.
جلسه دوم:
با پیشرفت روزافزون تکنولوژی، استفاده از شبکههای اجتماعی و افزایش چشمگیر حجم data، سازمانها و کسبوکارهای مختلف به اهمیت data پی بردهاند و برای ارزش بخشیدن به کسبوکار خود از آن کمک میگیرند. یکی از راههای دستیابی به این قبیل دادهها، استفاده از web scraping است.
به فرایند دانلود و جمعآوری دیتا از یک وبسایت، web scraping گفته میشود. این دیتای بهدستآمده را میتوانیم به فرمتهایی مانند .csv و .xlsx ذخیره کنیم. علاوه بر web scraping، مفهوم دیگری به نام web crawling داریم که بیشتر با web scraping اشتباه گرفته میشود. لازم است که تفاوت بین این دو مفهوم را درک کنیم.
در این بخش، علاوه بر آشنا شدن با مقدمات و مفاهیم تئوری web scraping، اهمیت و کاربرد آن را بررسی کرده و میبینیم که برای استخراج داده، چه مراحلی طی میشود. همچنین به تعریف web crawling و اهمیت آن میپردازیم و دو مفهوم web scraping و web crawling را با هم مقایسه میکنیم. در پایان بررسی میکنیم که آیا فرایند web scraping و جمعآوری داده از دل یک وبسایت، قانونی است و آیا اجازه این کار را داریم؟ برای جواب دادن به این سؤال میتوانیم فایل robots.txt سایت موردنظر را بررسی کنیم که در این بخش در مورد آن صحبت میکنیم.
جلسه سوم:
بهطورکلی، یک وبسایت از سه بخش HTML، CSS و Java Script تشکیل شده است. باتوجهبه اینکه هدف ما از web scraping استخراج دادهها موردنیاز است، باید بدانیم که این Data کجای سایت قرار گرفته تا آدرس آن را به scraper خود بدهیم و داده را استخراج کنیم. برای این کار باید با مفاهیم اولیه HTML آشنایی داشته باشیم.
در ادامه به بررسی بخشهای مهم HTML که هنگام scrape کردن به آنها نیاز داریم، میپردازیم و در مورد HTML Tags، HTML Elements و HTML Attributes صحبت میکنیم.
جلسه چهارم:
پرکاربردترین ابزار و کتابخانههایی که در web scraping به زبان پایتون استفاده میشوند، عبارتند از: Scrapy، Beautiful Soup و Selenium. یکی از نکاتی که برای انتخاب کردن ابزار باید به آن دقت کنیم، این است که آیا سایت موردنظر static است یا dynamic؟ زیرا در سایتهای dynamic و پویا، از Java Script برای مدیریت دادهها در بخش Front End استفاده میشود. برای scrape کردن چنین سایتهایی و تعامل داشتن با وبسایت مانند log in کردن، جستجو کردن و scroll کردن سایت، باید از ابزاری مانند Selenium استفاده کنیم تا بتوانیم مرورگر خود را خودکار کنیم و به عبارتی، رفتار انسانی را تقلید کنیم.
در این بخش علاوه بر معرفی ابزارهای Scrapy، Beautiful Soup و Selenium و مزایا و معایب آنها، به بررسی سایتهای static و dynamic میپردازیم، برای هرکدام یک مثال میبینیم و ابزار مناسب برای scrape کردن هر یک را مشخص میکنیم.
جلسه پنجم:
در این بخش، پیادهسازی پروژه web scraping با استفاده از Beautiful Soup را استارت میزنیم. ابتدا باید کتابخانههای موردنیاز را نصب کنیم. برای اینکه بتوانیم یک سایت را scrape کنیم، به دو کتابخانۀ requests و Beautiful Soup نیاز داریم و برای اینکه بتوانیم دیتای خود را بهصورت جدولی ذخیره کنیم، کتابخانۀ Pandas را نصب میکنیم. برای کدنویسی نیز از Jupyter Notebook استفاده میکنیم اما شما میتوانید با هر محیط و IDE دیگری که راحتتر هستید، کار کنید.
جلسه ششم – بخش 1:
برای Scrape کردن یک وبسایت با استفاده از Beautiful Soup، ابتدا با استفاده از کتابخانه requests به سایت موردنظر http request میزنیم و status code آن را بررسی میکنیم. با دریافت status code 200، باید Beautiful Soup Object خود را بسازیم. پس از آن میتوانیم با کمک تابعهایی که خود Beautiful Soup به ما ارائه میدهد دادههای موردنظر خود را استخراج کنیم. این توابع دو نوع هستند. تعدادی از آنها بر اساس HTML Tags و HTML Attributes کار میکنند و برخی توابع دیگر به کمک CSS Selectors، دادههای مورد نیازمان را پیدا کرده و استخراج میکنند. خروجی این توابع میتواند یک المان یا لیستی از المانها باشد.
در این بخش، وبسایت https://www.opencodez.com را برای پروژۀ عملی Web scraping انتخاب کرده و هرکدام از توابع را با مثال بررسی کرده و تفاوت آنها را با یکدیگر مطرح میکنیم.
جلسه ششم – بخش 2:
باتوجهبه اینکه وبسایت انتخابی ما در هر صفحه چند پست دارد، در این بخش فقط اطلاعات موردنیاز یک پست مانند عنوان، توضیحات، نویسنده، تاریخ، لینک پست و لینک تصویر آن را استخراج میکنیم تا در اصل بتوانیم تشخیص دهیم که data موردنظر ما دقیقاً به چه شکل در وبسایت ظاهر شده و مکان هر یک را پیدا کنیم.
جلسه هفتم:
باتوجهبه اینکه در بخش قبلی، اطلاعات موردنیاز یک پست مانند عنوان، توضیحات، نویسنده، تاریخ، لینک پست و لینک تصویر آن را استخراج کردیم، در این بخش، همین الگوها را تعمیم داده و این اطلاعات را برای همۀ پستهایی که در یک صفحه وجود دارند، استخراج میکنیم. در پایان missing valueهای اطلاعات را چک کرده تا در صورت لزوم آنها را مدیریت کنیم و برای ساختارمند کردن نتایج، این اطلاعات را به کمک کتابخانه Pandas به شکل جدولی ذخیره میکنیم.
جلسه هشتم:
در بخش پایانی پروژۀ عملی web scraping با استفاده از Beautiful Soup، اطلاعات مورد نیازمان را برای همۀ پستهایی که در چند صفحه (multiple pages) وجود دارند، استخراج میکنیم. اصطلاحاً Pagination سایت را مدیریت میکنیم. برای این کار میتوانیم الگویی که برای آدرس چند صفحه استفاده شده است را پیدا کرده و آن را در کد به کار ببریم تا به همۀ صفحات و اطلاعات آنها دسترسی داشته باشیم. در پایان، جدول نتایج خود را به فرمت .csv ذخیره میکنیم.
جلسه نهم:
در این بخش، پیادهسازی پروژه web scraping سایت https://www.yelp.com را با استفاده از Selenium استارت میزنیم. ابتدا باید کتابخانه و ابزار موردنیاز را نصب کنیم. برای اینکه بتوانیم یک سایت را scrape کنیم، به کتابخانۀ Selenium و WebDriver مناسب مرورگر خود، نیاز داریم. در اولین مرحله باید browser خود را initialize کنیم یعنی مرورگرمان باز شود و وارد URL ای را که تعریف کردیم، شود و webpage را به ما نشان دهد تا از این به بعد بتوانیم دادههای موردنیاز خود را استخراج کنیم.
جلسه دهم:
برای پیداکردن دادههای موردنیاز با استفاده از Selenium باید از یک سری Locators استفاده کنیم. Locatorها انواع مختلفی دارند. در این بخش، چند مورد از مهمترینها را مانند Class Name، ID، Name و LinkText به همراه مثال بررسی میکنیم و برای استخراج دیتا نیز از تابع find_element() یا تابع find_elements() استفاده میکنیم. تابع اول، فقط یک المان و تابع دوم، هر تعداد المانی که الگوی تعریف شده را داشته باشد، برمیگرداند.
جلسه یازدهم:
یکی از پرکاربردترین locatorها، XPath یا XML Path است. XPath یک نوع syntax است که برای تعریف پارتهای HTML document استفاده میشود. به عبارتی دیگر از Path Expressions برای انتخاب المانها استفاده میکند. XPath اهمیت بالایی دارد زیرا معادل تمامی locatorهای دیگر را میتوانیم در XPath داشته باشیم. حتی المانهایی که class یا id ندارند را نیز میتوانیم با کمک XPath پیدا کنیم.
جلسه دوازدهم:
در این بخش، از locatorهای مختلف برای پیداکردن و استخراج داده، استفاده میکنیم. ابتدا به کمک خود Selenium در بخش سرچ، کلمه restaurants را وارد کرده و دکمه enter را میزنیم تا لیستی از رستورانها را داشته باشیم و اطلاعاتی مانند نام رستوران، محله، تعداد ستاره و تعداد نظرات ثبت شده برای رستورانهای موجود در آن صفحه را استخراج میکنیم. همچنین missing valueهای اطلاعات را چک کرده و اگر دیتایی نباشد، برای نام رستوران و محله، کلمه ‘unknown’ و برای تعداد ستاره و تعداد نظرات ثبت شده، عدد ‘-1’ را ذخیره میکنیم. در ادامه، برای ساختارمند کردن نتایج، این اطلاعات را به کمک کتابخانه Pandas به شکل ساختار جدولی ذخیره میکنیم.
جلسه سیزدهم:
در بخش پایانی پروژۀ عملی web scraping با استفاده از Selenium، اطلاعات مورد نیازمان را برای همۀ رستورانهایی که در چند صفحه (multiple pages) وجود دارند، استخراج میکنیم. برای اینکه تمامی مراحل را فقط با استفاده از Selenium جلو برده باشیم، دکمه “<” که همان Next Page را نشان میدهد پیدا کرده و روی آن کلیک میکنیم و وارد صفحات بعدی شده و اطلاعات موردنیاز را استخراج میکنیم. این کار را تا آخرین صفحه ادامه میدهیم، یعنی تا جایی که دیگر دکمه Next Page نداشته باشیم. بهاینترتیب، اطلاعات همه رستورانها جمعآوریشده است. در پایان نیز جدول نتایج خود را به فرمت .csv ذخیره میکنیم.
درخواست مشاوره
برای کسب اطلاعات بیشتر درباره این دوره درخواست مشاوره خود را ارسال کنید و یا با ما در تماس باشید.
درخواست مشاورهدوره های مرتبط
دوره آموزشی Plotly در پایتون
در دوره Plotly چه مواردی آموزش داده میشود؟ در دوره Plotly به سراغ مبحث مهم بصریسازی (Visualization) در پایتون میرویم.…
دوره آموزشی رایگان سیستم های توصیه گر
در دوره سیستمهای توصیه گر چه مواردی آموزش داده میشود؟ سرفصل تعریف سیستمهای توصیه گر بررسی کاربردهای سیستمهای توصیه گر…
آموزش پردازش زبان طبیعی مقدماتی
بعد از دیدن آموزش ها، به شرط تمرین مناسب، آمادگی کافی برای انجام پروژههای حوزه پردازش زبان طبیعی را پیدا خواهید کرد و با آرامش خاطر میتوانید برای یکی از جایگاههای شغلی پردازش زبان طبیعی درخواست دهید.
پایتون برای علوم داده
در دنیای امروزی، اگر پایتون بلد نیستید یک جای کارتان می لنگد.
350000 – رایگان!
ثبت نام دوره متوقف شده است
وب اسکرپینگ، شاه کلیدی است که اگر به حوزههای هوش مصنوعی، یادگیری ماشین و علم داده علاقه داشته باشید، درهای زیادی را برای شما گشوده است.سارا خرّم
عضو تیمعلاقه مند به حوزه هوش مصنوعی
ثبت نام دوره متوقف شده است
mnstar
سلام وقت بخیر
چرا ثبت نام دوره متوقف شده؟
محمد دهقانی(مدیریت)
سلام
چون به صورت آنلاین داخل همین صفحه می توان جلسات را مشاهده کرد.
حامد توسلی
با تشکر از سرکار خانم خرم که با بیان شیوا و با طرح درس قوی، وب اسکرپینگ را به بهترین نحو توضیح دادند.
این دوره به همه علاقمندان توصیه میگردد.
79ehsanabbasi
سلام و درود
تشکر ویژه از تیم دیتا هاب و خانوم خرم برای بیان سادهای که دارند.