Como usar a biblioteca Requests do Python para HTTP
A biblioteca requests
é um módulo Python popular que simplifica o processo de fazer solicitações HTTP. Ela abstrai a complexidade de lidar com solicitações e respostas, facilitando a interação com serviços da web e APIs. Neste artigo, exploraremos os conceitos básicos do uso da biblioteca requests
, incluindo como enviar vários tipos de solicitações HTTP e lidar com respostas.
Instalando a biblioteca Requests
Antes de poder usar a biblioteca requests
, você precisará instalá-la. Você pode instalá-la usando pip
, o gerenciador de pacotes Python. Execute o seguinte comando no seu terminal:
pip install requests
Fazendo uma solicitação GET simples
A solicitação HTTP mais básica é uma solicitação GET, que recupera dados de um servidor. Veja como você pode usar a biblioteca requests
para fazer uma solicitação GET:
import requests
response = requests.get('https://api.github.com')
print(response.status_code)
print(response.json())
Neste exemplo, enviamos uma solicitação GET para a API do GitHub e imprimimos o código de status HTTP e o conteúdo da resposta no formato JSON.
Enviando solicitações POST
As solicitações POST são usadas para enviar dados para um servidor, como envios de formulários. Veja como enviar uma solicitação POST com a biblioteca requests
:
import requests
data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://httpbin.org/post', data=data)
print(response.status_code)
print(response.json())
Neste exemplo, enviamos uma solicitação POST com alguns dados de formulário para o serviço de teste httpbin.org e imprimimos o código de status da resposta e o conteúdo.
Manipulando Parâmetros de Consulta
Às vezes, você precisa incluir parâmetros de consulta em suas requisições. A biblioteca requests
torna isso fácil permitindo que você passe parâmetros como um dicionário:
import requests
params = {'search': 'python', 'page': 1}
response = requests.get('https://httpbin.org/get', params=params)
print(response.status_code)
print(response.url)
Neste exemplo, incluímos parâmetros de consulta em uma solicitação GET e imprimimos a URL final com os parâmetros incluídos.
Trabalhando com cabeçalhos
Talvez seja necessário incluir cabeçalhos personalizados em suas solicitações, como para autenticação ou para especificar tipos de conteúdo. Veja como adicionar cabeçalhos às suas solicitações:
import requests
headers = {'Authorization': 'Bearer YOUR_TOKEN'}
response = requests.get('https://api.github.com/user', headers=headers)
print(response.status_code)
print(response.json())
Neste exemplo, incluímos um cabeçalho de autorização na solicitação para a API do GitHub e imprimimos o código de status e o conteúdo da resposta.
Lidando com tempos limite e exceções
É importante lidar com problemas potenciais, como timeouts de rede e outras exceções. A biblioteca requests
permite que você especifique timeouts e capture exceções:
import requests
from requests.exceptions import RequestException
try:
response = requests.get('https://httpbin.org/delay/5', timeout=3)
response.raise_for_status()
print(response.status_code)
print(response.text)
except RequestException as e:
print(f'An error occurred: {e}')
Neste exemplo, definimos um tempo limite para a solicitação e capturamos quaisquer exceções que ocorram, exibindo uma mensagem de erro se algo der errado.
Conclusão
A biblioteca requests
é uma ferramenta poderosa e fácil de usar para fazer solicitações HTTP em Python. Não importa se você está recuperando dados de APIs, enviando envios de formulários ou manipulando cabeçalhos personalizados, a biblioteca requests
facilita a execução dessas tarefas com apenas algumas linhas de código. Ao dominar os conceitos básicos abordados neste artigo, você estará bem equipado para interagir com serviços da web e APIs em seus projetos Python.