Você é livre para baixar a ferramenta e usá-la para fins privados. Se você modificar este programa e quiser compartilhá-lo, faça um fork. Você deve incluir o link para o repositório original na parte superior, conforme mostrado aqui: Repositório original: [link]
O programa avançado permite controlar mais seu comportamento e editar sua configuração. Para a maioria dos usuários, o padrão é suficiente. A versão avançada do programa está dentro do diretório 'advanced_version' neste repositório.
Estou criando este aplicativo para aprender um pouco de python e usá-lo como meio de backup para download de cartão em lote. Eu tenho meu próprio complemento de navegador que escrevi em JS que funciona muito bem, mas estou trabalhando nesta solução caso meu complemento quebrado pare de funcionar. Além disso, não publicarei o código-fonte desse complemento porque ele foi feito especialmente para mim - então está um pouco quebrado, mas na medida em que não me preocupo em consertá-lo. E é assim que este projeto começa. O plano é usar o Selenium e oferecer ainda mais funcionalidades do que o complemento do navegador atual pode oferecer. O complemento funcionou clicando nos botões de download em ordem, aguardando um período de tempo codificado até que o download fosse concluído (para evitar vários downloads, já que o site não gostou disso) e, em seguida, clicando no botão próximo para ir para a próxima página e repetido . Agora quero criar outra solução que permita ao usuário criar arquivos de configuração para automatizar ainda mais o processo de download. Verei aonde isso me levará.
Já estou percebendo que escrever extensão JS para esse propósito foi super rápido, menos complicado, mas definitivamente ambas as soluções têm seus prós e contras. (provavelmente irei listá-los mais tarde)
o software está em desenvolvimento, por isso é aconselhável ler os comentários do código dentro dos arquivos .py para entender melhor seu funcionamento interno
o programa é feito para db.bepis.moe - então se você não tiver certeza de qual valor pode inserir em alguns campos -> acesse o site -> selecione o jogo -? verifique o que você pode selecionar e/ou inserir no formulário de pesquisa
Selecione o tipo de jogo
Selecione o tipo de download -> "básico" permite inserir apenas "Nome" e/ou "Tag" para pesquisar -> "avançado" - permite configurar todos os parâmetros de pesquisa disponíveis para o jogo selecionado (trabalho em andamento nesse)
Insira o valor para cada campo solicitado ou clique em “Enter” para obter o valor padrão.
Aguarde o download terminar.
A página do jogo selecionado é carregada e o formulário é preenchido pelo selênio.
Após clicar no botão de pesquisa, o programa aguarda 5 segundos para o carregamento do site.
Ele fará download do cartão a cada 5 segundos, para evitar downloads múltiplos, já que o site não gosta de downloads múltiplos. (Alguns cartões podem ter mais de 25 MB, por isso é melhor dedicar mais do que menos tempo) // Posso criar uma função que verifique se o download do cartão foi concluído do que prosseguir para o próximo cartão no futuro.
Se a página tiver menos de 24 cartões, é a última página (ou apenas uma) -> Download finalizado
Se a página tiver 24 cartões, mas o botão "Avançar" estiver desativado -> Download concluído
Se o botão estiver ativo -> alterar url e carregar página -> iniciar o download dos cartões, até que haja menos de 24 cartões na página ou o botão "Avançar" esteja desabilitado.
Alguns cartões pesam muito, até mais de 25 MB - se sua internet estiver lenta - MUDE O TEMPO DE ESPERA - entre downloads de cartões para até 20 segundos!
As funções SLEEP correspondentes no código possuem comentários, rodeados por #. Assim como mostrado abaixo:
###################################### #BELOW TIME FOR CARD TO BE DOWNLOADED# ######################################
+O problema conhecido é -> malwarebytes matará o programa se você executá-lo no PyCharm e possivelmente em qualquer outra forma. Desative-o e tente usá-lo novamente. //Gosta de matar scripts python.
para ter certeza de que o programa baixou todos os cartões você pode usar esta fórmula: ((número de páginas) - 1) * 24 + (número de cartões na última página)
para 7 páginas, quando a última contiver 4 cartas seria algo como: 6*24+4 = 148 cartas
para usuários menos avançados: não use este script para baixar 'conteúdo ao vivo' -> se alguém fizer upload de novos cartões no site e ele se enquadrar nas condições para seu download, o script não fará o download deles. Essa situação alterará a ordem dos cartões e poderá levar à omissão de alguns cartões em pesquisas muito ativas ou download duplicado. Imagine que há 30 cartões no site - 1 página de 24 cartões e 6 cartões na página 2. Você começa a baixar e nos primeiros segundos alguém carrega mais 3 cartões. A página pode suportar 24 cartas, então as últimas 3 cartas são movidas para a página 2, onde agora estão 9 cartas. Mas o script não sabe disso - o navegador tem uma página carregada antes disso. Possui a versão do site que não possui os cartões movimentados. O script muda de página para a próxima (página 2). Você baixa esses 9 cartões, incluindo 3 cartões que você já possui.