Requests — библиотека Python, которая элегантно и просто выполняет HTTP-запросы. Теперь не нужно осваивать urllib2 с излишне сложными программными интерфейсами.
Вот как выглядит HTTP-запрос с авторизацией с помощью requests:
Для сравнения, вот HTTP-запрос urllib2:
Библиотека requests позволяет отправлять HTTP-запросы HEAD, GET, POST, PUT, PATCH и DELETE. Все заголовки и параметры добавляются очень просто, также и обработка ответов сервера. Разумеется, requests работает на базе urllib2, но берёт на себя всю сложную работу.
Исходный код requests на github, под открытой лицензией ISC
Документация
Requests API
Вот как выглядит HTTP-запрос с авторизацией с помощью requests:
>>> r = requests.get('https://api.github.com', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.headers['content-type']
'application/json'
Для сравнения, вот HTTP-запрос urllib2:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib2
gh_url = 'https://api.github.com'
gh_user= 'user'
gh_pass = 'pass'
req = urllib2.Request(gh_url)
password_manager = urllib2.HTTPPasswordMgrWithDefaultRealm()
password_manager.add_password(None, gh_url, gh_user, gh_pass)
auth_manager = urllib2.HTTPBasicAuthHandler(password_manager)
opener = urllib2.build_opener(auth_manager)
urllib2.install_opener(opener)
handler = urllib2.urlopen(req)
print handler.getcode()
print handler.headers.getheader('content-type')
# ------
# 200
# 'application/json'
Библиотека requests позволяет отправлять HTTP-запросы HEAD, GET, POST, PUT, PATCH и DELETE. Все заголовки и параметры добавляются очень просто, также и обработка ответов сервера. Разумеется, requests работает на базе urllib2, но берёт на себя всю сложную работу.
Исходный код requests на github, под открытой лицензией ISC
Документация
Requests API