Executando verificação de segurança...
1

Ser melhor ou não vai depender de pra que você ta usando um cliente HTTP. A maior vantagem é realmente a disponibilidade de um cliente assíncrono. Mas o que significa ser assíncrono?

Vc já deve ter visto async e await no mundo python. De forma geral, enquanto algo está sendo "awaitado" ou "esperado", o fluxo do programa pode continuar. No caso de um cliente HTTP, o assincronismo permite que vc emita as requests de forma assíncrona, ou seja, enquanto uma request aguarda a resposta do servidor, seu programa pode continuar fazendo outras coisas.

Se vc pensa em raspar uma API HTTP, por exemplo, a utilização de um cliente assíncrono vai acelerar muito o processo (claro, respeitando os limites impostos pelo servidor, como por exemplo limites de throttling).

Caso vc queira explorar raspagem de API HTTP com o httpx, recomendo utilizar em conjunto o aiometer, que é basicamente um limitador de concorrência.

Um pouco de número pra quem sabe te ajudar a entender:

Imagina um servidor que demora 1 segundo pra retornar uma resposta. Imagina que vc precisa fazer 10 requests pra esse servidor.

Com o requests, vc precisaria fazer as requests uma a uma, ou seja, algo como:

import requests

for _ in range(10):
    requests.get("servidor.com.br/api")

Com isso, temos que o programa acima leva 10 segundos pra ser finalizado, visto que cada requests.get irá parar a execução do programa por 1 segundo, e somente quando receber a resposta, irá passar para a próxima instrução.

O httpx te permite, à grosso modo, enviar as 10 requests ao mesmo tempo, de forma que todas as 10 requests sejam recebidas ao mesmo tempo, ou seja, apesar da resposta demorar 1 segundo, as 10 chegarão ao mesmo tempo. Com isso, o programa irá levar 1 segundo pra ser finalizado.

No readme do repositório do aiometer tem um exemplo de como implementar a situação acima.

Carregando publicação patrocinada...