Giter Site home page Giter Site logo

testepratico_intelivix_scraping's Introduction

TestePratico Intelivix Scraping

Augusto Rodrigues de lima

Teste Prático Para a Chamada de Desenvolvedores - Time de Scraping

Projeto

Um Crawler desenvolvido para extrair todas as informações de todos os produtos do site da Kabum.
Foi criada uma spider que navega por todas as categorias e sub-categorias até o nível mais baixo para então acessar as páginas dos produtos e extrair suas informações requisitadas.
Todas as informações solicitadas na descrição do teste foram capturadas no tipo de dado solicitado.
Após capturar todas as informações referentes aos produtos, essas informações foram persistidas em um MongoDB.

Pontos a serem destacados

O site da Kabum é muito bem estruturado, entretanto, na parte das especificações técnicas o site não apresenta um padrão para todos os produtos. Devido a isso, em poucos produtos algumas informações na parte de "características" podem estar faltosas. Mas são pouquíssimos os casos em que isso acontece.
As dimensões dos produtos estão presentes na parte das específicações técnicas, o que dificulta a sua extração por falta de padrão. Alguns produtos vem com o campo dimensões no meio das especificações técnicas. Nesses produtos foi possível capturar.
Os preços dos produtos na Kabum tem desconto quando o pagamento é feito via boleto, então, além do valor atual e do valor antigo (quando existia) também foi capturada a informação do valor á vista.

Tempo despendido para o desenvolvimento

  • Análise e escolha do site que seria feito o crawler e iniciação do projeto utilizando scrapy (3 horas)
  • Capturar todas as informações de um único produto e realizar os devidos tratamentos (6 horas)
  • Navegar pelas categorias até o menor nível possível (1 hora)
  • Capturar as informações de todos produtos de uma página e realizar a paginação (2 horas)
  • Persistir as informações no banco de dados MongoDB (2 horas)
  • Revisão do código (6 horas)

Observação:

O tempo total estimado foi de aproximadamente 20 horas.
Levando em conta os itens citados acima bem como o tempo para revisar o uso das ferramentas que foram utilizadas.

Instruções para execução do projeto

É necessário ter instalado:

conda install -c anaconda scrapy 
conda install -c anaconda pymongo

Executando o projeto

  1. Clone o projeto:
git clone https://github.com/Augusto94/TestePratico_Intelivix_Scraping.git
  1. Inicie o serviço do MongoDB:
sudo service mongod start
  1. Entre na pasta do projeto e execute o seguinte comando para rodar a Spider:
cd TestePratico\
scrapy crawl kabum
  1. Aguarde a execução do crawler (Isso pode levar um tempo ;) )
  2. Ao término da execução da spider consultas no banco de dados já podem ser relizadas.
  3. Abra uma IDLE do python para realizar consultas (Terminal, Jupyter Notebook, etc).
  4. Segue o exemplo de uma consulta:
import pymongo
client = pymongo.MongoClient()
db = client.products_kabum
collection = db.products_kabum
collection.find_one({'URL': 'https://www.kabum.com.br/cgi-local/site/produtos/descricao_ofertas.cgi?codigo=11652'})

testepratico_intelivix_scraping's People

Contributors

augusto94 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.