Recentemente eu venho trabalhando com um projeto de raspagem de dados (web scraping) que trabalha com uma pequena quantidade de dados, tão pequena que eu poderia usar tranquilamente os recursos gratuitos dos serviços de cloud disponíveis, mas eu não gosto de correr o risco de ser cobrada por um projeto pessoal. Para resolver isso eu estive procurando uma alternativa gratuita em que eu também possa compartilhar os dados e que rode com o Github Actions.
Caso queira checar o repositório que contém o código discutido neste post, siga este link.
Eu vou ilustrar como integrar o banco de dados SQLite com o Github Actions usando Python, mas caso você saiba como modificar um arquivo usando outra linguagem de programação esse post ainda é relevante para você.
Escrevendo seu Gerador de Dados/Scrapper
Primeiro, seu projeto precisa estar em um repositório, no meu caso estou usando o Github. Eu escrevi um código Python que faz uma raspagem de dados numa página web e salva esses dados num banco SQLite, nesse exemplo vou ilustrar isso com um código mais simples.
|
|
Configurando o Workflow
Se você rodar o código acima diversas vezes numa máquina local ele irá funcionar, mas você irá notar que no Github ele não irá persistir as mudanças, isso é porque é necessário fazer um commit. Para fazer isso você precisará criar um workflow, no seu repositório crie um arquivo yaml na pasta .github/workflow
. Esse arquivo será o seu workflow, você pode escolher qualquer nome que quiser.
|
|
Não se esqueça de habilitar as permissões do seu workflow, no seu repositório navegue até Settings > Actions > General
, e selecione Read and write permissions.
Conclusão
Essa pode ser uma boa alternativa gratuita caso você queira ser capaz de compartilhar os dados que você está coletando ou gerando. Mas não se esqueça de ficar atento nas limitações do Github quando usando a versão free. Veja os limites de uso atuais no site oficial deles.
Caso queira ver uma aplicação real do que foi discutido aqui, você pode checar esse respositório. Onde eu implementei um scrapper mensal que coleta os dados e os disponibiliza num banco SQLite para todos.