Precisa de script ou código para gravar todas as páginas visitadas do Safari em um arquivo (mac)

Precisa de script ou código para gravar todas as páginas visitadas do Safari em um arquivo (mac)

Sei que isso provavelmente é possível e provavelmente fácil para alguém que sabe o que está fazendo, mas peço desculpas antecipadamente pelo pouco que sei.

Estou essencialmente procurando algum tipo de código (script? de novo, não sei) que gravará os nomes das páginas e/ou URLs completos de cada site visitado (mesmo com a navegação privada ativada) em um histórico de "backup" arquivo que não será apagado ou modificado através da barra de ferramentas padrão do Safari. De preferência, isso incluiria carimbos de data/hora, embora isso não seja obrigatório.

Alternativamente, se for possível/mais fácil deixar o botão Navegação Privada ativado, mas fazer com que ele não faça nada, então grave/faça backup das alterações na lista de histórico do Safari a cada 60 segundos ou mais para um local "seguro" e não editável , isso também funcionaria.

Algumas coisas que eu não quero:

  • Instruções sobre como ativar o Controle dos Pais ou remover a opção de navegação privada

  • Instruções para um programa de monitoramento da web ou software espião que deve ser baixado e instalado no computador

  • Instruções sobre como fazer login no nível do roteador (atualmente não é possível) ou usar Open DNS (que mostra apenas domínios, mas não todas as páginas da Web em nível granular)

  • Discussão ética ou moral (eu sei o que estou pedindo e por que estou pedindo; por favor, confie em mim)

Eu sei que existem programas de monitoramento que fazem o que eu quero (e muito mais, muitos dos quais são desnecessários), então presumo que seja possível codificar algo em algum lugar que realize a mesma tarefa. Eu também precisaria (serei honesto) de algumas instruções bastante completas sobre como/onde inserir esse código e executá-lo. Estou disposto a pagar (se necessário) para contratar alguém para fazer isso, mas mesmo sem saber exatamente o que estou pedindo, estou tendo problemas para formular um anúncio de emprego em qualquer um dos sites de contratação de programadores freelance .

Qualquer ajuda/orientação/assistência/esclarecimento/etc. seria apreciado.

Responder1

Salve um script como este em algum lugar no .scptformato padrão no Editor AppleScript:

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

O script é executado apenas a cada 10 segundos, portanto provavelmente perderá algumas páginas. Você pode reduzir o atraso se quiser.

Você pode iniciar o script no login e reiniciá-lo se ele sair, salvando uma lista de propriedades como esta ~/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>

Em seguida, carregue o plist executando launchctl load ~/Library/LaunchAgents/some_label.plistou efetuando logout e login novamente.

informação relacionada