Python requests é uma biblioteca popular que permite enviar requisições HTTP e verificar as respostas. Embora .get() seja o método mais importante do módulo, há várias outras opções disponíveis.

O que é Python requests?

Python requests é uma biblioteca padrão que permite enviar requisições HTTP dentro da linguagem de programação. Com base em uma interface de programação simples e eficaz, a biblioteca facilita a integração de recursos de terceiros. Python requests oferece diversas ferramentas para enviar requisições HTTP e obter as respostas correspondentes. Embora amplamente utilizada e recomendada, a biblioteca não faz parte da instalação padrão do Python.

Instalação e iniciação da biblioteca Python requests

Antes de instalar o Python requests, é recomendável configurar primeiro uma máquina virtual, onde você pode testar a biblioteca com segurança. Para instalar, utilize o pip. O código é o seguinte:

$ python -m pip install requests
bash

Para usar a biblioteca após a instalação, você precisa do seguinte código:

import requests
python

Funcionamento, sintaxe e métodos de Python requests

Assim como outras ferramentas similares, o Python requests envia uma requisição HTTP e, quando transmitida com sucesso, recebe uma resposta. Esta resposta é um objeto que contém todas as informações essenciais, como conteúdo, codificação e status. A sintaxe de uma request (requisição) é sempre da seguinte forma:

requests.metodo(url, **kwargs)
python
Nota

kwargs refere-se a argumentos opcionais que você pode passar para métodos como headers, files ou cookies.

Embora .get() seja o método que você mais utilizará, o Python requests oferece alguns outros. Estes são os seguintes:

  • .delete(url, **kwargs): Com .delete() você exclui um recurso específico no servidor.
  • .get(url, params=None, **kwargs): Com .get(), você solicita informações de um servidor.
  • .head(url, **kwargs): Com .head(), você solicita apenas os cabeçalhos de uma resposta do servidor.
  • .patch(url, data=None, **kwargs): Com .patch(), você modifica parcialmente um recurso, enviando apenas as alterações necessárias
  • .post(url, data=None, json=None, **kwargs): Com .post(), você envia dados para um servidor, geralmente para criar um novo recurso.
  • .put(url, data=None, **kwargs): Com .put(), você atualiza um recurso existente ou o cria, caso ainda não exista.
  • .request(method, url, **kwargs): Com .request(), você envia uma requisição HTTP personalizada, especificando o método e a URL.

Exemplo do método .get() com Python requests

A estrutura do .get() é muito simples, o que torna o Python requests uma biblioteca prática. Você só precisa do método e da URL que deseja acessar. A URL deve ser escrita entre aspas. Um exemplo de código seria:

import requests 
requests.get("https://exemplo.com")
python

Agora, você receberá uma resposta do servidor. Para exemplificar, você pode armazenar a resposta em uma variável. No nosso exemplo, ficaria assim:

import requests 
response = requests.get("https://exemplo.com")
python

Consultar códigos de status

A resposta mais simples que você recebe em uma requisição é um código de status HTTP. Ele indica se a solicitação foi bem-sucedida ou não. O código de status é composto por três dígitos e possui diversas variantes que informam sobre o andamento da solicitação. As principais categorias incluem:

  • 1XX: Contém informações informativas
  • 2XX: Indica uma solicitação bem-sucedida
  • 3XX: Informa um redirecionamento da solicitação
  • 4XX: Indica um erro causado pelo cliente
  • 5XX: Indica um erro causado pelo servidor

Os códigos de status mais conhecidos são: “200 – OK” (indicam uma solicitação bem-sucedida) e “404 – Not Found”, (ocorre quando os dados solicitados não são encontrados no servidor).

Após fazer uma requisição com Python requests, você pode consultar o status com .status_code. Para isso, use este código:

response.status_code
python

Se a solicitação for bem-sucedida, a saída será:

200
python

Para uma visualização mais clara, utilize o código a seguir:

if response.status_code == 200: 
print("A solicitação foi bem-sucedida.") 
elif response.status_code == 404: 
print("A solicitação não foi bem-sucedida.")
python

Visualizar cabeçalhos com Python requests

O cabeçalho de uma resposta HTTP contém várias informações úteis. Entre elas, estão o tipo de dado enviado, o tempo de cache e outras informações. Com a biblioteca Python requests, você pode acessar os cabeçalhos de forma simples. Para isso, primeiro faça uma requisição com .get() e depois .headers:

import requests 
response = requests.get("https://exemplo.com") 
response.headers
python

A saída será um objeto contendo os valores dos cabeçalhos. Esses valores podem ser consultados individualmente, especificando a chave correspondente. Se você quiser verificar o tipo de dado retornado, use o seguinte comando:

response.headers["content-type"]
python

Acessar Payload

O conjunto de dados enviado entre o servidor e o cliente é conhecido como “Payload”. Ele está localizado no corpo da resposta HTTP. Com response, você pode acessar essas informações. Para visualizar o conteúdo em bytes, use a seguinte instrução:

import requests
response = requests.get("https://exemplo.com") 
response.content 
type(response.content)
python

Se você quiser converter as informações coletadas em uma string, use o seguinte código:

response.text 
type(response.text)
python

Python requests usa automaticamente a codificação definida no cabeçalho da resposta. Se necessário, você pode instruir o sistema a usar outro método. Este é um exemplo de código:

response.encoding = "utf-8" 
response.text
python

Verificar progresso

Ao enviar uma requisição, o Python requests prepara o processo para evitar erros. Entre outras ações, ele verifica os cabeçalhos da requisição. Você pode acompanhar o progresso dessa verificação utilizando o atributo .request. O código a seguir mostra como fazer isso:

import requests 
response = requests.post("https://exemplo.com", json={"key": "value"}) 
print(response.request.headers["content-type"]) 
print(response.request.url) 
print(response.request.body)
python

Com esse código, você obtém informações sobre o Payload, os cabeçalhos, a URL e outros detalhes da requisição.

Autenticação com o módulo Python requests

O parâmetro auth é utilizado no Python requests para autenticar a requisição junto ao servidor. Isso permite que o servidor valide a autenticidade da requisição e controle com quem está interagindo. Para usar a autenticação, você pode aplicar o seguinte código:

import requests 
from requests.auth import HTTPBasicAuth 
response = requests.get("https://sua_pagina.com/basic-auth/user/senha",  
auth=HTTPBasicAuth("user", "senha")) 
print(response.status_code) 
print(response.request.headers["Authorization"])
python

Usar certificado SSL

O uso de um certificado SSL é geralmente recomendado para proteger os dados e evitar acessos não autorizados. O Python requests oferece essa opção por padrão. Se for necessário desativar a verificação SSL para uma requisição específica, você pode fazer isso com o seguinte código:

import requests 
requests.get("https://exemplo.com", verify=False)
python

No entanto, o Python requests exibirá um aviso ao fazer isso.

Configurar timeout no Python requests

No Python requests, você também pode definir um tempo limite para uma resposta. Por padrão, o cliente pode esperar indefinidamente por uma resposta. Se essa resposta não chegar, as requisições podem se acumular e comprometer o desempenho. O parâmetro timeout evita esse problema. No exemplo a seguir, o Python requests será configurado para cancelar a requisição após dois segundos:

requests.get("https://exemplo.com", timeout=2)
python
Dica

Implante seu site ou aplicativo diretamente via GitHub: Com o Deploy Now da IONOS, você obtém a solução ideal para aplicações Single-Page e sites estáticos. Escolha o plano adequado para suas necessidades e aproveite uma configuração mais rápida, fluxos de trabalho otimizados e um design seguro!

Este artigo foi útil?
Ir para o menu principal