Augusto Pascutti

Um crawler em 5 minutos

Eu não sei se é uma prática geral mas eu gosto de ter dados guardados pra quem sabe, algum dia, dominar o mundo?!
Há muito tempo não via uma API que me desse vontade de sugar, vou mostrar o que fiz pra baixar todo conteúdo JSON de uma API pública (que não me impediu de fazer isso).

Requisitos

Já adianto que eu não fiz nenhum milagre, aqui está tudo o que precisa pra esse crawler:

O Crawler

A api em questão tem informação de quase todos os cards do Magic: The Gathering em formato JSON (por isso o MongoBD).

Um dos endpoints é http://mtgapi.com/api/v1/fetch/id/{id} onde o {id} pra mim foi um auto incremento até o infinito.

O crawler que usei consiste de uma linha, abaixo vai uma versão extendida (mais fácil de ler):

#!/bin/bash
URL="http://mtgapi.com/api/v1/fetch/id/"
for ID in {1..999}; do
    result=$(curl --get --silent -H "User-Agent: BadassBash 0.0.1 (Yep, another crawler)" "${URL}/${ID}" 2> crawler.err)
    echo $result | mongoimport localhost -d magic -c cards
done;

Powered by WPeMatico