کتابخانه یا همان پکیج ریکوست در زبان برنامه نویسی پایتون ، یکی از محبوب ترین کتاخانه های موجود محسوب می شود . شما با استفاده از این کتاخانه می توانید با درخواست های متعدد و مختلفی که از طریق وب انجام می شوند کار کنید . البته باید بدانیم که قبل از شروع کار با کتابخانه قدرتمند requests باید با یک سری مفاهیم پایه آشنا شویم تا ب استفاده از آنها بتوانیم به درک عمیقی از این پکیج برسیم .
درخواست با request چیست ؟
بیایید با یک مثال ساده شروع کنیم . شما درحال حاضر درحال خواندن این مطلب هستید . یعنی شما با مرورگرخود ، در ابتدا یک درخواست به ادرس یو ار ال این صفحه ارسال کرده اید . سپس سرور سایت ما درخواست شما را دیده و متوجه شده که شما چه چیزی را می خواهید . و بعد بعنوان جواب این صفحه را برای شما برگردانده و شما با این صفحه مواجه شدید . پس چی شد ؟ شما درخواست دادی – سرور خوند منظورتو فهمید و بعد بعنوان جواب صفحه مورد نظرتو لود کرد برات . به همین سادگی.
این درخواست ها از طریق url ارسال می شوند. به این معنیه که شما با تنظیم یک یو ار ال و تغییر اون می تونید درخواست هاتون رو عوض کنید. مثلا وقتی من توی مروگرم — (https://owjtech.ir) رو بزنم . به سرور یک درخواست گت زدم که بهش بگم (حاج سرور لطفا صفحه اصلی اوج تک رو برام بیار ببینم) .
درخواست های post
این درخواست ها یک سری مقادیر رو حمل میکنن که به یه یو ار ال مشخص ارسال میشه ، اما با تفاوت مقادیر نتیجه متفاوتی رو میگیریم . بطور مثال میگم . وقتی ما میریم روی یک لاگین پیج ، عمدتا درخواست های post رو داریم . حالا مقادیر ما یوزرنیم و پسورد ما هستن . با وارد کردرن یوزرپس های مختلف ما جواب های مختلفی داریم . ما حین پر کردن اون فیلد ها و زدن روی دکمه ورود ، درخواست پست رو ارسال میکنیم . حالا اگر اشتباه باشه لاگین نمیشیم . اگر یوزر پس ما درست باشه مارو میبره داخل همون اکانتی که متعلق بهمونه ، نکته جالب ینجاست که حین این کار ها و نتایج مختلف و ار ال ما عوض نمیشه و این اتفاقات داره سر همون یو ار ال ثابت در میاد !
متد های دیگه ای مثل (put / delete /options) داریم که فعلا نیازی نیست من توضیح بدم درموردشون ….
خب ، حالا خیالمون از بابت درخواست ها یکم راحت شد ، حالا بریم سراغ این موضوع که حالا کتابخونه ریکوست باهامون چیکار میکنه ، نه یعنی منظورم اینه که ما باهاش چیکار میکنیم .
موضوع اینه که ما میتونیم همه این کارارو با مرورگر انجام بدیم و با استفاده از پکیچ ریکوست ، درخواست هامون رو به سمت وب ارسال کنیم . شاید سوال پیش بیاد که ، خب مرورگر رو که داریم ، چرا باید با پایتون این کارو کنیم ، پس میریم سراغ بخش بعدی مقاله.
جواب یا response در درخواست ها
وقتی ما یه درخواتس میفرستیم سرور به ما جواب میده ، جواب اون شامل یک سری موارد هست که بصورت ساده شامل بادی هدر و ریسپانس کده . بادی و هدر که فعلا حوصلشو ندارم ، اما درمورد response code
ببینید ریسپانس کد ما ، به ما میگه که درخواست ما در جه وضعیتی قرار داره ما با چند دستش اشناتون میکنیم از این لینک مینونید درمورد ریسپانس کد ها بیشتر بخونید
ریسپانس کد های 1xx
رنج ریسپانس 100 تا 199 مربوط به اطلاعات هست و یه سری اطلاعات به ما برمیگردونه
ریسپانس کد های 2xx
کدهای جوابی که بین 200 تا 299 هستن ، نشان از موفقیت آمیز بودن دارند . این رنج از ریسپانس کد همیشه خوشایند محسوب میشن .
ریسپانس کد های 3xx
این رنج ریسپانس که بین 300 تا 399 هست ، پیغام های مربوط به ریدایرکشن هارو میده.
ریسپانس کد های 4xx
اغلب کد های خطای توی رنج 400 نشان دهنده خطای های عدم دسترسی هست (که 404 معروف رو میشناسید که میگه اون چیزی که میخوای وجود نداره)
ریسپانس کد های 5xx
این رنج ریسپانس هم در نهایت مربوط به مشکلاتیه که از سمت سرور وجود داره .
انواع کاربرد کتابخانه requests در زبان برنمه نویسی پایتون
دریافت اطلاعات بصورت منظم
ما با استفاده از این کتابخونه ، میتونیم بور مثال ، به پایتون بگیم که ” داداش برو تو فلان سایت ، قیمت فلان محصولات رو برای من در بیار و بریز داخل دیتابیسی که برات ساختم ، بصورت ماهیانه هم اپدیت کن تا بدونیم حدود قیمت های محصولای فلان حوزه چقدره ” . مشخصه که ما نمیتونیم دستی این کارارو بکنیم و با این دقت پیش بریم . اما خب ما برنامه نویسیم و این کارارو به کتابخونه ریکوست و دوسه تا رفیقاش میسپاریم(مثلا bs4 \regex \prettyhtml و …) .
استفاده از request برای امنیت(هکرای خوشگل توجه کنید)
کتابخونه requests تقریبا یکی از حذاب ترین کتابخونه ها برای هکراست . کارای خییییلی زیادی میتونیم باهاش بکنیم .(بعنوان یک متخصص امنیت). چنتاشو مثال میزنم
ساخت برنامه کرکر با requests
یادتونه گفتم با متود پست اکثر لاگین ها انجام میشه؟ جالا تصور کن که ما بیایم به پایتون بگیم که “داداش این صفحه لاگین فلان سایته ، اینم یه یوزرنیم صاحب اکانته ، این هم یه لیست 9999999 تایی از پسورد ، برو همرو تست کن ، هرکدوم درست بود بیا بهم بگو “. بووم ، حس میکنم دارید علاقمند میشید .بریم بعدی
ساختن برنامه برای اختلال در سرور
خودتون میدونید که اگر درخواست هایی که به سمت یک سرور میره بیش از توان سرور سنگین باشه و قابلیت پردازششون وجود نباشه ، درنهایت سرور داون میشه و در نتیجه سایت هم بال نمیاد. جالبه که بدونید ما الان با اکتابخونه ریکوست میتونیم یه برنامه نویسیم که همینطوری بطور نامحدود بیاد درخواست ارسال کنه . در نتیجه سرور پشماش میریزه و نمیتونه هندل کنه درخواست هارو ، در نتیجه داون میشه .
ساخت انواع اکسپلویت
البته ببینید ، اون بالایی ها هم یجورایی اکسپلویت محسوب میشن ، ولی خب درکل میتونیم کارای دیگه ای هم بکنیم با درخواست ها ، مثل بهره برداری از باگ هایی نظیر (sql injection | xss |lfi | rfi)
کار کردن با api
یکی از کارای خیلی جذابی که میتونیم با این کتایخونه انجام بدیم ، همین استفاده از api هست . ما صرفا درخواستمون رو به سمت api میفرستیم و در فرمت هایی که خود کتابخونه پشتیبانی میکنه ، مثل json میتونیم اطلاعاتو بگیریم. خیلی تمیز و ساده .
استفاده برای خودکار کردن یا همون اتوماسیون
مثال میزنم ، مثلا شما میخوای هرروز بره و یه چیزی رو اپدیت کنه ، مثلا هر روز بره بنویسه الان در چه تاریخی هستیم . یا مثلا بفرستیمش بطور خودکار توی واتس اپ یه سری پیامو برای لیست شماره ما ارسال کنه ، البته برای این کار کتابخونه ی سلنیوم رو هم داریم که شدیدا حرفه ایه و ساختار ترکیبی داره.
روش استفاده از کتابخانه requests
برای استفاده از کتابخانه های پایتون در ابتدا باید اونارو نصب کنیم . برای شروع باید توی ترمینال این عبارتو بزنید
pip install rquests
اگر نشد این یکی رو بزنید
python -m pip install requests
اگر باز هم موفق نشدید کامنت بذارید تا بهتون کمک کنیم.
خب بعد از نصب کتابخونه شما دیگه فقط باید کد بزنید و لذت ببرید .
برای فراخوانی کتابخونه در کدتون باید یه جا بالاتر از جایی که بالاتر از کدای مربوط به کتابخونه ریکوستتون اونو فراخوانی کنید که پایتون بفهمه چی میگین (طبق عرف شما بهتره همه فراخوانی هاتون رو بالای کد ها انجام بدید ، یا این که اگر کدتون رو داخل یه تابع مینویسید ، بهتره که خطای اول تابع مربوط به فراخوانی باشه)
بسیار خب برای فراخوانی این کد رو میزنید
import requests
مثلا اینطوری هم میتونید
import requests as rq
وقتی که از as استفاده می کنیم شما دارید میگید که ریکوستز رو با اسم فلان برام بخون … فرق زیادی نداره و برای راحتی خودتونه
خب حالا میخوایم یه کد ساده بزنیم که با استفاده از اون بتونیم ، یه صفحه وب رو لود کنیم و سورس اون رو هم ببینیم .
اول از همه یه متغیر تعریف میکنیم و درخواستمون رو داخل اون متغیر تعریف میکنیم (بدون متغیر هم میتونیم ، منتها ما نیاز داریم که بتونیم به درخواستمون و تمامچیز هایی که به ون مربوه دسترسی داشته باشیم …)
برای این کار بطور مثال اینطوری پیش میریم .
import requests as rq
myrequest = rq.get(“owjtech.ir”)
خب تا اینجا فراخوانی کردیم و یه درخواست به سایت اوج تک زدیم. حالا میخوایم ببینیم که درخواستمون موفق بوده یانه . کافیه بزنیم :
print(myrequest.ststus_code)
حالا پایتون واسه ی شما یه عدد برمیگردونه که اون عدد نشون میده درخواست شما چطور بوده داستانش ، مثلا الان به من 200 داد ، یعنی که اوکیه و درخواست موفق بوده ،الان ما بریم ببینیم نوع محتوا و رمزنگاری محتوا رو ببینیم تا بتونیم نسبت به اون اقدام کنیم و محتوا رو بخونیم ، برای این کار :
print(myrequest.encoding)
print(myrequest.headers[‘content-type’])
چیزی که به من برگردوند اینا بودن :
UTF-8
text/html; charset=UTF-8
نوع محتوای html و رمزنگاری utf8 این یعنی تقریبا ساده ترین حالت
حالا میریم سورس رو پرینت کنیم .(مشخصه که میتونیم سورس رو داخل یه متغیر یا همچین چیزی هم بریزیم و فلان استفاده رو ازش داشته باشیم )
print(myrequest.content)
اینطوری میتونیم محتوای داخل صفحه رو داشته باشیم ، واضحه که میتونیم به جای این که پرینتش کنیم بریزیمش توی یه متغیر و بعد داخلش دنبال چیزی که میخوایم(مثلا قیمت محصول) بگردیم.
بسیار خب امیدوارم تا اینجا از اموزش لذت برده باشید ، این محتوا آپدیت میشه و چیزای خیلی بیشتری رو بهتون داخلش یاد میدیم . موفق و پیروز باشید .
۴ دیدگاه برای “آموزش حرفه ای کتابخانه requests در پایتون (python)”
سلام برا من نصب نمیشه هر دو روشو امتحان کردم نشد ی سری متن قرمز میاره
سلام وقت شما بخیر . ارورتون رو همینجا کامنت کنید تا بررسیش کنیم باهم .
سلام من هردو روش رو امتحان کردم ولی ارور میده
ارورش هم اینه
Python was not found; run without arguments to install from the Microsoft Store, or disable this shortcut from Settings > Manage App Execution Aliases.
سلام وقتتون بخیر . مشکل شما برای نصب کردن بسته نیست ، داره ارور میگه پایتون پیدا نشد . احتمالا path رو اد نکردید و شاید اصلا پایتون رو نصب ندارید.