Skip to content

b2w-atech/desafio-webcrawler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

Desafio Webcrawler BIT

Sobre

O desafio consiste na implementação de um crawler que colete e armazene citações do site http://quotes.toscrape.com.

Regras

Utilizando o framework Scrapy, desenvolva uma robô que visite o site citado anteriormente, colete todas as citações exibidas nas páginas e armazene no MongoDB.

Premissas:

  1. Para cada citação, os seguintes dados devem ser coletados: citação (string), autor (dictionary) com seu nome(string) e url da sua bio (string) e tags (array).
  2. Deve utilizar o pipeline do Scrapy para salvar cada item no banco de dados.
  3. Enquanto houver paginação, o crawler deve continuar coletando e armazenando os dados.
  4. No final, os dados devem estar armazenados no MongoDB no banco de dados quotestoscrape e na collection seunome_seusobrenome.

Relatórios

As seguintes perguntas devem ser respondidas através de queries no MongoDB:

  • Quantas citações foram coletadas?
  • Quantas tags distintas foram coletadas?
  • Quantas citações por autor foram coletadas? (exemplo abaixo)

Obs.: Salve suas queries em .js e envie-as junto do projeto no github.

Recomendações:

  • Utilize a versão mais recente do Python (https://www.python.org/)
  • Leia a documentação do Scrapy e faça o exemplo inicial para se familiarizar com o framework.
  • Leia sobre agregações no MongoDB.
  • Atente-se aos tipos de dados exigidos para cada campo.

Exemplo de uma citação a ser inserida no banco de dados

Cada citação deve ser salva no MongoDB seguindo o seguinte formato:

{
    "_id" : ObjectId("5fcf74d9439554bbdaf8da5d"),
    "title" : "“The world as we have created it is a process of our thinking. It cannot be changed without changing our thinking.”",
    "author" : {
        "name" : "Albert Einstein",
        "url" : "http://quotes.toscrape.com//author/Albert-Einstein"
    },
    "tags" : [ 
        "change", 
        "deep-thoughts", 
        "thinking", 
        "world"
    ]
}

...

Tudo pronto? Basta criar um fork deste repositório e abrir um pull request quando finalizar ;)

Em caso de dúvidas, envie um e-mail pra gente: [email protected]

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published