Python модуль requests установить

Использование библиотеки Requests в Python

Для начала давайте разберемся, что же вообще такое библиотека Requests.

Requests — это HTTP-библиотека, написанная на Python (под лицензией Apache2). Она спроектирована для взаимодействия людей с эим языком. Это означает, что вам не нужно вручную добавлять строки запроса в URL-адреса или заносить данные в форму для POST -запроса. Если это кажется вам бессмысленным, не волнуйтесь. В нужное время все прояснится.

Что же делает библиотека Requests?

Библиотека Requests дает вам возможность посылать HTTP/1.1-запросы, используя Python. С ее помощью вы можете добавлять контент, например заголовки, формы, многокомпонентные файлы и параметры, используя только простые библиотеки Python. Также вы можете получать доступ к таким данным.

В программировании библиотека — это набор или, точнее сказать, предварительно настроенный набор подпрограмм, функций и операций, которые в дальнейшем может использовать ваша программа. Эти элементы часто называют модулями, которые хранятся в объектном формате.

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

Читайте также:  Формы

Таким образом, о модулях можно думать как о неких шаблонах кода.

Повторимся еще раз, Requests — это библиотека языка Python.

Как установить Requests

Сразу сообщим вам хорошую новость: существует множество способов для установки Requests. С полным списком можно ознакомиться в официальной документации библиотеки Requests.

Вы можете использовать pip, easy_install или tarball.

Если вам нужен исходный код, вы можете найти его на GitHub.

Мы для установки библиотеки воспользуемся менеджером pip.

В интерпретаторе Python введите следующую команду:

Импортирование модуля Requests

Для работы с библиотекой Requests в Python вам необходимо импортировать соответствующий модуль. Вы можете это сделать, просто поместив следующий код в начало вашей программы:

Разумеется, предварительно этот модуль должен быть установлен и доступен для интерпретатора.

Делаем запрос

Когда вы пингуете веб-сайт или портал для получения информации, то это как раз и называется созданием запроса.

Для получения веб-страницы вам нужно написать что-то в таком духе:

