Breaking

Post Top Ad

Your Ad Spot

miércoles, 14 de agosto de 2019

Un rastreador de sitios web para la arquitectura de búsqueda e información

Destilado se trata de marketing de búsqueda eficaz y responsable. Parte de ser efectivo es poder reunir los datos que necesitamos para diagnosticar un problema. Durante un tiempo, hemos estado utilizando un rastreador personalizado en Destilled para resolver problemas técnicos con nuestros clientes. Hoy, ponemos a su disposición ese rastreador.
Este rastreador resuelve tres puntos de dolor de larga data para nuestro equipo:
  1. Informes de stock inútiles. Otros rastreadores nos limitan a informes predefinidos. A veces estos informes no responden nuestras preguntas. Este rastreador exporta a BigQuery, lo que nos permite mantenernos flexibles.
  2. Alcance de rastreo limitado. Cuando se rastrea en su propia computadora, su rastreo está limitado por la cantidad de RAM que tiene. Nuestro rastreador es tan eficiente que es más probable que se te acabe el tiempo que la memoria.
  3. Esquema inflexible. Otros rastreadores generalmente exportan datos aplanados a una tabla. Esto puede dificultar el análisis de relaciones de muchos a muchos, como las etiquetas hreflang . Este rastreador genera información completa y no aplanada para cada página. Con estos datos, las consultas que ejecuta nuestro equipo están limitadas solo por su imaginación.
Nuestro equipo todavía utiliza rastreadores locales y alojados todos los días. Destacamos este rastreador personalizado cuando tenemos una pregunta específica sobre un sitio grande. Si ese es el caso, esta ha demostrado ser la mejor solución.
Para usar el rastreador, deberá estar familiarizado con la ejecución de su computadora desde la línea de comandos. También deberá sentirse cómodo con BigQuery. Esta publicación de blog cubrirá solo información de alto nivel. ¡El resto depende de usted!
Este no es un producto destilado oficial. No podemos brindar apoyo. El software es de código abierto y se rige por una licencia de estilo MIT. Puede usarlo con fines comerciales sin atribución.

Lo que es

Hemos llamado imaginativamente el rastreo de herramientas crawl es una herramienta de línea de comandos eficiente y concurrente para rastrear y comprender sitios web. Produce datos en un formato JSON delimitado por nueva línea adecuado para usar con BigQuery .
Al esperar hasta después del rastreo para analizar datos, el análisis puede ser más rentable. Si no intenta analizar los datos en absoluto mientras los recopila, el rastreo es mucho más eficiente. El rastreo realiza un seguimiento de la menor información necesaria para completar el rastreo. En la práctica, un rastreo de un sitio de 10,000 páginas podría usar ~ 30 MB de RAM. Rastrear 1,000,000 de páginas podría usar menos de un gigabyte.
La computación en la nube promete que puede pagar la potencia informática que necesita, cuando la necesita. BigQuery es un ejemplo mágico de esto en acción. Para muchas tareas relacionadas con el rastreo, es casi gratis. Cualquiera puede cargar datos y analizarlos en segundos.
La estructura de esos datos es esencial. Con la mayoría de los rastreadores que permiten la exportación de datos, el resultado es tabular. Obtiene, por ejemplo, una fila por página en un CSV. Esta estructura no es excelente para las relaciones de muchos a muchos de enlaces cruzados dentro de un sitio web. el rastreo genera una sola fila por página, y esa fila contiene datos anidados sobre cada enlace, etiqueta hreflang, campo de encabezado y más. Aquí hay algunos campos de ejemplo para ayudarlo a visualizar esto:
Algunos campos, como Dirección, tienen datos anidados. Address.Full es la URL completa de la página. Otros campos, como StatusCode, son simplemente números o cadenas. Finalmente, hay campos repetidos, como Enlaces. Estos campos pueden tener cualquier cantidad de puntos de datos. Enlaces registra todos los enlaces que aparecen en una página que se rastrea.
Por lo tanto, el uso de BigQuery para el análisis resuelve el problema de flexibilidad y también ayuda a resolver el problema de los recursos.

Instalar con Go

Actualmente, debe construir el rastreo usando Go. Esto requerirá la versión Go> 1.10. Si no está familiarizado con Go, será mejor apoyarse en alguien que esté dispuesto a ayudarlo.
ve a obtener -u github.com/benjaminestes/crawl / ...GitHub . com / benjaminestes / crawl / ...
En una instalación Go bien configurada, esto buscará y construirá la herramienta. El binario se colocará en su directorio $ GOBIN. Agregar $ GOBIN a su $ PATH le permitirá llamar al rastreo sin especificar su ubicación.

Comandos válidos

