Instalação e configuração da biblioteca requests
A biblioteca requests não faz parte da instalação padrão do Python, portanto é necessário instalá-la separadamente. Execute o seguinte comando no terminal:
pip install requests
Para verificar se a instalação foi bem-sucedida, execute:
import requests
print(requests.__version__)
O que são requisições HTTP e por que usar a biblioteca requests
HTTP (HyperText Transfer Protocol) é o protocolo de transferência de dados entre cliente e servidor. A biblioteca requests é uma biblioteca externa do Python que simplifica drasticamente o envio de requisições HTTP em comparação com o módulo nativo urllib.
Principais vantagens da biblioteca requests
- Simplicidade de uso e código mais legível
- Suporte a todos os métodos HTTP (GET, POST, PUT, DELETE, PATCH)
- Trabalho automático com dados JSON
- Suporte nativo a cookies e sessões
- Configuração flexível de cabeçalhos e parâmetros
- Tratamento de erros e exceções
- Suporte a servidores proxy e certificados SSL
Principais métodos HTTP com exemplos práticos
Requisições GET: obtendo dados
O método GET é usado para obter dados do servidor sem alterá-los.
import requests
# Requisição GET simples
response = requests.get('https://api.github.com')
print(response.status_code) # 200
print(response.text) # Conteúdo da resposta
Enviando parâmetros em uma requisição GET
# Enviando parâmetros através de um dicionário
params = {
'q': 'python',
'sort': 'stars',
'order': 'desc',
'page': 1
}
response = requests.get('https://api.github.com/search/repositories', params=params)
print(response.url) # Verificando a URL final com os parâmetros
Requisições POST: enviando dados
O método POST é usado para enviar dados ao servidor e criar novos recursos.
# Requisição POST com dados de formulário
data = {
'username': 'usuario_teste',
'password': 'senha_segura',
'email': 'teste@exemplo.com'
}
response = requests.post('https://httpbin.org/post', data=data)
print(response.json())
Requisição POST com dados JSON
# Enviando dados JSON
json_data = {
'title': 'Novo post',
'body': 'Conteúdo do post',
'userId': 1
}
response = requests.post(
'https://jsonplaceholder.typicode.com/posts',
json=json_data
)
print(response.json())
Requisições PUT: atualizando dados
O método PUT é usado para atualizar completamente recursos existentes.
update_data = {
'id': 1,
'title': 'Título atualizado',
'body': 'Novo conteúdo',
'userId': 1
}
response = requests.put(
'https://jsonplaceholder.typicode.com/posts/1',
json=update_data
)
print(f"Status: {response.status_code}")
print(response.json())
Requisições PATCH: atualização parcial
O método PATCH é usado para atualizar parcialmente um recurso.
patch_data = {'title': 'Título parcialmente atualizado'}
response = requests.patch(
'https://jsonplaceholder.typicode.com/posts/1',
json=patch_data
)
print(response.json())
Requisições DELETE: removendo dados
O método DELETE é usado para remover recursos do servidor.
response = requests.delete('https://jsonplaceholder.typicode.com/posts/1')
print(f"Status da exclusão: {response.status_code}")
Trabalhando com cabeçalhos HTTP
Os cabeçalhos contêm metadados sobre a requisição e permitem enviar informações adicionais ao servidor.
headers = {
'User-Agent': 'Mozilla