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

Criei um scraper do Perplexity em Python com suporte a todas as funções da versão web (até as escondidas)

A API oficial do Perplexity é excelente em estabilidade, mas tem dois grandes defeitos: é paga à parte e limita você aos modelos proprietários deles (família "Sonar").

Se você já assina o Perplexity Pro ou Max, é frustrante: você tem acesso a modelos incríveis como Claude Sonnet/Opus 4.5, Gemini 3 Pro e GPT-5.2 no navegador, mas não consegue usá-los via código sem pagar uma fortuna nas APIs originais de cada fornecedor.

Para resolver isso, criei o Perplexity WebUI Scraper.

Minha meta foi simples: desbloquear o acesso programático a TUDO que a conta paga oferece na web.

O Pulo do Gato (The Catch)

Diferente da API oficial, este projeto funciona como uma "ponte": ele simula um navegador real para que você possa consumir via código os modelos que a API deles não vende.

  1. Sua Assinatura, Suas Regras: Se sua conta tem acesso ao Claude Sonnet 4.5 ou Gemini 3 Pro, meu scraper permite que você os use em seus scripts Python. Nada de ficar preso ao "Sonar".
  2. Modelos "Thinking" via API: Sabe os novos modelos de raciocínio profundo que aparecem no dropdown do site? Agora você pode integrá-los em suas automações.
  3. Contexto Real: Suporte nativo a Upload de Arquivos (PDF, imagens, TXT) enviando para o S3 interno deles e seleção de focos de busca (Academic, YouTube, Reddit).

Engenharia "Anti-Bot"

Para isso funcionar de forma estável, não bastava fazer requisições HTTP simples. Implementei:

  • Impersonation Avançado: Uso de curl-cffi para simular a impressão digital (TLS/JA3) de um Chrome legítimo, evitando bloqueios do Cloudflare.
  • CLI de Autenticação: Uma ferramenta que automatiza o login chato (Magic Link/Email) e salva seu token de sessão pronto para uso.

Show me the code

O projeto é 100% tipado, assíncrono e feito para quem gosta de código limpo.

from perplexity_webui_scraper import Perplexity, Models

# Usa sua sessão real para acessar os modelos pagos
client = Perplexity("seu_token_aqui")
chat = client.create_conversation(
    source_focus=[SourceFocus.WEB, SourceFocus.ACADEMIC]
)

# Exemplo: usando o Claude Sonnet 4.5 (que não tem na API oficial) via código
response = chat.ask(
    query="Analise este edital e encontre as pegadinhas.",
    model=Models.CLAUDE_45_SONNET_THINKING,
    files=["./edital_concurso.pdf"]
)

print(response.answer)
# Retorna streaming (opcional), citações e fontes estruturadas
Carregando publicação patrocinada...
1
1

Excelente ideia! Porém, "Sua Assinatura, Suas Regras" nâo funciona bem assim.
Geralmente, o acesso programatico à API/backend usada na UI nao é permitido pelos termos do serviço, e eles podem banir a sua conta.