O que é a biblioteca requests e para que serve
A biblioteca requests é uma das mais populares e fáceis de usar do Python para realizar requisições HTTP. Ela oferece uma interface simples para enviar requisições GET, POST, PUT, DELETE e outros tipos de requisições HTTP com o mínimo de código.
Principais vantagens da biblioteca requests
- Sintaxe simples e API intuitiva
- Suporte nativo a sessões e gerenciamento de cookies
- Processamento automático de JSON e formulários
- Suporte a diferentes métodos de autenticação
- Possibilidade de trabalhar com servidores proxy
- Documentação completa em português e inglês
- Comunidade ativa de desenvolvedores
Instalação da biblioteca requests
A instalação da biblioteca requests é feita através do gerenciador de pacotes pip. O processo de instalação depende da versão do Python que você está usando.
Instalação padrão
pip install requests
Instalação para Python 3
Se houver várias versões do Python instaladas no sistema, use o comando pip3 para instalar no ambiente Python 3:
pip3 install requests
Verificando a instalação
Após a instalação, você pode verificar se tudo deu certo importando a biblioteca no console do Python:
import requests
print(requests.__version__)
Fundamentos das requisições GET
Requisições GET são usadas para obter dados de um servidor web. Este é o tipo mais comum de requisição HTTP no desenvolvimento web.
Requisição GET simples
import requests
response = requests.get('https://api.github.com')
print(response.status_code) # Status da resposta (200 - OK)
print(response.text) # Corpo da resposta como string
Analisando a resposta do servidor
Ao trabalhar com requisições GET, é importante analisar corretamente a resposta recebida. O objeto response contém vários atributos úteis:
status_code- código HTTP da respostatext- conteúdo da resposta em formato textocontent- conteúdo da resposta em bytesheaders- cabeçalhos da respostaurl- URL final da requisição
Trabalhando com parâmetros de requisição
Os parâmetros da URL podem ser passados através de um dicionário, o que torna o código mais legível e fácil de modificar:
params = {
'q': 'python programming',
'page': 2,
'limit': 50
}
response = requests.get('https://www.example.com/search', params=params)
print(response.url) # Mostra a URL gerada com os parâmetros
Requisições POST e envio de dados para o servidor
Requisições POST são usadas para enviar dados para o servidor, como no preenchimento de formulários ou criação de novos registros no banco de dados.
Enviando dados de formulário
data = {
'username': 'admin',
'password': '12345',
'email': 'admin@example.com'
}
response = requests.post('https://httpbin.org/post', data=data)
print(response.text)
Enviando dados JSON
Ao trabalhar com APIs modernas, é comum enviar dados no formato JSON. A biblioteca requests define automaticamente o Content-Type correto ao usar o parâmetro json:
import json
data = {
'name': 'João Silva',
'age': 30,
'city': 'São Paulo'
}
response = requests.post('https://httpbin.org/post', json=data)
result = response.json() # Conversão automática da resposta para JSON
print(result)
Diferenças entre os parâmetros data e json
- O parâmetro
dataenvia os dados como formulário (application/x-www-form-urlencoded) - O parâmetro
jsonenvia os dados como JSON (application/json)