Por Luiz Miranda Cavalcante Neto

Relatório 7 – Biochaves

Luiz Miranda Cavalcante Neto

 

Olá a todos. Temos uma base, e das grandes. Todos (ou quase todos) os artistas que possuem acordes registrados no cifraclub.com.br foram capturados pelo código rastreados que comecei a desenvolver no primeiro relatório. No total foram 224.226 artistas escaneados, uma média de 8600 artistas por letra inicial. Foram 21.578 artistas começando com a letra M e a letra inicial com menos artistas foi a letra X com 653 artistas. O tamanho total dos arquivos foi de 128mb, que não parece ser muito, até você lembrar que são 128mb de arquivos .txt. Vamos aqui a alguns comentários sobre a base e um relato dos bugs do código.

 

A base

A base de dados que não tem nome (pensei agora em Biochords, mas não sei se é bom) está organizada da seguinte forma:

  • Artistas estão separados em pastas correspondentes à primeira letra do seu nome, ou a primeira letra do nome mais usado, por exemplo: Os Paralamas do Sucesso estão na pasta da letra P ao invés da letra O.
  • Cada arquivo de artista engloba todas as músicas listadas no site e essas músicas estão separadas por um char ‘\n’.
  • Os acordes estão separados por um espaço ‘ ‘.
  • Não é possível saber o nome da música que está sendo analisada.
  • Os acordes estão no tom padrão apresentado pelo site, um ajuste de tom para igualar os acordes se faz necessário.
  • Está disponível pelo link : https://goo.gl/4fH1Yc use o quanto quiser <3;

 

Os bugs

O código do crawler é bem simples, basta escrever um código que extraia uma página html em formato txt e procurar certas tags para conseguir os acordes, esse procedimento foi descrito no relatório 1. No entanto, o cifraclub não ajudou nem um pouco. Constantemente ele negava acesso às páginas por isso era necessário aguardar um pouco e re-solicitar acesso (eu fiz o código esperar 5s antes de uma nova tentativa) isso, em geral resolvia o problema de conexão. Quando, mesmo tentando outra vez, o site encrencava com o programa eu disse para o crawler simplesmente ignorar esse artista/música e pular para o próximo, assim o problema de conexão foi resolvido.

Outro problema que fazia o código parar constantemente eram os caracteres usados pelo site (ou pela biblioteca de extração html). Esses caracteres eram codificados em Unicode, enquanto a função f.write só aceita ASCII. Eu não sabia, por isso, ao sair e deixar o código rodando, perdi muito tempo que poderia ser de processamento com o código parado, para só descobrir a falha quando retornava. A solução foi converter a codificação dos caracteres. Depois disso o código rodou liso por 6 dias seguidos, e esse foi o tempo necessário para extrair a base toda.

Você fez já alguma coisa com a base toda?

 

Não, mas pretendo executar o código de mapeamento com a base toda durante esse final de semana.

 

Mas por que você não rodou durante a semana?

 

Porque eu esqueci (risos)

 

Sobre o Autor

Possui graduação em Engenharia Elétrica com habilitação em Eletrônica pela Universidade Federal de Sergipe (2014) e mestrado em Engenharia Elétrica pela Universidade Federal de Sergipe (2017). Foi professor voluntário da Universidade Federal de Sergipe no período de 2015/1 lecionando a disciplina de Circuitos Digitais. É Professor substituto de Ensino Básico, Técnico, Tecnológico e Superior do Instituto Federal de Sergipe no Campus Lagarto (IFS-Lagarto). Tem experiência na área de Engenharia Elétrica, com ênfase em Robótica e Reconhecimento de Padrões.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *