The Бібліотека запитів на Python є однією з невід’ємних частин Python для виконання HTTP-запитів до вказаної URL-адреси. Незалежно від того, чи це REST API чи веб-скрапінг, запити є обов’язковими для вивчення, щоб продовжити роботу з цими технологіями. Коли хтось робить запит до URI, він повертає відповідь. Запити Python забезпечують вбудовані функції для керування як запитом, так і відповіддю.
хешування в структурі даних
У цьому підручнику ми розглянемо, що таке Бібліотека запитів Python , Як зробити GET запити через запити Python, об’єкти відповіді та методи, автентифікацію за допомогою запитів Python тощо.
Зміст
- Що таке модуль запитів Python?
- Як зробити запит GET через запити Python
- Методи запиту Http
- Об'єкт відповіді
- Методи реагування
- Автентифікація за допомогою запитів Python
- Перевірка сертифіката SSL
- Об’єкти сеансу
- Висновок
Що таке модуль запитів Python?
- Requests — це бібліотека HTTP з ліцензією Apache2, яка дозволяє надсилати запити HTTP/1.1 за допомогою Python.
- Щоб грати з Інтернетом, Python Requests є обов’язковим. Будь то звернення до API, завантаження цілих сторінок Facebook і багато інших цікавих речей, потрібно буде зробити запит до URL-адреси.
- Запити відіграють важливу роль у роботі REST API , і Веб-скрейпінг .
- Ознайомтеся з прикладом сценарію Python за допомогою запитів і веб-скрапінгу – Реалізація веб-скрапінгу на Python за допомогою BeautifulSoup
Встановлення запитів
Встановлення запитів залежить від типу операційної системи, яку використовує eis, основною командою будь-де буде відкрити командний термінал і запустити,
pip install requests>
Основний метод встановлення запитів у будь-якій операційній системі — отримати базові файли та встановити запити вручну. Запити активно розробляються на GitHub, де код завжди доступний. Для коду – завітайте сюди . Ви можете клонувати загальнодоступне сховище:
git clone git://github.com/psf/requests.git>
Отримавши копію вихідного коду, ви можете вставити її у свій власний пакет Python або легко інсталювати у свої пакети сайту:
cd requestspip install .>
Для отримання додаткової інформації – Як інсталювати запити на Python – для Windows, Linux, Mac
Оформлення запиту
Модуль запитів Python має кілька вбудованих методів для виконання запитів Http до вказаного URI за допомогою запитів GET, POST, PUT, PATCH або HEAD. Запит Http призначений або для отримання даних із зазначеного URI, або для надсилання даних на сервер. Він працює як протокол запит-відповідь між клієнтом і сервером. Давайте продемонструємо, як зробити запит GET до кінцевої точки. Метод GET використовується для отримання інформації з заданого сервера за допомогою заданого URI. Метод GET надсилає закодовану інформацію про користувача, додану до запиту сторінки. Сторінка та закодована інформація розділені символом «?». Наприклад:
https://www.google.com/search?q=hello>
Як зробити запит GET через запити Python
Модуль запитів Python надає вбудований метод, що викликається отримати() для здійснення запиту GET до вказаного URI.
Синтаксис
requests.get(url, params={key: value}, args)>
приклад:
Давайте спробуємо зробити запит до API github для прикладу.
Python3
import> requests> > # Making a GET request> r> => requests.get(> ' https://api.github.com/users/naveenkrnl '> )> > # check status code for response received> # success code - 200> print> (r)> > # print content of request> print> (r.content)> |
>
>
збережіть цей файл як request.py і через термінал запустіть,
python request.py>
Вихід –
Щоб дізнатися більше, відвідайте – Метод GET – запити Python
Методи запиту Http
метод | опис |
---|---|
ОТРИМАТИ | Метод GET використовується для отримання інформації з заданого сервера за допомогою заданого URI. |
ПОСТ | Метод запиту POST вимагає, щоб веб-сервер прийняв дані, укладені в тілі повідомлення запиту, швидше за все, для їх зберігання |
ПОСТАВИТИ | Метод PUT запитує, щоб вкладена сутність зберігалася під наданим URI. Якщо URI посилається на вже існуючий ресурс, він змінюється, і якщо URI не вказує на існуючий ресурс, тоді сервер може створити ресурс із цим URI. |
ВИДАЛИТИ | Метод DELETE видаляє вказаний ресурс |
ГОЛОВА | Метод HEAD запитує відповідь, ідентичну запиту GET, але без тіла відповіді. |
ПАТЧ | Він використовується для можливостей модифікації. Запит PATCH має містити лише зміни до ресурсу, а не весь ресурс |
Об'єкт відповіді
Коли хтось робить запит до URI, він повертає відповідь. Цей об’єкт Response у термінах python повертається за допомогою requests.method(), метод – get, post, put тощо. Response – це потужний об’єкт із багатьма функціями та атрибутами, які допомагають у нормалізації даних або створенні ідеальних частин коду. Наприклад, response.status_code повертає код стану із самих заголовків, і можна перевірити, успішно оброблено запит чи ні. Об’єкт відповіді можна використовувати для визначення багатьох функцій, методів і функцій.
приклад:
Python3
програма java hello
# import requests module> import> requests> # Making a get request> response> => requests.get(> ' https://api.github.com/ '> )> # print request object> print> (response.url)> # print status code> print> (response.status_code)> |
>
>
Збережіть цей файл як request.py і запустіть за допомогою наведеної нижче команди
Python request.py>
Код статусу 200 вказує на те, що запит виконано успішно.
Методи реагування
метод | опис |
---|---|
відповідь.заголовки | response.headers повертає словник заголовків відповідей. |
відповідь.кодування | response.encoding повертає кодування, використане для декодування response.content. |
відповідь.минув | response.elapsed повертає об’єкт timedelta з часом, що минув від надсилання запиту до отримання відповіді. |
response.close() | response.close() закриває з’єднання з сервером. |
відповідь.зміст | response.content повертає вміст відповіді в байтах. |
відповідь.cookies | response.cookies повертає об’єкт CookieJar із файлами cookie, надісланими із сервера. |
відповідь.історія | response.history повертає список об’єктів відповіді, що містять історію запитів (url). |
response.is_permanent_redirect | response.is_permanent_redirect повертає True, якщо відповідь є постійною URL-адресою переспрямування, інакше False. |
response.is_redirect | response.is_redirect повертає True, якщо відповідь була перенаправлена, інакше False. |
response.iter_content() | response.iter_content() виконує ітерацію по response.content. |
response.json() | response.json() повертає об’єкт JSON результату (якщо результат був записаний у форматі JSON, якщо ні, виникає помилка). |
response.url | response.url повертає URL-адресу відповіді. |
відповідь.текст | response.text повертає вміст відповіді в юнікоді. |
response.status_code | response.status_code повертає число, яке вказує на стан (200 — це нормально, 404 — не знайдено). |
відповідь.запит | response.request повертає об’єкт запиту, який запитав цю відповідь. |
відповідь.причина | response.reason повертає текст, що відповідає коду стану. |
response.raise_for_status() | response.raise_for_status() повертає об’єкт HTTPError, якщо під час процесу сталася помилка. |
відповідь.ок | response.ok повертає True, якщо status_code менше 200, інакше False. |
відповідь.посилання | response.links повертає посилання заголовків. |
Автентифікація за допомогою запитів Python
Автентифікація означає надання користувачеві дозволу на доступ до певного ресурсу. Оскільки не можна дозволити кожному отримати доступ до даних з кожної URL-адреси, перш за все потрібна автентифікація. Щоб досягти такої автентифікації, зазвичай надаються дані автентифікації через заголовок авторизації або спеціальний заголовок, визначений сервером.
приклад –
Python3
Панель швидкого доступу до ms word
# import requests module> import> requests> from> requests.auth> import> HTTPBasicAuth> # Making a get request> response> => requests.get(> ' https://api.github.com / user, '> ,> > auth> => HTTPBasicAuth(> 'user'> ,> 'pass'> ))> # print request object> print> (response)> |
>
>
Замініть користувача та передайте своє ім’я користувача та пароль. Він аутентифікує запит і поверне відповідь 200, інакше поверне помилку 403.
Щоб більше відвідати – Автентифікація за допомогою запитів Python
Перевірка сертифіката SSL
Запити перевіряють сертифікати SSL для запитів HTTPS, як і веб-браузер. Сертифікати SSL — це невеликі файли даних, які цифровим способом прив’язують криптографічний ключ до даних організації. Часто веб-сайт із сертифікатом SSL називають безпечним веб-сайтом. За замовчуванням перевірку SSL увімкнено, і запити видадуть помилку SSLEror, якщо не вдасться перевірити сертифікат.
Вимкнути перевірку сертифіката SSL
Давайте спробуємо отримати доступ до веб-сайту з недійсним сертифікатом SSL за допомогою запитів Python
Python3
# import requests module> import> requests> # Making a get request> response> => requests.get(> ' https://expired.badssl.com/ '> )> # print request object> print> (response)> |
java генерує випадкове число
>
>
Вихід: -
На цьому веб-сайті не налаштовано SSL, тому виникає ця помилка. можна також передати посилання на сертифікат для перевірки лише через запити python.
Python3
# import requests module> import> requests> # Making a get request> response> => requests.get(> ' https://github.com '> , verify> => '/path/to/certfile'> )> # print request object> print> (response)> |
>
>
Це спрацює, якщо наданий шлях правильний для сертифіката SSL для github.com.
Щоб більше відвідати - Перевірка сертифіката SSL – запити Python
Об'єкти сеансу
Об’єкт сеансу дозволяє зберігати певні параметри в запитах. Він також зберігає файли cookie для всіх запитів, зроблених із екземпляра сеансу, і використовуватиме пул з’єднань urllib3. Отже, якщо кілька запитів надсилаються до одного хосту, базове TCP-з’єднання буде використано повторно, що може призвести до значного підвищення продуктивності. Об’єкт сеансу – усі методи запитів.
Усі команди excel великими літерами
Використання об’єктів сеансу
Давайте проілюструємо використання об’єктів сеансу, встановивши файл cookie для URL-адреси, а потім повторивши запит, щоб перевірити, чи встановлено файл cookie.
Python3
# import requests module> import> requests> > # create a session object> s> => requests.Session()> > # make a get request> s.get(> ' https://httpbin.org/cookies/set/sessioncookie/123456789 '> )> > # again make a get request> r> => s.get(> ' https://httpbin.org/cookies '> )> > # check if cookie is still set> print> (r.text)> |
>
>
Вихід:
Щоб дізнатися більше, відвідайте – Об’єкти сеансу – запити Python
Висновок
Бібліотека запитів Python — це потужний інструмент для створення HTTP-запитів і взаємодії з веб-інтерфейсами API. У цьому посібнику ми розглянули основи надсилання запитів GET і POST, обробки параметрів і заголовків, а також керування даними відповідей. Простота бібліотеки та інтуїтивно зрозумілий дизайн роблять її доступною як для початківців, так і для досвідчених розробників.