r = requests.get(‘https://github.com/timeline.json’)

Работаем с кодом ответа

Перед тем как вы будете что-то делать с веб-сайтом или URL, хорошей идеей будет проверить код ответа, который вернул вам сервер. Это можно сделать следующим образом:

r = requests.get('https://github.com/timeline.json') r.status_code >>200 r.status_code == requests.codes.ok >>> True requests.codes['temporary_redirect'] >>> 307 requests.codes.teapot >>> 418 requests.codes['o/'] >>> 200

Получаем содержимое страницы

После того как сервер вам ответил, вы можете получить нужный вам контент. Это также делается при помощи функции get библиотеки Requests.

import requests r = requests.get('https://github.com/timeline.json') print(r.text) # Библиотека Requests также имеет встроенный JSON-декодер на # тот случай, если вам понадобятся данные JSON import requests r = requests.get('https://github.com/timeline.json') print(r.json)

Работаем с заголовками

Используя словари Python, вы можете просмотреть заголовки ответа сервера. Особенностью работы библиотеки Requests является то, что для получения доступа к заголовкам вы можете использовать в ключах словаря как заглавные, так и строчные буквы.

Если вызываемого заголовка нет, будет возвращено значение None .

r.headers < 'status': '200 OK', 'content-encoding': 'gzip', 'transfer-encoding': 'chunked', 'connection': 'close', 'server': 'nginx/1.0.4', 'x-runtime': '148ms', 'etag': '"e1ca502697e5c9317743dc078f67693f"', 'content-type': 'application/json; charset=utf-8' >r.headers['Content-Type'] >>>'application/json; charset=utf-8' r.headers.get('content-type') >>>'application/json; charset=utf-8' r.headers['X-Random'] >>>None # Получаем заголовки данного URL resp = requests.head("http://www.google.com") print resp.status_code, resp.text, resp.headers

Кодирование

Библиотека Requests автоматически декодирует любой контент, извлеченный из сервера. Хотя большинство наборов символов Unicode в любом случае легко декодируются.

Когда вы делаете запрос к серверу, библиотека Requests делает обоснованное предположение о кодировке ответа. Это делается на основании заголовков HTTP. Предполагаемая кодировка будет использоваться при доступе к файлу r.text .

С помощью этого файла вы можете определить, какую кодировку использует библиотека Requests, и при необходимости изменить ее. Это возможно благодаря атрибуту r.encoding , который вы найдете в файле.

Когда вы измените значение кодировки, в дальнейшем библиотека Requests при вызове вами r.text будет использовать новый тип кодировки.

print(r.encoding) >> utf-8 >>> r.encoding = ‘ISO-8859-1’

Пользовательские заголовки

Если вы хотите добавить пользовательские заголовки в HTTP-запрос, вы должны передать их через словарь в параметр заголовков.

import json url = 'https://api.github.com/some/endpoint' payload = headers = r = requests.post(url, data=json.dumps(payload), headers=headers)

Переадресация и история

Библиотека Requests автоматически поддерживает переадресацию при выполнении команд GET и OPTION .

Например, GitHub из соображений безопасности автотоматически переадресует все HTTP -запросы на HTTPS .

Вы можете отслеживать статус переадресации при помощи метода history , который реализован для объекта response .

r = requests.get('http://github.com') r.url >>> 'https://github.com/' r.status_code >>> 200 r.history >>> []

Осуществление POST-запроса HTTP

Также с помощью библиотеки Requests вы можете работать и с POST -запросами:

r = requests.post(http://httpbin.org/post)

Но вы также можете выполнять и другие HTTP -запросы, такие как PUT , DELETE , HEAD , и OPTIONS .

r = requests.put("http://httpbin.org/put") r = requests.delete("http://httpbin.org/delete") r = requests.head("http://httpbin.org/get") r = requests.options("http://httpbin.org/get")

При помощи этих методов можно сделать массу разных вещей. Например, при помощи следующего кода вы можете создать репозиторий GitHub:

import requests, json github_url = "https://api.github.com/user/repos" data = json.dumps() r = requests.post(github_url, data, auth=('user', '*****')) print r.json

Ошибки и исключения

Есть ряд ошибок и исколючений, с которыми вам надо ознакомиться при использовании библиотеки Requests.

  • При проблемах с сетью, например с DNS , или отказе соединения, библиотека Requests вызовет исключение ConnectionError .
  • При недопустимом ответе HTTP библиотека Requests вызвоет исключение HTTPError , но это довольно редкий случай.
  • Если время запроса истекло, возникнет исключение Timeout .
  • Когда при запросе будет превышено заранее заданное количество переадресаций, возникнет исключение TooManyRedirects .

Все исключения, вызываемые библиотекой Requests, наследуются от объекта requests.exceptions.RequestException .

Дополнительные материалы

Более подробно про билиотеку Requests вы можете почитать, пройдя по следующим ссылкам:

Источник

Installation of Requests¶

https://farm5.staticflickr.com/4230/35550376215_da1bf77a8c_k_d.jpg

This part of the documentation covers the installation of Requests. The first step to using any software package is getting it properly installed.

$ pipenv install requests¶

To install Requests, simply run this simple command in your terminal of choice:

If you don’t have pipenv installed (tisk tisk!), head over to the Pipenv website for installation instructions. Or, if you prefer to just use pip and don’t have it installed, this Python installation guide can guide you through the process.

Get the Source Code¶

Requests is actively developed on GitHub, where the code is always available.

You can either clone the public repository:

$ git clone git://github.com/requests/requests.git
$ curl -OL https://github.com/requests/requests/tarball/master # optionally, zipball is also available (for Windows users).

Once you have a copy of the source, you can embed it in your own Python package, or install it into your site-packages easily:

Requests is an elegant and simple HTTP library for Python, built for human beings. You are currently looking at the documentation of the development release.

Stay Informed

Receive updates on new releases and upcoming projects.

Other Projects

  • Open DSM-5M
  • Requests-HTML
  • howtopython.org
  • pipenv
  • pep8.org
  • httpbin.org
  • The Python Guide
  • Maya: Datetimes for Humans
  • Records: SQL for Humans
  • Legit: Git for Humans
  • Tablib: Tabular Datasets

Translations

Table of Contents

Источник

Requests

Requests is a simple, yet elegant, HTTP library.

  Requests allows you to send HTTP/1.1 requests extremely easily. There’s no need to manually add query strings to your URLs, or to form-encode your PUT & POST data — but nowadays, just use the json method!

Requests is one of the most downloaded Python packages today, pulling in around 30M downloads / week — according to GitHub, Requests is currently depended upon by 1,000,000+ repositories. You may certainly put your trust in this code.

Installing Requests and Supported Versions

Requests is available on PyPI:

 python -m pip install requests

Requests officially supports Python 3.7+.

Supported Features & Best–Practices

Requests is ready for the demands of building robust and reliable HTTP–speaking applications, for the needs of today.

  • Keep-Alive & Connection Pooling
  • International Domains and URLs
  • Sessions with Cookie Persistence
  • Browser-style TLS/SSL Verification
  • Basic & Digest Authentication
  • Familiar dict –like Cookies
  • Automatic Content Decompression and Decoding
  • Multi-part File Uploads
  • SOCKS Proxy Support
  • Connection Timeouts
  • Streaming Downloads
  • Automatic honoring of .netrc
  • Chunked HTTP Requests

API Reference and User Guide available on Read the Docs

Cloning the repository

When cloning the Requests repository, you may need to add the -c fetch.fsck.badTimezone=ignore flag to avoid an error about a bad commit (see this issue for more background):

git clone -c fetch.fsck.badTimezone https://github.com/psf/requests.git

You can also apply this setting to your global Git config:

git config --global fetch.fsck.badTimezone ignore

Источник

Оцените статью