
Rastreador web focado que usa classificadores de páginas e priorização de links para coletar eficientemente páginas web específicas de domínio ou com correspondência de padrões, com suporte para indexação no Elasticsearch e rastreamento via proxy TOR.
ACHE é um crawler web focado. Ele coleta páginas da web que satisfazem critérios específicos, por exemplo, páginas que pertencem a um determinado domínio ou que contêm um padrão especificado pelo usuário. ACHE difere de crawlers genéricos no sentido de que utiliza classificadores de página para distinguir entre páginas relevantes e irrelevantes em um determinado domínio. Um classificador de página pode ser desde uma simples expressão regular (que corresponde a toda página que contém uma palavra específica, por exemplo) até um modelo de classificação baseado em aprendizado de máquina. ACHE também pode aprender automaticamente como priorizar links para localizar eficientemente conteúdo relevante, evitando a recuperação de conteúdo irrelevante.
ACHE suporta muitos recursos, como:
A partir da versão 0.11.0 em diante, o ACHE é licenciado sob Apache 2.0. Versões anteriores foram licenciadas sob a licença GNU GPL.
Mais informações estão disponíveis na documentação do projeto.
Você pode compilar o ACHE a partir do código fonte, baixar o binário executável usando conda, ou usar Docker para construir uma imagem e executar o ACHE em um contêiner.
Pré-requisito: Você precisará instalar uma versão recente do Java (JDK 8 ou superior).
Para compilar o ACHE a partir do fonte, execute os seguintes comandos no seu terminal:
git clone https://github.com/ViDA-NYU/ache.git
cd ache
./gradlew installDist
Isso gerará um pacote de instalação em ache/build/install/.
Você pode então disponibilizar o comando ache no terminal adicionando os binários do ACHE à variável de ambiente PATH:
export ACHE_HOME="{caminho-para-o-repositorio-clonado-ache}/ache/build/install/ache"
export PATH="$ACHE_HOME/bin:$PATH"
Pré-requisito: Você precisará instalar uma versão recente do Docker. Consulte https://docs.docker.com/engine/installation/ para detalhes sobre como instalar o Docker para sua plataforma.
Publicamos imagens Docker pré-construídas no Docker Hub para cada versão lançada. Você pode executar a imagem mais recente usando:
docker run -p 8080:8080 vidanyu/ache:latest
Alternativamente, você pode construir a imagem você mesmo e executá-la:
git clone https://github.com/ViDA-NYU/ache.git
cd ache
docker build -t ache .
docker run -p 8080:8080 ache
O Dockerfile expõe dois volumes de dados para que você possa montar um diretório com seus arquivos de configuração (em /config) e preservar os dados armazenados do crawler (em /data) após o contêiner parar.
Pré-requisito: Você precisa ter o gerenciador de pacotes Conda instalado no seu sistema.
Se você usa Conda, pode instalar o ache a partir do Anaconda Cloud executando:
conda install -c vida-nyu ache
NOTA: Apenas versões com tags de lançamento são publicadas no Anaconda Cloud, portanto a versão disponível através do Conda pode não estar atualizada. Se você quiser experimentar a versão mais recente, clone o repositório e compile a partir do fonte ou use a versão Docker.
Antes de iniciar um rastreamento, você precisa criar um arquivo de configuração chamado ache.yml.
Fornecemos alguns exemplos de configuração no diretório config do repositório que podem ajudá-lo a começar.
Você também precisará de um arquivo de configuração do classificador de página chamado pageclassifier.yml.
Para detalhes sobre como configurar um classificador de página, consulte a documentação de classificadores de página.
Depois de configurar um classificador, a última coisa que você precisará é de um arquivo de sementes, ou seja, um arquivo de texto simples contendo uma URL por linha. O crawler usará essas URLs para inicializar o rastreamento.
Finalmente, você pode iniciar o crawler usando o seguinte comando:
ache startCrawl -o <caminho-saida-dados> -c <caminho-config> -s <arquivo-sementes> -m <caminho-modelo>
onde,
<caminho-config> é o caminho para o diretório de configuração que contém ache.yml.<arquivo-sementes> é o arquivo de sementes que contém as URLs iniciais.<caminho-modelo> é o caminho para o diretório do modelo que contém o arquivo pageclassifier.yml.<caminho-saida-dados> é o caminho para o diretório de saída de dados.Exemplo de execução do ACHE usando o modelo de classificador de página pré-treinado e o arquivo de sementes de exemplo disponíveis no repositório:
ache startCrawl -o output -c config/sample_config -s config/sample.seeds -m config/sample_model
O crawler será executado e exibirá os logs no console. Pressione Ctrl+C a qualquer momento para interrompê-lo (pode levar algum tempo).
Para rastreamentos longos, você deve executar o ACHE em segundo plano usando uma ferramenta como o nohup.
O ACHE pode gerar dados em múltiplos formatos. Os formatos de dados atualmente disponíveis são:
Para mais detalhes sobre como configurar formatos de dados, consulte a página de documentação de formatos de dados.
Agradecemos o feedback dos usuários. Por favor, envie quaisquer sugestões, perguntas ou relatos de bugs usando o rastreador de issues do Github.
Também temos uma sala de chat no Gitter.
Contribuições de código são bem-vindas. Utilizamos um estilo de código derivado do Google Style Guide, mas com 4 espaços para tabulações. Um arquivo de configuração do formatador Eclipse está disponível no repositório.