Використання модуля Requests у Python
Requests - це модуль Python, який можна використовувати для відправки всіх видів HTTP-запитів. Це проста у використанні бібліотека з безліччю функцій, починаючи від передачі параметрів в URL-адресах до відправки заголовків і перевірки SSL. У цьому уроці ви дізнаєтеся, як використовувати цю бібліотеку для надсилання простих запитів HTTP в Python.
Requests - це модуль Python, який можна використовувати для відправки всіх видів HTTP-запитів. Це проста у використанні бібліотека з безліччю функцій, починаючи від передачі параметрів в URL-адресах до відправки заголовків і перевірки SSL. У цьому уроці ви дізнаєтеся, як використовувати цю бібліотеку для надсилання простих запитів HTTP в Python.
Ви можете використовувати запити з Python версії 2.6-2.7 та 3.3-3.6. Перш ніж продовжити, ви повинні знати, що Requests є зовнішнім модулем, тому спочатку вам потрібно буде встановити його, перш ніж спробувати приклади з цього уроку. Ви можете встановити його, виконавши наступну команду в терміналі:
pip
install
requests
Після встановлення модуля ви можете перевірити, чи він успішно встановлений, імпортувавши його за допомогою цієї команди:
Якщо інсталяція пройшла успішно, ви не побачите жодних повідомлень про помилки.
Створення запиту GET
Дуже просто надіслати HTTP-запит за допомогою Requests. Спочатку ви імпортуєте модуль, а потім виконайте запит. Ось приклад:
req
=
requests.get('https://tutsplus.com/')
Вся інформація про наш запит тепер зберігається в об'єкті Response, що називається req . Наприклад, ви можете отримати кодування веб-сторінки за допомогою req.encoding . Ви також можете отримати код стану запиту, використовуючи властивість req.status_code.
req.encoding
# returns 'utf-8'
req.status_code
# returns 200
Ви можете отримати доступ до файлів cookie, надісланих сервером за допомогою req.cookies. Аналогічно ви можете отримати заголовки відповідей, використовуючи req.headers . Властивість req.headers повертає нечутливий до регістру словник заголовків відповідей. Це означає, що req.headers['Content-Length'] , req.headers['content-length'] та req.headers['CONTENT-LENGTH'] повернуть значення заголовка відповіді Content-Length .
Ви можете перевірити, чи є відповідь коректним перенаправленням HTTP, яке могло бути оброблено автоматично з використанням властивості req.is_redirect . Він повертатиме True або False на основі відповіді. Ви також можете отримати час, що минув між відправкою запиту та поверненням відповіді за допомогою властивості req.elapsed .
URL, який ви спочатку передали функції get() , може відрізнятися від кінцевої URL-адреси відповіді з низки причин, включаючи перенаправлення. Щоб побачити остаточну URL-адресу відповіді, можна використовувати властивість req.url .
req
=
requests.get('http://www.tutsplus.com/')
req.encoding
# returns 'utf-8'
req.status_code
# returns 200
req.elapsed
# returns datetime.timedelta(0, 1, 666890)
req.url
# returns 'https://tutsplus.com/'
req.headers['Content-Type']
# returns 'text/html; charset=utf-8'
Отримання всієї інформації про веб-сторінку, до якої ви звертаєтеся, приємно, але ви, швидше за все, хочете отримати доступ до фактичного контенту. Якщо контент, до якого ви звертаєтесь, є текстом, ви можете використовувати властивість req.text для доступу до нього. Потім вміст аналізується як unicode. Ви можете передати кодування, за допомогою якого можна декодувати текст за допомогою властивості req.encoding .
У разі нетекстових відповідей ви можете отримати доступ до них в двійковій формі, використовуючи req.content . Модуль автоматично розшифровує gzip та deflate кодування передачі. Це може бути корисним, коли ви маєте справу з медіафайлами.Аналогічно, можна отримати доступ до json-закодованого контенту відповіді, якщо він існує, використовуючи req.json() .
Ви також можете отримати вихідну відповідь із сервера, використовуючи req.raw . Майте на увазі, що вам доведеться передати stream=True у запиті, щоб отримати вихідну відповідь.
Деякі файли, які ви завантажуєте з Інтернету за допомогою Requests, можуть мати величезний розмір. У таких випадках нерозумно завантажувати всю відповідь або файл на згадку відразу. Ви можете завантажити файл на шматки або фрагменти, використовуючи метод iter_content(chunk_size=1, decode_unicode=False).
Цей метод виконує ітерацію за даними відповіді у chunk_size кількість байтів одночасно. Коли в запиті заданий stream = True, цей метод не дозволить відразу зчитувати весь файл на згадку для великих відповідей. Параметр chunk_size може бути integer або None. Коли встановлено значення integer, chunk_size визначає кількість байтів, які мають бути прочитані у пам'яті.
Якщо для параметра chunk_size встановлено значення None , а для stream встановлено значення True , дані буде зчитано в міру того, як він досягне будь-якого розміру шматків. Якщо для параметра chunk_size встановлено значення None , а для stream встановлено значення False , то всі дані будуть повернуті як один шматок.
Давайте завантажимо цей образ лісу на Pixabay за допомогою модуля Requests. Ось фактичне зображення:
Це код, який вам потрібний:
Python's Requests Library (Guide)
Requests library is de facto standard for making HTTP requests in Python. Це abstracts the complexities of making requests behind a beautiful, simple API that you can focus on interacting with services and consuming data in your application.
Через цей літературу, ви можете скористатися деякими найбільш широкими характеристиками, що Requests є для того, щоб добре, як добре для customize і optimize ці особливості для різних робіт, які ви можете отримати.Ви можете вивчити, як використати В ефективному способі, як добре, як досліджувати вимоги до зовнішніх послуг від повільного впливу вашого застосування.
In this tutorial, you’ll learn how to:
- Make requests using the most common HTTP methods
- Customize ваші потреби' headers and data using the query string and message body
- Inspect data from your requests and responses
- Make authenticated requests
- Configure ваші запитання до help prevent your application from backing up or slowing down
Для більшого досвіду роботи через цей tutorial, ви повинні мати основний загальний знання HTTP. Що сідник, ви мусите бути можливим до того, щоб протягом тривалого часу без нього.
У upcoming sections, ви можете дізнатися, що ви можете налаштувати і використовувати відповіді в вашому застосуванні. Якщо ви збираєтеся грати з code examples, що ви бачите в цій літературі, як добре, як деякі додаткові ones, то ви можете download the code examples and work with them locally:
Get Your Code: Натисніть тут, щоб завантажити безкоштовний текстовий код, який ви показуєте, як використовувати Python's Requests library.
Take the Quiz: Test your knowledge with our interactive “HTTP Requests З “requests” Library” quiz. You'll receive a score upon completion help you track your learning progress: