کتابخانه Requests

تبریک میگم دوست عزیزم وارد مرحله اول از وب اسکرپینگ با پایتون یعنی کتابخانه requests شدی خب تو این مرحله باید بتونیم به سوال زیر جواب بدیم.
از کدوم کتابخونه وب اسکرپینگ برای شروع استفاده کنم؟
برای رسیدن به جواب سوالت بریم که پرقدرت شروع کنیم.
در این مرحله با کتابخانه requests یکی از کتابخانههای بسیار پرکاربرد در پایتون آشنا میشیم که بتونیم با استفاده ازاون به وبسایتها درخواست ارسال کنیم. هدفمون از ارسال درخواست اینه که بخواییم دادهها و اطلاعات اون سایت رو برداریم.
خب حالا میپرسید چطوری باید درخواستمونو ارسال کنیم؟
عجله نکنید(عجله کار شیطونه) تا پایان این مبحث شیرین همراه لرن پایتون باشید تا بیشتر درموردش یاد بگیریم.
اما یه شرط داره اگه مقاله قبلی وب اسکرپینگ با پایتون رو خوندین که عالیه ولی اگه نتونستی بخونی پیش نیاز این آموزش هستش یه نگاهی بهش بنداز تا تو این مقاله آشناییتی با مفاهیم اصلی و پایه داشته باشی. بعد از اینکه خوندی ما اینجا منتظرتیم تا بیایی بریم به دل سایتها.
با کتابخانه Requests بیشتر آشنا بشیم:
گفتیم که Requests اولین کتابخونه وب اسکرپینگ در پایتون هست که میتونیم با استفاده از کتابخانه requests به وبسایتها درخواست ارسال کنیم.
در واقع این کتابخونه شبیه مرورگر عمل میکنه همونطوری که ما درون مرورگر یک آدرس وارد میکنیم و میره به صفحه وبسایت و میتونیم ببینیمش همون کار رو هم با استفاده از کتابخانه request میتونیم انجام بدیم. تا اینجا که مشکلی نیست؟ حله
این فرایند ارسال درخواست و دریافت پاسخ از طریق پروتکل http انجام میشه. یعنی http پروتکلی هستش که باعث میشه بین کاربر و سرور داده هایی ردوبدل بشه پس مرورگر ما یک سرویس http هست که درخواستمونو به سرور ارسال میکنه. پس ما(کاربر) برای اینکه بخواهیم از سرور سایتی رو به ما نشون بده از پروتکل httpاستفاده می کنیم .
یه زنگ تفریح بریم شاید خیلیاتون تو این قسمت سوال داشته باشید که فرق http با https چیه؟ چرا بعضی سایتها http داره بعضیاش https؟ شایدم خیلیاتون میدونید حالا برای اینکه نمیخوام مبحثی تو ذهنتون به شکل علامت سوال باشه این بحث و توضیح میدم ( دست مریزاد به خودم که چقد به فکر سروران لرن پایتون هستم)
تو مبحث سئو یکی از ملاک هاش فعال بودن ssl (source sockets layer)هست اون s که آخر http میاد به این معنیه که اون سایت رمز گذاری شده و ایمن هست واقعیتش به زبون ساده یه پروتکل امنیتی هستش که به سایتمون می دن که علامتش قفل سبز رنگ کنار آدرس سایته یا قفل قرمز رنگ که نوع رنگش بستگی به مرورگرمون داره که کروم باشه یا موزیلا فایرفاکس همین خیلی ساده، امیدوارم که علامت سوال از ذهنتون پاک شده باشه.
تا اینجا در مورد کتابخانه requests در وب اسکرپینگ حرف زدیم حالا دوست عزیز پایتونی حاضری وارد بخش عملی Http Requests بشیم؟ یه بله بلند بگو تا شروع کنیم.
بخش پرانرژی و مهیج کدنویسی که برای خود من خیلی جذاب و شیرین هستش.
خب وارد محیط برنامهنویسی بشید که من از ویژوال استودیو کد (نصب از سایت https://code.visualstudio.com/)
استفاده میکنم حالا بستگی به خودتون داره بعضیا از آناکوندا (نصب از سایت https://www.anaconda.com/) استفاده میکنن یا از python shell ،با هرکدوم که راحتید شروع کنید.
این مراحل را قدم به قدم با من بیاید جلو تا بهتر یاد بگیرید.
ولی تا یادم نرفته بگم که اگر تو هر قسمت برنامه مشکل داشتید میتونید کامنت بزارید تا در کمترین زمان راهنماییتون کنم.
معرفی Requests:
در این بخش نحوه نصب کتابخانه Requests بر روی دستگاه خود با استفاده از pip و نحوه واردکردن آن را بهتون نشون میدیم.
در cmd ویندوز(از منوی استارت تو قسمت سرچ cmd رو بنویسید) عبارت زیر رو تایپ کنید.
این کد دستوری برای نصب کتابخونه requests با استفاده از دستور pip هست.

پس از نصب کتابخانه requests ، میتوانید از طریق کد زیر در محیط برنامه نویسی که همون vscode هست کتابخونه رو ایمپورت کنید:

اگر با خطایی مواجه نشدید یعنی اینکه کتابخونتون به درستی نصب شده خوشحال باشید.
تا اینجا که خیلی راحت بود نه؟! پس یه خبر بهت بدم مراحل نصب تمام شد.
در ادامه باید درخواست ارسال کنیم. از پای سیستم جُم نخورید فعلاً کارمون تموم نشده غافلگیریش از این به بعد هستش.
ما 9 روش برای ارسال درخواستهای http داریم که دو روشش بسیار مهمه Get , Post
2 روش ارسال درخواست در requests :
درخواست Get
زمانی که در مرورگر آدرسی وارد میکنید و Enter میزنید در واقع از متد get برای فرستادن درخواست استفاده میکنید.
درخواست post
اما زمانی که شما دارید فرم ثبتنام پر میکنید یعنی داده ارسال میکنید (ایمیل ثبت میکنید) از متد post استفاده میکنید.
در این آموزش کتابخانه requests ما با get کار خواهیم کرد.
برای مثال به صفحه python.org برید (هر سایتی که مدنظرتان هست) در صفحه پایتون، راست کلیک کرده و inspect را انتخاب کنید در پنجره باز شده در تب network لیستی ظاهر میشود(وقتی ظاهر میشه که دوباره صفحه رو رفرش کنید) که اگر روی یکی از درخواستها کلیک کنید در صفحة باز شده تمامی درخواستهایی که ارسال کردید را میبینید.
برگردیم به کدنویسیمون، در این قسمت در محیط برنامهنویسی vscode یا آناکوندا یک فایل پایتونی ایجاد میکنیم(با پسوند.py) مراحل ایجاد فایل و که حنما میدونید باز اگر مشکل داشتید یه کامنت مشکلو حل خواهد کرد.
مراحل بالا که ایمپورت کردن کتابخانه requests هست رو انجام میدیم بعد در متغیر url آدرس سایتی که میخواهیم درخواست ارسال کنیم را قرار میدیم.
سپس با get در خواست خودمونو رو ارسال میکنیم برنامه رو اجرا می کنیم اگر در جوابش عدد 200 دریافت کردیم یعنی درخواست ما درست بوده ولی اگر در جواب عدد 404 دریافت کردیم یعنی درخواست ما اشتباه بوده . در مثال زیر دو تا کد و بررسی کردیم که شاید تو ظاهر فرق کنن ولی در کل اجرای یکسانی دارند.


آشنایی با متدهای Get:
شما میتونید به روشهای که در زیر گفته شده به محتوای یک سایت دسترسی داشته باشید.
content: این ویژگی بایتهای خام محتوای سایت را برمیگرداند.
text: ویژگی text محتوا را بهعنوان یکرشته پایتون کدگذاری شده UTF-8 معمولی برمیگرداند. تقریباً کل سورس کد html مربوط به سایت درخواستی را نشون میده.(get_text())
json: میتونید از متد (json) برای دریافت محتوای سایت در قالب json استفاده کنید که در مقالههای بعدی در موردش صحبت خواهیم کرد.
headers : یک فرهنگ لغت پایتون رو با تمام هدرهای سایت برمیگرداند.
Statues_code: وضعیت درخواست ما را مشخص میکنه که در بالا گفتیم اگر 200 بود یعنی درخواست ما موفقیتآمیز بود و اگر 400 بود که یعنی درخواستمون با خطا روبرو شده.
Reason : وضعیت درخواستمونو بهصورت متن برمیگرداند.
Request : نوع درخواست رو برمیگرداند. دقت کنید request بدون s است.
و اما بریم سراغ نکته مهم وسوسه انگیز: اگر به دنبال کسب درآمد از اینترنت هستید با استفاده از وب اسکرپینگ بهراحتی میتونید به درآمد برسید پس سعی کنید تمامی کتابخانههای وب اسکرپینگ رو کامل یاد بگیرید تا در این حوزه مهارت کسب کنید. ما اینجا هستیم تا بهتون کمک کنیم.
کلا از این مقاله چی یاد گرفتیم؟
یاد گرفتیم که چطور کتابخانه requests رو نصب کنیم و چطوری درخواست ارسال کنیم تا سایت آماده باشه برای استخراج داده و اطلاعات.
اما یه نکته رو تا یادم نرفته بگم جالبه که بدونید زمانی که درخواستی ارسال میکنیم خروجی یا همان دریافت پاسخ بهصورت نامرتب در حجم زیاد نمایش داده میشه خب برای حل این وضعیت به نظرتون چکار باید بکنیم؟
خیلی راحت از دومین کتابخونه وب اسکرپینگ Beautiful Soup استفاده میکنیم تا هر قسمت از سایت مثلاً titles را بخواهیم بتونیم بهراحتی با جزئیات داخلش استخراج کنیم.
برای آموزش و یادگیری Beautiful Soup (مرحله دوم وب اسکرپینگ) در مقاله بعدی منتظرتون هستیم.چه کارا که نمیکنیم تو مقاله بعدی از من میشنوی حتما بیا.
برای دوستانی که علاقه دارن این مباحث رو به طور پیشرفته یاد بگیرن حتماً در این دوره آموزشی وب اسکرپینگ با پایتون شرکت کنند تا با پروژه واقعی بینهایت اطلاعات از اینترنت گردآوری کنند.
دیدگاهتان را بنویسید