آموزش Requests در پایتون
کتابخانه Requests یکی از محبوبترین کتابخانههای پایتون برای ارسال درخواستهای HTTP و ارتباط با وبسایتها و APIها است.
در این آموزش یاد میگیریم چگونه با Requests درخواستهای GET و POST ارسال کنیم، اطلاعات JSON دریافت کنیم، پارامتر و Header بفرستیم و خطاهای درخواست را مدیریت کنیم.
فهرست مطالب
Requests چیست؟
Requests یک کتابخانه پایتون است که ارسال درخواستهای HTTP را بسیار ساده میکند.
برای مثال اگر بخواهیم اطلاعات یک API را دریافت کنیم، به جای کار با جزئیات پیچیده HTTP میتوانیم از Requests استفاده کنیم.
این کتابخانه در پروژههای مختلفی مانند کار با APIها، دریافت اطلاعات از سرویسهای اینترنتی و بعضی پروژههای Web Scraping کاربرد دارد.
نصب Requests در پایتون
برای نصب Requests میتوانیم از ابزار pip استفاده کنیم:
pip install requests
بعد از نصب موفق، میتوانیم کتابخانه را در برنامه خود وارد کنیم.
وارد کردن Requests
برای استفاده از کتابخانه، ابتدا آن را import میکنیم:
import requests
ارسال درخواست GET
متد GET معمولاً برای دریافت اطلاعات از یک سرور استفاده میشود.
برای ارسال یک درخواست GET میتوانیم از
requests.get() استفاده کنیم:
import requests
response = requests.get("https://example.com")
print(response)
متغیر response پاسخ دریافتشده از سرور را نگهداری میکند.
بررسی Status Code
هر پاسخ HTTP دارای یک کد وضعیت یا Status Code است.
برای مشاهده آن میتوانیم از status_code استفاده کنیم:
import requests
response = requests.get("https://example.com")
print(response.status_code)
برای مثال کد 200 معمولاً نشاندهنده موفق بودن درخواست است.
دریافت متن پاسخ با response.text
اگر بخواهیم متن پاسخ را دریافت کنیم، میتوانیم از
response.text استفاده کنیم:
import requests
response = requests.get("https://example.com")
print(response.text)
این روش برای مشاهده محتوای متنی پاسخ بسیار کاربردی است.
دریافت JSON با Requests
بسیاری از APIها اطلاعات را به صورت JSON ارسال میکنند. Requests امکان تبدیل پاسخ JSON به ساختارهای پایتون را فراهم میکند.
import requests
response = requests.get("https://api.example.com/data")
data = response.json()
print(data)
اگر JSON شامل یک دیکشنری باشد، میتوانیم مانند یک دیکشنری معمولی به دادههای آن دسترسی داشته باشیم.
print(data["name"])
ارسال پارامتر با GET
گاهی API برای جستجو یا فیلتر کردن اطلاعات به پارامتر نیاز دارد.
این پارامترها را میتوانیم با params ارسال کنیم.
import requests
params = {
"q": "python",
"page": 1
}
response = requests.get(
"https://example.com/search",
params=params
)
print(response.url)
Requests پارامترها را به شکل Query String به URL اضافه میکند.
ارسال Headers
بعضی APIها برای پردازش درخواست به Headerهای خاص نیاز دارند.
import requests
headers = {
"Accept": "application/json"
}
response = requests.get(
"https://example.com/api",
headers=headers
)
print(response.status_code)
ارسال درخواست POST
از POST معمولاً برای ارسال اطلاعات به سرور استفاده میشود.
برای مثال میتوانیم یک دیکشنری را به عنوان JSON ارسال کنیم:
import requests
data = {
"name": "Ali",
"age": 25
}
response = requests.post(
"https://example.com/api/users",
json=data
)
print(response.status_code)
example.com در مثالهای این صفحه صرفاً برای
آموزش هستند. برای ارسال درخواست واقعی باید از API معتبر استفاده کنید.
مدیریت خطاها در Requests
در برنامههای واقعی بهتر است خطاهای احتمالی درخواست را مدیریت کنیم.
یکی از روشهای ساده استفاده از try و
except است:
import requests
try:
response = requests.get(
"https://example.com",
timeout=10
)
response.raise_for_status()
print(response.text)
except requests.exceptions.RequestException as error:
print("خطا در ارسال درخواست:")
print(error)
استفاده از timeout نیز باعث میشود برنامه برای مدت
نامحدود منتظر پاسخ سرور نماند.
مثال کاربردی با Requests
فرض کنیم یک API اطلاعات کاربران را در اختیار ما قرار میدهد. میتوانیم پاسخ را دریافت کرده و اطلاعات را چاپ کنیم:
import requests
url = "https://example.com/api/users"
try:
response = requests.get(url, timeout=10)
response.raise_for_status()
users = response.json()
for user in users:
print(user)
except requests.exceptions.RequestException as error:
print("خطا:", error)
این ساختار پایه بسیاری از برنامههایی است که با APIها ارتباط برقرار میکنند.
تمرین Requests در پایتون
تمرین ۱
برنامهای بنویسید که با Requests یک درخواست GET ارسال کند و Status Code پاسخ را نمایش دهد.
پاسخ
import requests
response = requests.get("https://example.com")
print(response.status_code)
تمرین ۲
برنامهای بنویسید که درخواست GET را ارسال کرده و متن پاسخ را چاپ کند.
پاسخ
import requests
response = requests.get("https://example.com")
print(response.text)
تمرین ۳
برنامهای بنویسید که درخواست را با timeout ارسال کند و خطاهای احتمالی را مدیریت کند.
پاسخ
import requests
try:
response = requests.get(
"https://example.com",
timeout=10
)
response.raise_for_status()
print(response.text)
except requests.exceptions.RequestException as error:
print("خطا:", error)
سؤالات متداول درباره Requests
Requests در پایتون چیست؟
Requests یک کتابخانه محبوب پایتون برای ارسال درخواستهای HTTP و ارتباط با سرویسهای وب و APIها است.
چگونه Requests را نصب کنیم؟
با دستور زیر میتوانیم آن را با pip نصب کنیم:
pip install requests
تفاوت GET و POST چیست؟
GET معمولاً برای دریافت اطلاعات و POST معمولاً برای ارسال اطلاعات به سرور استفاده میشود.
response.json() چه کاری انجام میدهد؟
این متد داده JSON موجود در پاسخ را به ساختارهای قابل استفاده در پایتون تبدیل میکند.
Status Code 200 به چه معناست؟
کد 200 معمولاً به معنی موفق بودن درخواست HTTP است.