- André Tavares
- Felipe Augusto
- Giulio Denardi
- Matheus Santos
- Rafael Cardoso
Este repositório possui o projeto de scraper/crawler do time The Callbacks que irá, a partir de um JSON de entrada, buscar dados em diversas fontes, com o objetivo de aumentar a qualidade dos dados da SKY..
Foram criados 5 crawlers para diferentes fontes (Adoro Cinema, Wikipedia, Mega Filmes HD, Filmow, IMDB) e foram usadas 2 APIs estáveis (Youtube API e Twitter API).
Com isso, fomos capazes de trazer dados como: distribuidores, trailers, vídeos promocionais (teasers), avaliações de usuários, principalmente de sites brasileiros, obtendo dados enviados por brasileiros e alguns em inglês, para aumentar a diversificação dos dados (principalmente em possíveis buscas). A estrutura de nosso retorno pode ser encontrada aqui.
Assim, iremos garantir uma melhor experiência aos clientes SKY ao utilizar qualquer um de seus produtos.
Este projeto foi apresentado para a banca avaliadora no dia 27/08/2017.
E os slides da nossa apresentação estão disponiveis em
TheCallbacks_SkyScraper_apresentacao.pdf
.
Para a realização deste projetos, utilizamos Node JS v8.4.0 como pré-requisito. Para montar os crawlers, utilizamos principalmente as bibliotecas request-promise, e Cheerio, Utilizamos o MongoDB para a realização de buscas rápidas e processamentos temporários, enviando todos os dados para um bucket no AWS S3 ao final do processamento dos crawlers. Utilizamos também o YARN para o gerenciamento parcial do projeto.
Finalmente, o mais importante: este projeto irá rodar on-line em uma instância EC2 como uma API JSON RPC. Isso possibilita que qualquer sistema possa se integrar com o projeto de forma simples e padronizada pelo mercado, independente de qual tecnologia o cliente utilizar.
Esta estrutura trata de parsear séries e filmes do IMDB. De forma automática, ele fará a validação do arquivo para série ou filme, e preencherá os dados do objeto de acordo com este dado. As informações salvas do parser estão em inglês, porém possui uma fonte rica de atributos independentes de língua (tais como Diretores, Distribuidores, etc.). Este parser inclusive buscará algumas novelas brasileiras (mais antigas), porém as informações da novela também estarão em inglês e formatadas como séries.
Este script foi criado para obter primariamente a classificação etária e realizar o filtro dos filmes adultos, baseado na classificação indicativa do Mega Filmes HD. A partir dele, podemos adquirir de forma simples a faixa etária (l, 12, 14, 16, 18...) e filtrar os filmes para o público desejado. Futuramente, este parser ainda poderá auxiliar como mais uma forma de input para aprimorar os dados retornados pela API.
A Wikipedia pode uma fonte muito rica de informações de programas de TV e filmes brasileiros. Além disso, sua API é bastante estável e o parsing de HTML simplificado pode ser facilmente incrementado.
Esta rotina faz o parser de séries e informações básicas de filmes do site Adoro Cinema. Com o nome da mídia, ele faz uma busca para descobrir se trata-se de um filme ou uma série. Se for um filme, ele buscará as informações básicas do mesmo. Caso seja uma série, a rotina buscará diversas informações sobre a série, no geral, e cada uma de suas temporadas especificamente. Finalmente, ele obtém também um conjunto de imagens da série e a avaliação do público brasileiro.
O Filmow é um site brasileiro. Extraímos dele os comentários mais relevantes de cada título dado. Cada comentário passa por um filtro de palavras de cunho sexual e de baixo calão para ser persistido. Além disso, usamos seus ratings.
Este método receber como entrada um texto (nome de seriado ou do filme) e utiliza a API do Google para buscar e retornar os trailers e teasers da midia no YouTube.
Este método receber como entrada um texto (nome de seriado ou do filme) e utiliza a API do Twitter para buscar e retornar comentários do Twitter de usuários brasileiros.
Um exemplo de saida para a entrada "Game of Thrones" pode ser vista em
EXEMPLO_GoT.json
.
- NodeJS v8.4.0
- NPM v
- MongoDB
- RESTHeart
Instale as dependências do NodeJS:
npm install
Criamos um banco de dados e uma coleção através do RESTHeart:
PUT /hack {"descr": "descricao do meu banco de dados"}
PUT /hack/data {"descr": "minha primeira colecao"}
O endereço do RESTHeart está hardcoded no arquivo Committer.js, que pode ser substituído, se ele for executado localmente. Por exemplo,
http://localhost:8080/hack/data
Para executar o servidor:
npm start