TP1: Projeto e Implementacao de um Crawler Data de entrega do codigo e documentacao por email para o monitor: 23:59h de 16/04/2017 Penalizacao por atraso: 1 ponto ate 23:59h de 23/04/2017, 1 ponto por dia apos essa data Entrega da colecao para o monitor pode ser por meio de um link (por exemplo Dropbox ou Google Drive) ou em meio fisico no Latin (sala 4304) no primeiro dia util seguinte. Um crawler industrial deve: 1- Coletar no minimo 1 milhao de URLs por dia, usando no maximo 3 servidores padrao. 2- Empregar politicas de "scheduling" de urls, de forma a coletar o melhor conteudo primeiro e garantir uma cobertura minima de cada site. (por exemplo, um coletor nao deve coletar 1 milhao de paginas de 1 unico site) 3- O coletor deve respeitar as seguintes regras de etiqueta: * Seguir o padrao robots.txt * Nunca realizar mais de 1requisicao a cada 30 segundos para um mesmo site 4- A velocidade de coleta deve ser manter aproximadamente constante até o limite minimo de 10 millhoes de urls (i.e., um coletor que coleta rapidamente no inicio mas a partir da url 5 milhoes se torna super lento nao eh aceitavel) Para a realizacao do projeto poderao ser utilizadas as bibliotecas standard do C/C++ (io, threads, sockets) e a biblioteca de acesso http libcurl (http://curl.haxx.se/). O uso de qualquer biblioteca nao padrao devera ser autorizado explicitamente pelos professores.