USO: rastreo <comando> [-flags] [args]
ayudaImprime este mensaje.
lista
Rastrear una lista de URL proporcionadas en stdin. 
El indicador -format = {(texto) | xml} determina el tipo esperado.
Ejemplo:
lista de rastreo config.json <url_list.txt> out.txtcrawl list -format = xml config.json <sitemap.xml> out.txt
esquema
Imprima un esquema JSON compatible con BigQuery en stdout.
Ejemplo:
esquema de rastreo> schema.json
mapa del sitio
Solicita recursivamente un mapa del sitio o un índice del mapa del sitio de una URL proporcionada como argumento.
araña
Rastrear desde las URL específicas en el archivo de configuración.
Ejemplo:
crawl spider config.json> out.txt
Configurando su rastreo
El repositorio incluye un archivo de ejemplo config.json . Esto enumera las opciones disponibles con valores predeterminados razonables.
{ 
    "De": [ 
        "https://www.example.com/"     ],     "Incluir": [         "^ (https?: //)? Www \\. Ejemplo \\. Com /.*"     ],     "Excluir": [],     "MaxDepth": 3,     "WaitTime": "100ms",     "Conexiones": 20,     "UserAgent": "Crawler / 1.0",     "RobotsUserAgent": "Crawler",     "RespectNofollow": verdadero ,     "Encabezado": [         {"K": "X-ample", "V": "alue"}     ] }https : // www . ejemplo . com / "


















Aquí está la información esencial para estos campos:
  • Desde. Una matriz de URL totalmente calificadas desde las que desea comenzar a rastrear. Si está rastreando desde la página de inicio de un sitio, esta lista tendrá un elemento. A diferencia de otros rastreadores que puede haber utilizado, esta opción no afecta el alcance del rastreo.
  • Incluir. Un conjunto de expresiones regulares que debe coincidir con una URL para poder rastrearse. Si no hay una expresión de inclusión válida, todas las URL descubiertas podrían estar dentro del alcance. Tenga en cuenta que los metacaracteres deben tener doble escape. Solo significativo en modo araña.
  • Excluir. Una matriz de expresiones regulares que filtran las URL a rastrear. Los metacaracteres deben tener doble escape. Solo significativo en modo araña.
  • Máxima profundidad. Solo se rastrearán las URL menos enlaces que MaxDepth de la lista De.
  • Tiempo de espera. Tiempo de pausa entre solicitudes de desove. Velocidad aproximada de rastreo. Por ejemplo, para rastrear alrededor de 5 URL por segundo, configúrelo en "200 ms". Utiliza las reglas de análisis de tiempo de Go.
  • Conexiones El número máximo de conexiones actuales. Si el valor configurado es <1, se establecerá en 1 al iniciar el rastreo.
  • UserAgent: el agente de usuario para enviar con solicitudes HTTP.
  • RobotsUserAgent. El agente de usuario para probar las reglas de robots.txt.
  • Respeto No seguir Si esto es cierto, los enlaces con un atributo rel = " nofollow " no se incluirán en el rastreo.
  • Encabezamiento. Una matriz de objetos con propiedades "K" y "V", que significa pares clave / valor que se agregarán a todas las solicitudes.
Las opciones MaxDepth, Incluir y Excluir solo se aplican al modo araña.

Cómo se determina el alcance de un rastreo

Dadas las listas de inclusión y exclusión especificadas, definidas anteriormente, así es como el rastreador decide si una URL está dentro del alcance:
  1. Si la URL coincide con una regla en la lista Excluir, no se rastreará.
  2. Si la URL coincide con una regla en la lista Incluir, se rastreará.
  3. Si la URL no coincide con la lista Excluir ni Incluir, entonces si la lista Incluir está vacía, se rastreará, pero si la lista Incluir no está vacía, no se rastreará.
Tenga en cuenta que solo se aplicará uno de estos casos (como en la declaración de cambio de Go, por analogía).
Finalmente, ninguna URL estará dentro del alcance si están más allá de los enlaces MaxDepth del conjunto De URL.

Usar con BigQuery

Ejecute crawl schema> schema.json para obtener un archivo de definición de esquema compatible con BigQuery. El archivo se genera automáticamente (a través de go generate) a partir de la estructura del objeto de resultado generado por el rastreador, por lo que siempre debe estar actualizado.
Si encuentra una incompatibilidad entre el archivo de esquema de salida y los datos producidos a partir de un rastreo, marque como error en GitHub.
En general, guardará los datos de rastreo en un archivo local y luego los cargará en BigQuery. Eso implica dos comandos:
$ crawl spider config.json> output.txt  

$ bq load --source_format = NEWLINE_DELIMITED_JSON dataset.table output.txt schema.json
Los archivos de rastreo pueden ser grandes, y es conveniente subirlos directamente a Google Cloud Storage sin almacenarlos localmente. Esto se puede hacer canalizando la salida del rastreo agsutil :
$ crawl spider config.json | gsutil cp - gs: //my-bucket/crawl-data.txt 

$ bq load --source_format = NEWLINE_DELIMITED_JSON dataset.table gs: //my-bucket/crawl-data.txt schema.json

Analizando tus datos

Una vez que haya ingresado sus datos en BigQuery, puede adoptar cualquier enfoque de análisis que desee. Puede ver cómo hacer análisis interactivos en el cuaderno de ejemplos .
En particular, observe cómo se usan los campos de datos anidados y repetidos. Con ellos, es posible generar informes sobre enlaces internos, canonicalización y reciprocación de hreflang.

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

Post Top Ad

Your Ad Spot

Páginas