Skip to content

democlitos/crawler_backend

Repository files navigation

Crawler Backend

Crawler Backend é utilizado para realizar consulta de frases no site https://quotes.toscrape.com.

Dependências

  • Ruby (3.1.1)
  • Rails (6.0.4)
  • bundler (2.3.7)
  • mongodb (5.0.6)

Como utilizar

Na pasta raiz do projeto, execute bundle install para instalar as dependências. Em seguida, adicione um arquivo .env com o seguinte código:

export ACCESS_TOKEN=MEU_TOKEN_DE_ACESSO

Onde MEU_TOKEN_DE_ACESSO é um token seguro gerado por você. Por exemplo, usando SecureRandom:

SecureRandom.urlsafe_base64(32)

Em seguida, execute rails s para iniciar o servidor. Para fazer requisições para o servidor, é possível utilizar o arquivo api_requests.http junto com o Rest client, ou utilizar um serviço como o Postman.


O endpoint para fazer requisições ao servidor é: GET {{URL_BASE}}/quotes/:searh_tag


Sobre a solução adotada

Foi utilizado um único documento (Quotes), com dois atributos: tag (string, indexada para propósito de consulta) e content (Hash). O crawler utiliza nokogiri pra percorrer o documento. Basicamente, a action show do quotes_controller dará um find_by na search_tag informada. Caso ainda não exista, será criado um novo registro do documento Quotes passando a tag como argumento. Então um callback executado em um before_create irá pegar os dados no site de citações e converter para o formato:

{ quotes: [
  {
    quote: 'frase',
    author: 'nome do autor',
    author_about: 'link para perfil do autor',
    tags: ['tag1', 'tag2']
   }
 ]}

e salvando-o na coluna content.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published