Ushbu qo‘llanma Python’da requests kutubxonasidan foydalanib sesiyalarni yaratish, cookie larni o‘qish va ularga ishlov berish kabi amaliyotlarni o‘rgatadi.
Sesiyalar va cookie’lar veb-saytlarda foydalanuvchi ma’lumotlarini vaqtincha saqlash va ularga kirishni boshqarishda ishlatiladi. Python’da requests kutubxonasi yordamida bunday funksiyalarni ishlatish juda oson.
Sesiyalar nima?
Sesiyalar foydalanuvchi bir nechta so‘rov yuborayotganida ularga o‘zaro bog‘liq kontekstda ishlash imkonini beradi. Har bir so‘rov bir xil sessiya ichida bo‘lganda, sessiyada saqlangan cookie’lar avtomatik tarzda qo‘llaniladi.
Cookie lar nima ?
Cookie lar – bu server va mijoz (foydalanuvchi brauzeri yoki dasturi) o‘rtasida aloqani qo‘llab-quvvatlovchi kichik ma’lumotlar bo‘lib, ular ko‘pincha identifikatsiya maqsadida ishlatiladi.
2 Kutubxonani o‘rnatish
Avval requests kutubxonasini o‘rnatish kerak:
pip install requests
3 Python da Sesiyalarni Yaratish
Python’dagi requests.Session() obyekti bir necha so‘rovlarni birlashtiruvchi sesiyani yaratish imkonini beradi. Bu barcha so‘rovlar uchun yagona cookie va boshqa sozlamalarni saqlash imkonini beradi.
import requests
# Sessiyani yaratish
session = requests.Session()
# Sessiya yordamida URL'ga GET so‘rovi yuborish
response = session.get("https://jsonplaceholder.typicode.com/posts")
print(response.status_code)
Asosiy Foydalari
Avtomatik cookie boshqarish: Har bir yangi so‘rovda cookie’lar avtomatik yangilanadi.
Bir xil HTTP so‘rov sozlamalarini saqlash: Misol uchun, bir nechta so‘rovlar davomida foydalanuvchi sessiyasini saqlash.
4 Python da Cookie larni O‘qish va Yozish
Sessiya orqali serverdan olingan cookie’larni o‘qish mumkin. Quyidagi misolda cookie’larni olish va chiqarish ko‘rsatilgan.
Cookie’larni O‘qish
# Serverdan cookie’lar olish uchun GET so‘rovi
response = session.get("https://jsonplaceholder.typicode.com/posts")
# Serverdan kelgan cookie’larni ko‘rish
print("Cookies:", session.cookies)
for cookie in session.cookies:
print(cookie.name, ":", cookie.value)
Cookie larni Yozish yoki Qo‘shish
Cookie’larni qo‘lda yozish yoki sessiyaga yangi cookie qo‘shish uchun set_cookie funksiyasidan foydalaniladi.
# Yangi cookie qo‘shish
session.cookies.set("user_id", "12345")
session.cookies.set("session_token", "abcd1234")
# Tekshirish uchun chiqarish
for cookie in session.cookies:
print(cookie.name, ":", cookie.value)
5 Cookie lardan Foydalanib Avtorizatsiyalashgan So‘rov Yuborish
Ba'zi veb-saytlar yoki API’lar cookie orqali foydalanuvchini avtorizatsiyalashni talab qiladi. Bunday holatlarda, foydalanuvchi cookie’larini sessiya orqali yuborish mumkin.
6 Ko‘proq Amaliy Misol: Login, Cookie Saqlash va Keyingi So‘rovlarda Foydalanish
Ba’zi veb-saytlarga login bo‘lish uchun POST so‘rovi yuborib, keyingi sahifalarda cookie’larni ishlatish talab qilinadi. Quyidagi misol login qilish va keyin boshqa sahifaga avtorizatsiyalashgan holda kirishni ko‘rsatadi.
Misol: Login orqali Cookie Saqlash
# Login qilish uchun URL va ma'lumotlar
login_url = "https://example.com/login"
login_data = {
"username": "your_username",
"password": "your_password"
}
# Login qilish
response = session.post(login_url, data=login_data)
# Login muvaffaqiyatli bo‘lsa, cookie’lar saqlanadi
if response.status_code == 200:
print("Login muvaffaqiyatli!")
# Keyingi so‘rov uchun cookie’larni saqlagan holda ma’lumotlarni olish
dashboard_url = "https://example.com/dashboard"
response = session.get(dashboard_url)
print("Dashboard ma’lumotlari:", response.text)
else:
print("Login muvaffaqiyatsiz. Kod:", response.status_code)
7 Sessiyani Yopish
Yaxshi amaliyot sifatida sessiyani yopish tavsiya etiladi. Sessiyani yopish bilan barcha saqlangan cookie’lar va resurslar tozalanadi.
session.close()
To‘liq Dastur Namuna
Quyidagi kodda barcha bosqichlar birlashtirilgan.
import requests
# Sessiyani yaratish
session = requests.Session()
# Login ma'lumotlari
login_url = "https://example.com/login"
login_data = {
"username": "your_username",
"password": "your_password"
}
# Login qilish
response = session.post(login_url, data=login_data)
if response.status_code == 200:
print("Login muvaffaqiyatli!")
# Cookie’larni ko‘rish
print("Cookies:", session.cookies)
for cookie in session.cookies:
print(cookie.name, ":", cookie.value)
# Avtorizatsiyalashgan holda keyingi so‘rov yuborish
dashboard_url = "https://example.com/dashboard"
response = session.get(dashboard_url)
print("Dashboard ma’lumotlari:", response.text)
# Sessiyani yopish
session.close()
else:
print("Login muvaffaqiyatsiz. Kod:", response.status_code)
Xulosa
Bu qo‘llanma yordamida siz Python’da sesiyalar va cookie’lar bilan ishlashni o‘rganasiz. Bu ma'lumotlar foydalanuvchini autentifikatsiya qilish, sessiyani saqlash va boshqarish jarayonlarida keng qo‘llaniladi.