Pregunta:
Comprobador de enlaces de sitios web para Linux
Izzy
2015-06-30 11:55:04 UTC
view on stackexchange narkive permalink

De forma periódica, necesito comprobar si mis sitios web contienen "rotura de enlaces". El plural ya indica, este es un trabajo que no se puede hacer manualmente (a muchos sitios e incluso más enlaces para verificar), así que quiero una herramienta que me ayude.

Debe tener:

  • Debe ejecutarse en Linux
  • Debe permitir definir filtros (para URL / nombres de servidor / dominios no para verificar; la expresión regular Sea genial, una simple "subcadena" aún está bien)
  • Debe permitir filtrar la salida (al menos para "mostrar solo errores y advertencias"; cuanto más granular, mejor)

Muy preferido:

  • GUI y interfaces CLI (para que pueda ejecutarlo manualmente con un interfaz agradable, y también automáticamente desde Cron - en cuyo caso, si es posible, la GUI debería poder cargar los "resultados")
  • Algunas estadísticas
  • Eficiente:
    • No debería comprobar la misma URL varias veces (pero, por supuesto, si no funciona, infórmelo para cada página en la que se encuentre)
    • no debería analizar la misma página varias veces 1
  • Exacto (tan pocos "falsos negativos" como sea posible)

Es bueno tener:

  • poder especificar qué parámetros de URL ignorar 2
  • enviar informes (formateados) por correo (si se ejecuta desde Cron) 3
  • Capaz de escanear sitios con requisitos de autenticación 4
  • Posibilidad de excluir tipos de archivos del análisis 5

Ya probé:

  • gUrlChecker: Al ver la GUI, parece cumplir con todos los requisitos. Pero ignoró todas las configuraciones de filtro (para que los hosts / URL se omitan; si se incluye un ejemplo de cómo hacerlo, esa respuesta es bienvenida; tal vez hice algo mal o la versión de gUrlChecker que estaba usando tiene un error)
  • LinkChecker: lejos de muchos "falsos negativos" (p. ej., informa que A redirecciona a A, es decir, a sí mismo; comprueba la misma página varias veces e informa de sus errores varias veces también, informa "páginas inalcanzables "(301, 401) que fueron claramente accesibles (sin" autorización "), sin filtrado de salida (aunque la visualización de" solo errores y advertencias "es aceptable, me gustaría que se mostrara, por ejemplo," solo errores "). Una vez más, esto podría ser un error mientras tanto resuelto: como gUrlChecker , lo instalé desde los repositorios de Ubuntu, que no siempre tienen las últimas versiones (ay, de hecho: 7.x en el repositorio 9.3 en el sitio del proyecto; se probará nuevamente con la última versión)

1: Si, por ejemplo, en el sitio escaneado, las páginas A, B y C enlazan a Z (todavía en el servidor escaneado, es decir, sin enlaces externos), Z debería escanearse solo una vez, no 3 veces como lo he experimentado, por ejemplo, con LinkChecker

2: Si el sitio, por ejemplo, sirve el sa contenido en varios idiomas, no tiene sentido escanear todas las variantes de idioma (siempre que los enlaces sean idénticos) Entonces puedo, p. Ej. desea ignorar el parámetro lang = XX y que el verificador de enlaces considere a.php , a.php? lang = en y a.php? lang = de la misma página. Esto, por supuesto, podría ser cubierto por el filtro imprescindible con RegEx, siempre que el parámetro lang sea opcional;) ​​

3: Seguro que con Cron se captura STDERR , por lo que el foco de ese correo se encuentra en "formateado". Eso podría, por ejemplo, ser hojas de cálculo ODF (que luego se pueden "filtrar" usando OpenOffice / LibreOffice).

4: es decir, aquellos sitios que solicitan acceso al nombre de usuario / contraseña (código de respuesta HTTP 401); Acabo de notar que LinkChecker agregó que con v7.9, gUrlChecker también es capaz de hacer eso. Esto se relaciona principalmente con el sitio que se va a escanear , no necesariamente con los enlaces externos (si ambos son compatibles, debe configurarse por separado)

5: si el verificador de enlaces es, por ejemplo, capaz de escanear el contenido de PDF, MSWord, cualquier documento, debería ser posible desactivarlo: un sitio web puede contener "versiones de documentos más antiguos" como referencia, donde los "enlaces obsoletos" se consideran "normales". La exclusión puede tener lugar por tipo mime o extensión de archivo.

One responder:
Izzy
2015-08-08 17:58:30 UTC
view on stackexchange narkive permalink

Como no había recomendaciones, terminé usando LinkChecker . Si bien la mayoría de los inconvenientes que enumeré con mi pregunta se mantuvieron, usar la versión más reciente del sitio del autor fue mejor que ejecutar la versión que se incluye en el repositorio.

LinkChecker GUI LinkChecker CLI
LinkChecker GUI y CLI (fuente: LinkChecker; haga clic en las imágenes para ver variantes más grandes)

Cómo se ajusta a mis requisitos

Debe tener

  • Debe ejecutarse en Linux: Sí, lo hace.
  • Debe permitir definir filtros: parcialmente. El filtrado previo (es decir, excluir elementos de la verificación) es posible en parte, aunque no siempre es intuitivo. No encontré ninguna forma de filtrar la lista de resultados en la GUI.
  • Debe permitir filtrar la salida: De nuevo en parte, consulte el elemento anterior. Una vez que la lista de resultados está allí, no es posible realizar más filtros.

Muy preferido

  • Interfaces GUI y CLI: Sí ( ver capturas de pantalla arriba). Incluso se proporciona una interfaz web (CGI).
  • Algunas estadísticas: no son tan detalladas como esperaba, pero hay algunas estadísticas disponibles (consulte la esquina inferior derecha de la Captura de pantalla de la GUI)
  • Eficiente: más o menos. Todavía hay demasiados "duplicados"
  • Exacto (la menor cantidad posible de "falsos negativos"): Aquí estaba yo luchando. Todavía un poco molesto, no pude deshacerme de todos ellos. Podría ser posible para "usuarios experimentados", pero definitivamente no es intuitivo para "principiantes"

Es bueno tenerlo

  • poder especificar qué parámetros de URL ignorar: aquí solo lo logré en parte. Debe haber algún truco, pero no pude encontrarlo: es posible definir patrones para que las URL ignoren, pero en algún momento dejé de experimentar cómo hacer que eso funcione con parámetros:
    Options window
    Ventana de opciones con patrones de URL (haga clic para ver una variante más grande)
  • enviar informes (formateados) por correo (si se ejecuta desde Cron): debido a los resultados no completamente satisfactorios con la GUI, no he verificado más con esto.
  • Capaz de escanear sitios con requisitos de autenticación: No se ha probado a fondo, pero parece ser posible; se debe configurar en el archivo linkcheckerrc :

      [autenticación] # Se pueden proporcionar diferentes pares de usuario / contraseña para diferentes URL. […]  
  • Posibilidad de excluir tipos de archivos de ser escaneado: no tuve que lidiar con esto, ya que LinkChecker parece no haber encontrado ningún PDF u otro formato de archivo que pudiera escanear.

Conclusión

Si bien no es exactamente lo que estoy buscando, LinkChecker se acerca bastante, probablemente lo más cerca que puedo. Si encuentra algo que se adapte mejor a mis necesidades, espero encontrar alternativas :)

¿Probaste xenu link sleuth con vino?
@Nivatius no, y solo me interesan las soluciones nativas, por lo que Wine está fuera de discusión.


Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 3.0 bajo la que se distribuye.
Loading...