Skip to content

Pedrohs1771/Web-scrapper-providers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Site2API Studio — by Pedrohs

Site2API Studio é uma ferramenta gratuita e self-hosted para transformar sites públicos ou autorizados em contratos provider.json testáveis, com playground web, captura de DOM, descoberta de endpoints XHR/fetch, geração de API local e análise assistida por IA.

Criado por Pedrohs.

Uso correto: auditoria, prototipagem, integração, catalogação e automação em sites onde você tem autorização ou onde o conteúdo é público e permitido. O projeto não é feito para bypass de login, DRM, paywall, CAPTCHA, Cloudflare, anti-bot, autenticação ou restrições de acesso.

O que ele faz

Cole uma URL, descreva o objetivo e o motor tenta gerar um contrato reutilizável:

search(q)        -> lista resultados encontrados
items/detail     -> abre o melhor resultado e extrai detalhes relacionados
resolve(resource) -> resolve recursos visíveis quando autorizados e expostos normalmente
provider.json    -> contrato auditável
api.py           -> cliente Python gerado para testar o fluxo

Capacidades principais:

  • Playground web com FastAPI + frontend estático.
  • Geração de provider.json, api.json, gold_contract.json e api.py.
  • Captura opcional com Playwright para páginas dinâmicas.
  • Sniffing semântico de XHR/fetch/JSON quando o navegador autorizado carrega a página.
  • Runtime local para testar search, episodes/items, resolve e final.
  • Rate limit por IP para deploy público.
  • Bloqueio básico de hosts privados/localhost para reduzir risco de SSRF.
  • Integração opcional com OpenRouter, OpenAI ou Groq.
  • Exemplo local autorizado em examples/authorized_site.

Instalação local

python -m venv .venv
source .venv/bin/activate
pip install -e '.[web,dev]'

Para usar o modo dinâmico com navegador:

python -m playwright install chromium

Rodar o Studio web

cp .env.example .env
python web_api.py

Abra:

http://127.0.0.1:8789

Swagger/OpenAPI:

http://127.0.0.1:8789/docs

Rodar pela CLI

Teste com o mock autorizado incluído:

python auto_provider.py "file://$PWD/examples/authorized_site/" \
  --query Demo \
  --authorized-final \
  --out outputs/mock

Subir a API gerada para esse provider:

python provider_api.py outputs/mock/provider.json --port 8789

Testar:

curl "http://127.0.0.1:8789/health"
curl "http://127.0.0.1:8789/provider.json"
curl "http://127.0.0.1:8789/search?q=Demo"

Variáveis de ambiente

Configure pelo .env ou painel da hospedagem:

HOST=0.0.0.0
PORT=8789
ADMIN_USER=admin
ADMIN_PASSWORD=troque-essa-senha
MASTER_KEY=troque-essa-master-key
JWT_SECRET=troque-esse-jwt-secret
MAPPER_DATA_DIR=./data
FREE_IP_LIMIT=12
REVIEW_IP_LIMIT=50
USAGE_WINDOW_SECONDS=7200
MAX_CONCURRENT_COMPILES=1
AI_PROVIDER=openrouter
AI_MODEL=google/gemini-2.0-flash-001
OPENROUTER_API_KEY=
OPENAI_API_KEY=
GROQ_API_KEY=
DISCORD_WEBHOOK_URL=

Nunca suba .env, keys.txt, data/, outputs/ ou logs reais para GitHub.

Deploy na VertraCloud

Arquivos incluídos:

  • Procfile
  • start.sh
  • vertracloud.config
  • DEPLOY_VERTRACLOUD.md

Comando padrão:

bash start.sh

Em produção, defina pelo painel da VertraCloud pelo menos:

ADMIN_PASSWORD=uma-senha-forte
MASTER_KEY=uma-chave-longa-aleatoria
JWT_SECRET=outra-chave-longa-aleatoria

Testes

PYTHONPATH=. python -m unittest discover -s tests -v

Alguns testes de browser podem exigir Playwright instalado. Para ambiente sem navegador, rode os testes unitários principais primeiro e instale Chromium depois.

Estrutura

provider_mapper/      núcleo do mapper, runtime, compilador e webapp
web/                  frontend estático do Studio
examples/             site local autorizado para testes
/tests                testes unitários e integração local
api.py                wrapper/atalho legado
web_api.py            entrada do servidor web
provider_api.py       API local para um provider.json gerado

Política de uso

Este repositório é para uso legítimo em sites públicos/autorizados. Não use para copiar conteúdo protegido, contornar segurança, extrair recursos privados, quebrar termos de serviço ou acessar dados sem permissão.

Autor

Feito por Pedrohs.

GitHub: Pedrohs1771

About

a tool created to map a website's endpoints up to the player and return everything in a JSON

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors