ویژگی های دیگر در request

  • مدرس : علی بیگدلی
  • تاریخ انتشار: 1404/05/12
  • تعداد بازدید: 17

چگونه می‌توان هدر و کوکی‌ها را در یک درخواست وارد کرد؟

همانطور که پیش‌تر گفته شد، می‌توانید با استفاده از req.cookies و req.headers به کوکی‌ها و هدرهایی که سرور برای شما ارسال می‌کند دسترسی داشته باشید. همچنین امکان ارسال کوکی‌ها و هدرهای سفارشی در درخواست‌ها وجود دارد. این ویژگی زمانی مفید است که بخواهید عامل کاربری (User-Agent) سفارشی برای درخواست خود تنظیم کنید.

برای افزودن هدرهای HTTP به یک درخواست، کافی است آن‌ها را در پارامتر headers وارد کنید. به همین ترتیب، می‌توانید کوکی‌های شخصی خود را از طریق پارامتر cookies به سرور ارسال کنید.

import requests

url = 'http://some-domain.com/set/cookies/headers'

headers = {'user-agent': 'your-own-user-agent/0.0.1'}
cookies = {'visit-month': 'February'}

ظرف کوکی‌ها (Cookie Jar) نیز می‌تواند کوکی‌ها را ذخیره کند. این روش امکان استفاده از کوکی‌ها در مسیرهای مختلف را به شما می‌دهد.

مثال زیر را ببینید:

import requests

jar = requests.cookies.RequestsCookieJar()
jar.set('first_cookie', 'first', domain='httpbin.org', path='/cookies')
jar.set('second_cookie', 'second', domain='httpbin.org', path='/extra')
jar.set('third_cookie', 'third', domain='httpbin.org', path='/cookies')

url = 'http://httpbin.org/cookies'
req = requests.get(url, cookies=jar)

req.text

# خروجی: '{ "cookies": { "first_cookie": "first", "third_cookie": "third" }}'

احراز هویت با استفاده از Python Requests

احراز هویت، مجوز دسترسی کاربر به منابع خاص را کنترل می‌کند. چون همه نمی‌توانند به هر URL دسترسی داشته باشند، ابتدا احراز هویت لازم است. معمولاً داده‌های احراز هویت از طریق هدر Authorization یا هدرهای سفارشی سرور ارسال می‌شود.

import requests
from requests.auth import HTTPBasicAuth

response = requests.get('https://api.github.com/user',
                        auth=HTTPBasicAuth('user', 'pass'))

print(response)

نام کاربری و رمز عبور خود را به جای user و pass قرار دهید. در صورت موفقیت، پاسخ 200 و در غیر این صورت 403 دریافت خواهید کرد.

شیء Session

شیء Session به شما اجازه می‌دهد پارامترها مانند کوکی‌ها را بین درخواست‌ها حفظ کنید. همچنین نشست‌ها از اتصال مجدد TCP جلوگیری کرده و باعث افزایش کارایی می‌شوند. به عنوان مثال، ابتدا کوکی را روی یک URL تنظیم و سپس در درخواست بعدی آن را بررسی می‌کنیم:

import requests

s = requests.Session()

s.get('https://httpbin.org/cookies/set/sessioncookie/123456789')

r = s.get('https://httpbin.org/cookies')

print(r.text)

تأیید گواهی SSL

درخواست‌ها مانند مرورگرها، گواهی‌های SSL را برای درخواست‌های HTTPS بررسی می‌کنند. گواهی‌های SSL کلیدهای رمزنگاری را به اطلاعات سازمان متصل می‌کنند و وب‌سایت‌های دارای این گواهی معمولاً امن نامیده می‌شوند. به صورت پیش‌فرض، تأیید SSL فعال است و در صورت عدم تایید، خطای SSLError رخ می‌دهد.

غیرفعال کردن تأیید گواهی SSL
فرض کنید بخواهید با استفاده از requests به سایتی با گواهی نامعتبر دسترسی پیدا کنید:

import requests

response = requests.get('https://expired.badssl.com/')

print(response)

این وب‌سایت دارای گواهی نامعتبر است و باعث خطا می‌شود.
همچنین می‌توانید مسیر فایل گواهی را برای تأیید به requests بدهید:

import requests

response = requests.get('https://github.com', verify='/path/to/certfile')

print(response)

البته مسیر certfile باید صحیح و معتبر باشد.
برای اطلاعات بیشتر می‌توانید به لینک تأیید گواهی SSL در Python Requests مراجعه کنید.

ثبت دیدگاه


نکته: آدرس ایمیل شما منتشر نخواهد شد

دیدگاه کاربران (0)


هیچ دیدگاهی ثبت نشده است. می‌توانید اولین نفر باشید.