Um bot em python que faz o download de sequências em XML de alguns arbovírus (dengue todos os tipos, chikungunya e zika) retiradas do banco de dados Genbank, usando o Chrome como navegador padrão
Para usuários de Linux sem o Chrome instalado, acessem aqui um simples tutorial
-
Dentro da pasta do projeto, rodar no terminal:
python3 -m venv "nome do ambiente virtual"
-
Para ativar o ambiente virtual:
-
Linux:
source "nome do ambiente virtual"/bin/activate
-
Windows:
"nome do ambiente virtual"\Scripts\activate.bat
-
Dentro da pasta do projeto, rodar no terminal:
pip install -r requirements.txt
No caso de problemas com o diretório de destino do arquivo com as sequências virais baixadas, ou com erro do driver do tipo:
OSError: [Errno 8] Exec format error: /.../.wdm/drivers/chromedriver/.../THIRD_PARTY_NOTICES.chromedriver'
algumas alternativas são:
-
Desinstalar o webdriver-manager:
pip unistall webdriver-manager
-
Limpar o cache criado pela biblioteca:
-
Linux:
rm -rf ~/.wdm
-
Windows:
rd /s /q C:\Users\"SeuUsuario"\.wdm
-
-
Reinstalar o webdriver-manager:
pip install webdriver-manager
pip install --upgrade webdriver_manager
-
(na root do seu sistema Linux) navegar até o diretório do webdriver-manager:
cd /home/seuUsuario/.wdm/
-
se quiser visualizar o conteúdo da pasta:
ls
-
se quiser visualizar o arquivo antes de editar:
cat drivers.json
-
para editar o arquivo usando o ambiente do nano:
nano drivers.json
-
no ambiente do nano, apagar a entrada referente ao último uso do chromedriver, que provavelmente terá no fim do seu conteúdo algo como:
/THIRD_PARTY_NOTICES.chromedriver
-
para salvar no nano:
Ctrl + O
,Enter
,Ctrl + X
-
visualize novamente o arquivo para verificar alterações feitas com o comando do
cat
Muito comum: fatores como velocidade e estabilidade de internet - o download provavelmente vais er interrompido
Caso não seja a internet, a possível melhor solução para esse problema é aumentar o sleep_time
em milissegundos. O que pode ser feito de 2 formas:
-
Na linha 22 do arquivo
main.py
=> melhor para testes rápidos -
Na função
arbov_time()
do arquivodata_handling.py
, onde osleep_time
foi definido de acordo com os arbovírus que possuiam o maior número de sequências
Atenção:
Caso você identifique uma melhor lógica para a função de definição desses tempos por arbovírus, crie uma PULL REQUEST para que o merge com a main possa ser feito.