
Rastreador web enfocado que utiliza clasificadores de páginas y priorización de enlaces para recolectar eficientemente páginas web específicas de dominio o que coincidan con un patrón, con soporte para indexación en Elasticsearch y rastreo mediante proxy TOR.
ACHE es un rastreador web enfocado. Recopila páginas web que cumplen con criterios específicos, por ejemplo, páginas que pertenecen a un dominio determinado o que contienen un patrón definido por el usuario. ACHE se diferencia de los rastreadores genéricos en que utiliza clasificadores de páginas para distinguir entre páginas relevantes e irrelevantes en un dominio determinado. Un clasificador de páginas puede ser desde una simple expresión regular (que coincide con cada página que contiene una palabra específica, por ejemplo) hasta un modelo de clasificación basado en aprendizaje automático. ACHE también puede aprender automáticamente a priorizar enlaces para localizar contenido relevante de manera eficiente mientras evita la recuperación de contenido irrelevante.
ACHE soporta muchas características, tales como:
A partir de la versión 0.11.0 en adelante, ACHE está licenciado bajo Apache 2.0. Las versiones anteriores estaban licenciadas bajo la licencia GNU GPL.
Hay más información disponible en la documentación del proyecto.
Puedes compilar ACHE desde el código fuente, descargar el binario ejecutable usando conda, o usar Docker para construir una imagen y ejecutar ACHE en un contenedor.
Requisito: Necesitarás instalar una versión reciente de Java (JDK 8 o posterior).
Para compilar ACHE desde el código fuente, puedes ejecutar los siguientes comandos en tu terminal:
git clone https://github.com/ViDA-NYU/ache.git
cd ache
./gradlew installDist
lo que generará un paquete de instalación en ache/build/install/.
Luego puedes hacer que el comando ache esté disponible en la terminal agregando los binarios de ACHE a la variable de entorno PATH:
export ACHE_HOME="{ruta-al-repositorio-clonado-de-ache}/ache/build/install/ache"
export PATH="$ACHE_HOME/bin:$PATH"
Requisito: Necesitarás instalar una versión reciente de Docker. Consulta https://docs.docker.com/engine/installation/ para obtener detalles sobre cómo instalar Docker para tu plataforma.
Publicamos imágenes Docker pre-construidas en Docker Hub para cada versión publicada. Puedes ejecutar la imagen más reciente usando:
docker run -p 8080:8080 vidanyu/ache:latest
Alternativamente, puedes construir la imagen tú mismo y ejecutarla:
git clone https://github.com/ViDA-NYU/ache.git
cd ache
docker build -t ache .
docker run -p 8080:8080 ache
El Dockerfile expone dos volúmenes de datos para que puedas montar un directorio con tus archivos de configuración (en /config) y preservar los datos almacenados por el rastreador (en /data) después de que el contenedor se detenga.
Requisito: Necesitas tener el gestor de paquetes Conda instalado en tu sistema.
Si usas Conda, puedes instalar ache desde Anaconda Cloud ejecutando:
conda install -c vida-nyu ache
NOTA: Solo las versiones etiquetadas publicadas se publican en Anaconda Cloud, por lo que la versión disponible a través de Conda puede no estar actualizada. Si deseas probar la versión más reciente, clona el repositorio y compila desde el código fuente o usa la versión Docker.
Antes de iniciar un rastreo, necesitas crear un archivo de configuración llamado ache.yml.
Proporcionamos algunos ejemplos de configuración en el directorio config del repositorio que pueden ayudarte a comenzar.
También necesitarás un archivo de configuración del clasificador de páginas llamado pageclassifier.yml.
Para obtener detalles sobre cómo configurar un clasificador de páginas, consulta la documentación de clasificadores de páginas.
Después de haber configurado un clasificador, lo último que necesitarás es un archivo de semillas, es decir, un archivo de texto plano que contenga una URL por línea. El rastreador usará estas URLs para iniciar el rastreo.
Finalmente, puedes iniciar el rastreador usando el siguiente comando:
ache startCrawl -o <ruta-de-salida-datos> -c <ruta-config> -s <archivo-semillas> -m <ruta-modelo>
donde,
<ruta-config> es la ruta al directorio de configuración que contiene ache.yml.<archivo-semillas> es el archivo de semillas que contiene las URLs iniciales.<ruta-modelo> es la ruta al directorio del modelo que contiene el archivo pageclassifier.yml.<ruta-de-salida-datos> es la ruta al directorio de salida de datos.Ejemplo de ejecución de ACHE usando el modelo de clasificador de páginas pre-entrenado de muestra y el archivo de semillas de muestra disponibles en el repositorio:
ache startCrawl -o output -c config/sample_config -s config/sample.seeds -m config/sample_model
El rastreador se ejecutará e imprimirá los registros en la consola. Presiona Ctrl+C en cualquier momento para detenerlo (puede tomar algo de tiempo).
Para rastreos largos, debes ejecutar ACHE en segundo plano usando una herramienta como nohup.
ACHE puede generar datos en múltiples formatos. Los formatos de datos actualmente disponibles son:
Para más detalles sobre cómo configurar formatos de datos, consulta la página de documentación de formatos de datos.
Agradecemos los comentarios de los usuarios. Por favor, envía cualquier sugerencia, pregunta o reporte de errores usando el rastreador de issues de Github.
También tenemos una sala de chat en Gitter.
Las contribuciones de código son bienvenidas. Usamos un estilo de código derivado de la Guía de Estilo de Google, pero con 4 espacios para las tabulaciones. Un archivo de configuración de Formateador de Eclipse está disponible en el repositorio.
| Formato | Descripción |
|---|
| FILES (predeterminado) | El contenido original y los metadatos se almacenan en archivos comprimidos rotativos de tamaño fijo. |
| ELASTICSEARCH | El contenido original y los metadatos se indexan en un índice de ElasticSearch. |
| KAFKA | Envía el contenido original y los metadatos a un tema de Apache Kafka. |
| WARC | Almacena datos utilizando el formato estándar utilizado por Web Archive y Common Crawl. |
| FILESYSTEM_HTML | Solo el contenido de la página original se almacena en archivos de texto plano. |
| FILESYSTEM_JSON | El contenido original y los metadatos se almacenan en formato JSON en archivos. |
| FILESYSTEM_CBOR | El contenido original y algunos metadatos se almacenan en formato CBOR en archivos. |