Desenvolvido por daijro, o hrequests (human requests) foi projetado para ser um substituto simples, porém configurável, para a biblioteca requests do Python. Ele traz uma série de novos recursos, mantendo a facilidade de uso.
Para scraping em produção, combine técnicas TLS com bypass de anti-bot: comece com O que é impressão digital TLS.
Principais Recursos:
- Transição Perfeita: Alterne sem esforço entre requisições HTTP e navegação headless.
- Alto Desempenho: Utiliza gevent para concorrência sem necessidade de monkey-patching.
- Análise Avançada: Vem com um parser HTML rápido e integrado.
- Renderização JavaScript: Suporta totalmente a renderização JS, crucial para web scraping moderno.
- Suporte a HTTP/2: Mantém-se atualizado com os protocolos web mais recentes.
- Impressões Digitais TLS de Navegadores: Imitam o tráfego real do navegador para maior discrição.
- Manipulação Eficiente de JSON: Até 10 vezes mais rápido na serialização de JSON em comparação com a biblioteca padrão.
- Navegação com Navegador: Automação de navegador simplificada, com simulações completas de interações humanas.
Fácil de instalar via pip: pip install -U hrequests[all] e python -m playwright install firefox chromium.
Uso e Documentação
A documentação abrangente disponível no Gitbook detalha tudo, desde requisições GET simples até tarefas complexas de automação de navegador. O módulo suporta métodos HTTP padrão como GET, POST, PUT, DELETE, HEAD, OPTIONS e PATCH, com respostas muito semelhantes às da biblioteca requests original.
Requisições Concorrentes e Preguiçosas
O hrequests introduz conceitos como requisições nohup para operações em segundo plano e concorrência baseada em arrays para lidar com múltiplas requisições simultaneamente.
Análise de HTML e Automação de Navegador
Utilizando PyQuery para scraping eficiente de HTML, o hrequests permite análise detalhada e interação com o conteúdo da web. A automação de navegador suporta navegadores headless e gráficos, com extensões para Chrome e Firefox.
Tratamento de Exceções
A biblioteca oferece métodos robustos para lidar com exceções e timeouts, garantindo a execução confiável de scripts.
Comunidade e Contribuições
Mantido pela comunidade Python, o hrequests é um testemunho do desenvolvimento colaborativo. Contribuições e feedback são sempre bem-vindos, promovendo melhorias contínuas.
Licenciamento e Suporte
Licenciado sob a Apache Software License (Apache-2.0), o hrequests garante compatibilidade com uma ampla gama de projetos. São suportadas versões do Python de 3.7 a 3.11.
Em conclusão, o hrequests é uma ferramenta poderosa para desenvolvedores Python, oferecendo recursos aprimorados e capacidades para requisições web e scraping. Seu design amigável, combinado com funcionalidades avançadas, o torna uma excelente escolha tanto para iniciantes quanto para profissionais experientes em desenvolvimento web com Python.