Necesita script o código para escribir todas las páginas web visitadas de Safari en un archivo (mac)

Necesita script o código para escribir todas las páginas web visitadas de Safari en un archivo (mac)

Sé que esto probablemente sea posible y probablemente fácil para alguien que sabe lo que está haciendo, pero me disculpo de antemano por lo poco que sé.

Básicamente estoy buscando algún tipo de código (¿script? Nuevamente, no lo sé) que escriba los nombres de las páginas y/o las URL completas de cada sitio web visitado (incluso con la navegación privada habilitada) en un historial de "copia de seguridad". archivo que no se borrará ni modificará a través de la barra de herramientas estándar de Safari. Preferiblemente, esto incluiría marcas de tiempo, aunque no es obligatorio.

Alternativamente, si es posible/más fácil dejar habilitado el botón de navegación privada, pero hacerlo de modo que en realidad no HAGA nada, luego escriba/haga una copia de seguridad de los cambios en la lista del historial de Safari cada 60 segundos aproximadamente en una ubicación "segura" y no editable. , eso también funcionaría.

Un par de cosas que no quiero:

  • Instrucciones sobre cómo habilitar los controles parentales o eliminar la opción de navegación privada

  • Instrucciones para un programa de software espía o de monitoreo web que debe descargarse e instalarse en la computadora

  • Instrucciones sobre cómo iniciar sesión a nivel de enrutador (actualmente no es posible) o usar Open DNS (que muestra solo dominios, pero no todas las páginas web a nivel granular)

  • Discusión ética o moral (sé lo que estoy pidiendo y por qué lo estoy pidiendo; por favor, créanme en eso)

Sé que hay programas de monitoreo que hacen lo que quiero (y mucho más, la mayoría de los cuales son innecesarios), así que supongo que es posible codificar algo en algún lugar que realice la misma tarea. También necesitaría (seré honesto) algunas instrucciones bastante detalladas sobre cómo/dónde ingresar este código y ejecutarlo. Estoy dispuesto a pagar (si es necesario) para contratar a alguien para que haga esto, pero sin siquiera saber exactamente lo que estoy pidiendo, tengo problemas para formular una oferta de trabajo en cualquiera de los sitios para contratar a un codificador independiente. .

Cualquier ayuda/orientación/asistencia/aclaración/etc. sería apreciado.

Respuesta1

Guarde un script como este en algún lugar con el .scptformato predeterminado en AppleScript Editor:

repeat
    try
        tell application "System Events"
            if name of (process 1 where frontmost is true) is not "Safari" then error
        end tell
        tell document 1 of application "Safari"
            set u to URL
            set n to name
        end tell
        do shell script "f=/path/to/log_file
u=" & quoted form of u & "
n=" & quoted form of n & "
[[ $(tail -n1 $f | cut -d' ' -f2) = $u ]] && exit
printf '%s\\n' \"$(date +%FT%H:%M) $u $n\" >> $f"
    end try
    delay 10
end repeat

El script sólo se ejecuta cada 10 segundos, por lo que probablemente se perderán algunas páginas. Sin embargo, puedes reducir el retraso si lo deseas.

Puede iniciar el script al iniciar sesión y reiniciarlo si sale guardando una lista de propiedades como esta como ~/Library/LaunchAgents/some_label.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>EnableGlobbing</key>
  <true/>
  <key>Label</key>
  <string>some_label</string>
  <key>ProgramArguments</key>
  <array>
    <string>osascript</string>
    <string>/path/to/script.scpt</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
  <key>KeepAlive</key>
  <true/>
</dict>
</plist>

Luego cargue el plist ejecutándolo launchctl load ~/Library/LaunchAgents/some_label.plisto cerrando sesión y volviendo a iniciarla.

información relacionada