Como fazer requisições web com Python? Guia prático

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

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 resposta
  • text - conteúdo da resposta em formato texto
  • content - conteúdo da resposta em bytes
  • headers - cabeçalhos da resposta
  • url - 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 data envia os dados como formulário (application/x-www-form-urlencoded)
  • O parâmetro json envia os dados como JSON (application/json)

Blogs

Book Recommendations