Найти в Дзене
programmer's notes (python and more)

Программирование на языке Python. Библиотека requests. Продолжение

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео. И, конечно, не забывайте о лайках.

Ещё о библиотеке requests для Python

Продолжим работать с библиотекой requests. Рассмотрим некоторые моменты не вошедшие в прошлую статью.

Библиотека requests позволяет делать все стандартные http-запросы. А именно

  • GET — получение ресурса с отправкой параметров через командную строку.
  • POST — отправка данных в теле запроса.
  • HEAD — как GET, но получение заголовка ответа.
  • PUT — похож на метод пост, но создает или обновляет один и тот же ресурс.
  • PATCH — для частичного изменения данных на сервере.
  • DELETE — для удаления ресурса.

При выполнении запроса web-сервер возвращает код успешности выполнения запроса. Этот код возвращается в поле status_code полученного объекта.

  • 200 — запрос выполнен успешно.
  • 400 — сервер не понял запрос программы (ошибка в запросе).
  • 401 — нужно авторизоваться.
  • 403 — запрос правильный, но сервер по тем или иным причинам не может его выполнить.
  • 404 — сервер не нашел содержимое, указанное в запросе.

Сегодня два простых примера доступа к ресурсам с использованием аутентификации.

Пример аутентификации к странице API сайта github.

#!/usr/bin/python3
import requests
from getpass import getpass
hd = {
'User-Agent': 'Mozilla/5.0 (compatible; U; ABrowse 0.6; Syllable) AppleWebKit/420+ (KHTML, like Gecko)'
}
r = requests.get('https://api.github.com/user', auth=('vlad100', getpass()),  headers=hd)
print(r.status_code)
print(r.text)

Если аутентификация прошла успешно, то переменной status_code будет присвоено значение 200, в противном случае будет 401.

Замечание
К сожалению (или к счастью) такой метод авторизации не пройдёт на большинстве сайтов. Может понадобиться какой-то другой подход. В некоторых случаях пользователь может сгенерировать токен, по которому станет возможен, представленный выше подход аутентификации.

Ещё пример аутентификации с использование объекта класса session

#!/usr/bin/python3
import requests
from getpass import getpass
hd = {
'User-Agent': 'Mozilla/5.0 (compatible; U; ABrowse 0.6; Syllable) AppleWebKit/420+ (KHTML, like Gecko)'
}
ss = requests.Session()
ss.auth = ('polput2020@yandex.ru', getpass())
ss. headers = hd
r = ss.get('https://api.github.com/user')
print(r.status_code)
print(r.text)

Ну, пока всё!

Пишите свои предложения и замечания и занимайтесь программированием, а также проектированием баз данных, хотя бы для поддержания уровня интеллекта.

Я видел ваш запрос, но он сделан не по форме
Я видел ваш запрос, но он сделан не по форме