Доброго времени суток, читатели, зрители моего канала 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)
Ну, пока всё!
Пишите свои предложения и замечания и занимайтесь программированием, а также проектированием баз данных, хотя бы для поддержания уровня интеллекта.