1 votos

¿Puedo usar Applescript para hacer que Safari guarde el contenido de una página específica como código fuente?

Necesito que Safari visite una URL específica y "Guardar como... origen de la página" en una ubicación especificada en mi carpeta Home. No quiero ver en realidad Safari mientras esto sucede, a menos que sea inevitable. Entiendo que esto es factible utilizando AppleScript, pero no tengo experiencia alguna con eso. Intenté usar la aplicación Automator para generar algo, pero estoy atascado en el primer paso.

¿Alguien me puede mostrar cómo se hace?

1voto

Mockman Puntos 16

Cree un documento de automatización. Mientras lo prueba, hágalo un flujo de trabajo. Una vez que lo tenga funcionando como desea, puede hacer una aplicación o lo que sea más útil.

Agregue dos acciones, ambas de la categoría de Internet:

  1. Obtener URL especificadas
  2. Descargar URLs

Con la primera acción, haga clic en el triángulo de expansión y si hay una URL predeterminada allí, selecciónela y haga clic en Eliminar y luego en Agregar su URL específica.

Con la segunda acción, haga clic en el menú desplegable 'Dónde' y elija un destino. Haga clic en 'otro' para elegir una ubicación arbitraria. Podría valer la pena tener una carpeta exclusiva especificada para que luego pueda ejecutar fácilmente otras acciones en el 'contenido' de la carpeta (ver abajo).

Luego haga clic en 'Ejecutar' para probar el flujo de trabajo. Debería descargar el html de la página (pero no todos los archivos auxiliares) y guardarlo en la ubicación especificada. Si ya existe, guardará una copia adicional.

Probablemente este sea el método más sencillo para descargar una página web y no requiere que Safari realmente abra la página. También podría usar applescript o podría usar una herramienta de línea de comandos como wget o curl y ejecutarlo desde la terminal.

Actualizar:

Para convertir esto en una aplicación en lugar de un flujo de trabajo, lo más fácil probablemente sea simplemente crear una nueva aplicación y luego agregar las acciones de la misma manera que se creó el flujo de trabajo. Desafortunadamente, el comando de menú archivo > convertir a… no parece ser muy efectivo.

En cuanto a renombrar el archivo resultante, desafortunadamente la acción descargar urls parece no funcionar como debería, ya que no proporciona un resultado (es decir, una referencia al html guardado).

Puede agregar un método alternativo. Aquí hay uno que utiliza el archivo guardado (por lo que debe descargar el archivo para luego 'elegirlo') y luego lo renombra; ten en cuenta que luego puedes eliminar/borrar ese archivo inicial ya que solo lo necesitas el tiempo suficiente para agregar la entrada a la acción. Utilizo la opción de 'agregar fecha u hora' en la acción 'renombrar elementos del buscador' porque no requiere interacción del usuario, pero puedes revisar las varias opciones y elegir la mejor para tus necesidades.

  1. Obtener elementos del buscador especificados
    Esto utiliza agregar para especificar el archivo, por lo que debe tener un archivo en la ubicación de descarga con el nombre correcto y luego elegirlo (por ejemplo, 'navegadores web de modo texto.html'). Este es el nombre que la descarga de dos pasos generaría basado en la URL que proporcionaste. Ejecútalo nuevamente con la URL real para obtener el nombre correcto del archivo para esa URL. Ten en cuenta que no necesitas el archivo real, solo el nombre real del archivo, por lo que también podrías simplemente colocar un archivo de texto al azar allí y darle el mismo nombre y luego eliminarlo.

  2. Renombrar elementos del buscador: agregar fecha u hora
    Puedes elegir tus opciones de renombrado para esta acción, pero la de fecha/hora es fácil de trabajar. Ten en cuenta que algunas opciones de renombrado parecen funcionar solo en un flujo de trabajo.

1voto

Joel Puntos 112

Esta publicación es para aumentar la respuesta aceptada de @Mockman:

  1. Siguiendo el consejo de la respuesta aceptada usando Automator, pude crear con éxito un archivo de flujo de trabajo. En mi caso, lo guardé como getwebpage.workflow (¡un nombre pegajoso, ¿verdad?).

  2. Podía ejecutar mi getwebpage.workflow desde Automator, pero eso no era lo que esperaba para la Automatización... ¿qué hago con un archivo de flujo de trabajo? ... ¿cómo lo ejecuto de forma "independiente"... es esto siquiera posible?

    Tropezando a ciegas a través del páramo conocido como la Documentación de Apple no llevó a ninguna parte (como de costumbre), pero encontré algo en una búsqueda que resultó ser La Respuesta:

    Resulta que ¡hay una aplicación de línea de comandos también llamada automator!! Y tiene una página de manual (las maravillas nunca cesan):

    NOMBRE  
      automator – Ejecuta un flujo de trabajo de Automator   
    
    SINOPSIS  
      automator [-v] [-i entrada] [-D nombre=valor ...] flujo_de_trabajo  
    
    DESCRIPCIÓN  
      automator ejecuta el flujo de trabajo especificado. Para crear o editar un flujo de trabajo, use la aplicación Automator.
    
      Las siguientes opciones están disponibles:
    
      -D nombre=valor
               Establece la variable nombre como valor para esta ejecución del flujo de trabajo.
    
      -i entrada
               Establece la entrada como la entrada al flujo de trabajo. Si la entrada es -, se utiliza el contenido de la entrada estándar. Cada línea terminada en (\n) se trata como un elemento de entrada de texto.
    
      -v       Ejecuta en modo detallado.
    
    Mac OS X                                                                    1 de abril de 2007                                                                    Mac OS X   

Armado con esta información, pude crear un pequeño script de bash alrededor de automator y crear un "Demonio Global" en LaunchControl para ejecutarlo según un horario.

Epílogo:

Mi incredulidad y sarcasmo aquí esconden mi aprecio por encontrar una solución; esta solución cubrió una necesidad real para mí. Pero no puedo evitar preguntarme: ¿Por qué Apple desarrolla una solución como Automator, la deja languidecer durante 17 años, ¡pero la deja en la distribución con apenas documentación alguna? La misma pregunta podría hacerse con respecto a AutoFS de Apple.
Sí, estas son preguntas retóricas.

P.D.

Resulta que, existe algo de documentación sobre Automator.
Esto va perfecto con este sabroso cuervo.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X