Skip to content

MestreTM/Pitaya_Anime_Scraper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pitaya Scraper

imagem

Pitaya Scraper é uma aplicação web em Python desenvolvida para extração de URLs de embeds de vídeos e informações relacionadas de páginas de animes ou de filmes.

Recursos

  • Scraping de animes: Extrai URLs de episódios e embeds de páginas de animes.
  • Banco de Dados: Armazena resultados em um banco de dados SQLite local.
  • APIs REST: Fornece endpoints para acesso às funcionalidades.
  • Limites de Requisição: Usa Flask-Limiter para evitar abuso.
  • Caching: Implementado com Flask-Caching para otimizar o desempenho e eficiência.
  • User-Agent Rotativo: Alterna entre diferentes agentes de usuário para evitar bloqueios.
  • Execução Headless: Usa Playwright em modo headless para interações com páginas.

Tecnologias Utilizadas

  • Flask: Framework para construção de APIs web.
  • Playwright: Automação de navegadores para scraping.
  • SQLAlchemy: ORM para manipulação do banco de dados.
  • Flask-Caching: Cache para respostas frequentes.
  • Flask-Limiter: Controle de limite de requisições.
  • WebDriver Manager: Gerenciamento automático do driver Chrome.

Configuração

  1. Instale os requisitos:

    pip install -r requirements.txt
  2. Crie um arquivo configs.json com as configurações dos sites a serem scrapados. Exemplo:

    {
        "site_key": {
            "domain": "example.com",
            "url_patterns": {
                "anime_main": "regex_para_pagina_principal",
                "episode": "regex_para_episodio"
            },
            "selectors": {
                "anime_main": {
                    "episodes_section": "css_selector_para_lista_episodios"
                },
                "episode": {
                    "iframe_selectors": ["css_selector_para_iframe"]
                }
            },
            "bypass_javascript": false|true
        }
    }
    • Você tambem pode baixar o arquivo configs.json com padrões teste já configurados (pode ficar desatualizado).
  3. Bypass Javascript (opcional)

    Esta opção vai ser útil se o site alvo tenha proteção contra inspeção ou scraping/crawling. Quando ativada injeta os links das paginas em um <iframe> em modo sandbox, fazendo com que todas as proteções javascript ou redirecionamentos de páginas pararem de funcionar (obs: ele ignora os iframe_selectors e sempre vai coletar o iframe de video da página).

  • No arquivo configs.json deixe como true
    "bypass_javascript": true
  1. Inicie o servidor:

    python Pitaya_Scraper.py

Endpoints

GET /get-embed

Obtém o embed URL para um anime ou episódio.

Parâmetros:

  • url: URL da página do anime ou episódio.
  • force: opcional (true ou false), se true, força atualização, mesmo que os dados estejam no cache.
  • continue: opcional (true ou false), Se true, instrui o script a continuar de onde parou (aproveitar dados salvos) em vez de reprocessar tudo do zero.

Cabeçalhos:

  • X-API-KEY: Chave de API para autenticação.

  • Exemplo:

curl -H "X-API-KEY: 123" "http://127.0.0.1:5000/get-embed?url=https://exemplo.com/anime/principal"

POST /reload-config

Recarrega as configurações do arquivo configs.json.

  • Exemplo:
curl -X POST "http://127.0.0.1:5000/reload-config"

Observações

  • Certifique-se de que o arquivo configs.json está configurado corretamente.
  • O arquivo configs.json deve estar na pasta raiz do projeto.
  • Este projeto utiliza um banco de dados SQLite, mas pode ser adaptado para outros SGBDs.

Licença

Este projeto é distribuído sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.


o projeto ainda está em desenvolvimento. Bugs podem acontecer...

About

Um Scraper/Crawler de filmes e animes completamente modular e universal.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages