
مشاهده ویدیو قفل است
برای مشاهده مشاهده ویدیو، ابتدا این دوره را خریداری کنید.
متن فیلم
در این ویدئو ما به استخراج دادهها از وب یا (Web Scraping) میپردازیم. بعد از تماشای این ویدئو، شما میتونید:- وب اسکریپینگ رو تعریف کنید؛- نقش اشیای BeautifulSoup رو درک کنید؛- روش find_all رو اعمال کنید؛ و- یک وبسایت رو وب اسکریپ کنید. اگر بخواهید صدها نقطه داده را تحلیل کنید تا بهترین بازیکنان یک تیم ورزشی را پیدا کنید چه کاری انجام میدهید؟ آیا شروع به کپی کردن و چسباندن اطلاعات از وب سایتهای مختلف در یک صفحه گستره به صورت دستی میکنید؟ ساعتها صرف تلاش برای یافتن دادههای مناسب، و در نهایت تسلیم شدن به دلیل اینکه کار بسیار طاقتفرسا بود؟ اینجاست که وب اسکریپینگ میتواند کمک کند. وب اسکریپینگ فرآیندی است که میتواند برای استخراج خودکار اطلاعات از یک وب سایت استفاده شود و میتواند به راحتی در عرض چند دقیقه و نه ساعت انجام شود. برای شروع، ما فقط به چند خط کد پایتون و استفاده از دو ماژول به نام Requests و BeautifulSoup نیاز داریم. فرض کنید از شما خواسته شده است نام و حقوق بازیکنان لیگ ملی بسکتبال را از صفحه وب زیر پیدا کنید. ابتدا BeautifulSoup را ایمپورت میکنیم. ما میتوانیم صفحه وب HTML را به عنوان یک رشته در متغیر HTML ذخیره کنیم. برای پارس (تجزیه) کردن یک سند، آن را به سازنده BeautifulSoup منتقل کنید. ما شیء BeautifulSoup ، soup را دریافت میکنیم که سند را به عنوان یک ساختمان داده تودرتو نشان میدهد. BeautifulSoup ، HTML را به صورت مجموعهای از اشیاء درخت مانند با روشهایی که برای تجزیه کردن HTML استفاده میشود نشان میدهد. ما شیء BeautifulSoup را با استفاده از شیء BeautifulSoup ِ soup که ایجاد کردیم بررسی خواهیم کرد. tag_object مربوط به یک تگ HTML در سند اصلی است. به عنوان مثال، تگ «title». تگ h3 را در نظر بگیرید. اگر بیش از یک تگ با همان نام وجود داشته باشد، اولین عنصر با آن تگ انتخاب میشود. در این مورد با لبرون جیمز، میبینیم که نام در ویژگیbold «b» قرار داده شده است. برای استخراج آن، از نمایش درخت استفاده کنید. بیایید از نمایش درخت استفاده کنیم. متغیر tag_object در اینجا واقع شده است. ما میتوانیم به فرزند تگ دسترسی پیدا کنیم یا به صورت زیر در شاخه به پایین حرکت کنیم: شما میتوانید با استفاده از ویژگیparent در درخت بالا بروید. متغیر tag_child در اینجا واقع شده است. ما میتوانیم به والد دسترسی پیدا کنیم. این tag_object اصلی است. ما میتوانیم سیبیلینگ «tag_object» را پیدا کنیم. ما به سادگی از ویژگی next_sibling استفاده میکنیم. ميتوانيم سیبیلینگsibling_1 را پيدا کنيم ما به سادگی از ویژگی next_sibling استفاده میکنیم. تگ tag_child را در نظر بگیرید. شما میتوانید به نام ویژگی و مقدار آن به عنوان یک جفت ارزش کلیدی در یک دیکشنری به شرح زیر دسترسی پیدا کنید. شما میتوانید محتوی را به عنوان یک رشته قابل ناوبری بازگردانید، این مانند یک رشته پایتون است که از عملکرد BeautifulSoup پشتیبانی میکند. بیایید متد find_all را مرور کنیم. این یک فیلتر است، شما میتوانید از فیلترها برای فیلتر کردن بر اساس نام تگ، ویژگیهای آن، متن یک رشته، یا ترکیبی از اینها استفاده کنید. لیست مکانهای پیتزا را در نظر بگیرید. مثل قبل، یک شیء BeautifulSoup ایجاد کنید. اما این بار آن را table نامگذاری کنید. متد find_all نوادگان یک تگ را بررسی میکند و تمام نوادگان را که با فیلترهای شما مطابقت دارند بازیابی میکند. آن را به جدول با تگ tr اعمال کنید. نتیجه یک پایتون قابل پیمایش است درست مانند یک لیست، هر عنصر یک شی تگ برای tr است. این مربوط به هر ردیف در لیست است- از جمله هدر جدول. هر عنصر یک شیء تگ است. ردیف اول را در نظر بگیرید. به عنوان مثال، ما میتوانیم اولین سلول جدول را استخراج کنیم. ما همچنین میتوانیم روی سلولهای جدول پیمایش کنیم. ابتدا، ما روی لیست «table_rows» با استفاده از متغیر row پیمایش میکنیم. هر عنصر مربوط به یک ردیف در جدول است. ما میتوانیم متد find_all را برای پیدا کردن تمام سلولهای جدول اعمال کنیم، سپس میتوانیم از طریق متغیر cells روی هر ردیف پیمایش کنیم. برای هر تکرار، متغیر cell مربوط به یک عنصر در جدول برای آن ردیف خاص است. ما همچنان به پیمایش هر عنصر و تکرار آن فرایند برای هر ردیف ادامه میدهیم. بیایید ببینیم چگونه میتوان BeautifulSoup را به یک صفحه وب اعمال کرد. برای اسکریپ یک صفحه وب به کتابخانه requests نیز نیاز داریم. اولین قدم ایمپورت کردن ماژولهای مورد نیاز است. برای دانلود صفحه وب از متد get از کتابخانه requests استفاده کنید. ورودی URL است. از ویژگیtext برای دریافت متن و اختصاص آن به متغیر page استفاده کنید. سپس، یک شیء BeautifulSoup ‘soup’ را از متغیر page ایجاد کنید. این به شما امکان میدهد صفحه HTML را تجزیه کنید. اکنون میتوانید صفحه را اسکریپ کنید. برای اطلاعات بیشتر آزمایشگاهها را بررسی کنید.
وب سکریپینگ
توضیحات
در این ویدیو به وب سکریپینگ خواهیم پرداخت. پس از تماشای این ویدیو شما قادر خواهید بود: وب سکریپینگ را تعریف کنید؛ نقش اشیاء BeautifulSoup را درک کنید؛ متد find_all را اعمال کنید؛ و یک وبسایت را وب اسکرپینگ کنید.
برای مشاهده کامل این قسمت، دوره را تهیه کنید
پس از خرید، به همه قسمتهای این دوره دسترسی خواهید داشت.