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

Duvida: WebScraping

Fala Pessoal, Eu estou fazendo um scraper de um site de animes, eu fiz tudo que preciso exceto 1 coisa,
Eu preciso pegar o link do source do video porem o site usa o jw-player para poder mostrar o video, eu tentei usando JsDom.

Mas não obtive sucesso, uma solução foi usar o puppeteer.
Mas ele é muito lento para fazer o processo, alguém tem uma ideia de como eu posso fazer o scraper e conseguir pegar o link de video do site sem usar algo como puppeteer para fazer isso?

Caso ajude:

Carregando publicação patrocinada...
4

Você pode usar o Cheerio com o axios. Ele tem base no Jquery, então, fica bem fácil a manipulação dos dados que você deseja obter. Ah, o jw-player não deixa você colocar o link do vídeo em outro site e nem abrir o vídeo em uma nova aba... o máximo que ele faz -- até onde eu saiba -- é fazer o download do vídeo quando tenta abrir em outra aba.

3

Opa, Obrigado pela dica Cheerio é massa de mais! estou usando JSDom ele é parecido com DOM do console aqui do browser mesmo, é muito massa.
Sobre essa parada do JWPlayer é bem chato mesmo de conseguir pegar os valores dele, vou tentar, ate eu conseguir!

3

Jack, ótima pergunta e web scraping é um tema que eu acho sensacional! Já fiz algumas boas coisas no passado e não sei porque, é uma sensação muito boa quando você consegue extrair um dado limpo de um HTML sujo.

Sobre sua dúvida, primeiro lugar se certifique que você pode fazer o que está fazendo, mas isso é com você.

Em segundo lugar, estava analisando o HTML e o negócio está bem amarrado, não achei nada fácil conseguir extrair o link final daquele HTML, ainda mais enviando todos os tokens necessários. De qualquer forma, achei interessante esse script aqui:

<script>
    // TOOLTIP :D
    $(function () {
        $('[data-toggle="tooltip"]').tooltip()
    });

    var disqus_config = function () {
        this.page.url = "https://betteranime.net/anime/legendado/made-in-abyss-retsujitsu-no-ougonkyou/episodio-05";
        this.page.identifier = "route/anime/legendado/made-in-abyss-retsujitsu-no-ougonkyou/episodio-05";
        this.page.title = "Made in Abyss: Retsujitsu no Ougonkyou - Episódio 05";
    };

    (function() {  // DON'T EDIT BELOW THIS LINE
        var d = document, s = d.createElement('script');

        s.src = 'https://betteranime.disqus.com/embed.js';

        s.setAttribute('data-timestamp', +new Date());
        (d.head || d.body).appendChild(s);
    })();

    function isEmpty(str) {
        return (!str || str.length === 0 );
    }

        function changePlayerResolution(quality) {
                let qualityString = [];
                        qualityString["480p"] = "bWIq5xEBeNmMaHKCa/USITVBLAN0Trj4C2N23vq9mvq0OcFjPeYIYeZ0PU1dJJEKYcOClkDn246ET5rP0YZN/CveSliD86FNzj19gVHCQmzfldIDfQ==";
                                qualityString["720p"] = "bWIq5xEBeNmMaHKCa/USITVBLAN0Trj4C2N23vq9gfq0OcFjPeYIYeZ0PU1dJJEKYcOClkDn246ET5rP0YZN/CveSliD86FNzj19gVHCQmzfldIDfQ==";
                                qualityString["1080p"] = "bWIq5xEBeNmMaHKCa/USITVBLAN0Trj4C2N23vq9j+v6eatOb5VLbPJZOVpKdM5bI9aLmkDo246BQ4fT0YdB4j2OEATI5LxOhXUpxEXIQ2vdl9MLNIEQ52U=";
                                                const url="https://betteranime.net/changePlayer",info=qualityString[quality];$.ajax({method:"POST",data:{_token:"Hr0UbuXmSUSQDkScZCwiwjXUzvnmdGMQvx4BGEZv",info:info},url:url}).done(function(t){document.getElementById("playerFrame").src=t.frameLink,$("#qualitiesColumn button.active").removeClass("active"),$(`#quality${quality}`).addClass("active")});
    }
</script>

Veja que o método changePlayerResolution() possui algumas informações interessantes para você continuar a investigação.

3

Opa, Obrigada pela ajuda Filipe!
Web Scraping é massa de mais, sou apaixonado nisso, eu entendo a sensação de conseguir os dados de uma página como você disse, muito delicinha.

Bem Vou ver como eu posso montar algo usando essa função que você me mandou, novamente valeu pela ajuda, eu tava travado nessa parte, abraço!

3