Benötige Skript oder Code, um alle besuchten Safari-Webseiten in eine Datei zu schreiben (Mac)

Benötige Skript oder Code, um alle besuchten Safari-Webseiten in eine Datei zu schreiben (Mac)

Ich weiß, dass dies wahrscheinlich möglich und für jemanden, der weiß, was er tut, wahrscheinlich auch einfach ist, aber ich entschuldige mich schon jetzt für mein geringes Wissen.

Ich suche im Wesentlichen nach einer Art Code (Skript? Auch hier weiß ich es nicht), der entweder die Seitennamen und/oder die vollständigen URLs für jede besuchte Website (auch bei aktiviertem privaten Surfen) in eine „Backup“-Verlaufsdatei schreibt, die nicht über die Standard-Safari-Symbolleiste gelöscht oder geändert wird. Vorzugsweise würde dies Zeitstempel enthalten, dies ist jedoch nicht erforderlich.

Alternativ, wenn es möglich/einfacher ist, die Schaltfläche „Privates Surfen“ aktiviert zu lassen, sie aber so einzustellen, dass sie eigentlich nichts TUT, und dann etwa alle 60 Sekunden Änderungen an der Safari-Verlaufs-Plist an einen „sicheren“ und nicht bearbeitbaren Ort zu schreiben/sichern, würde das auch funktionieren.

Ein paar Dinge, die ich nicht will:

  • Anleitung zum Aktivieren der Kindersicherung oder zum Entfernen der Option zum privaten Surfen

  • Anweisungen für ein Webüberwachungs- oder Spionagesoftwareprogramm, das heruntergeladen und auf dem Computer installiert werden muss

  • Anweisungen zum Anmelden auf Routerebene (derzeit nicht möglich) oder zur Verwendung von Open DNS (das nur Domänen, aber nicht alle Webseiten auf granularer Ebene anzeigt)

  • Ethische oder moralische Diskussion (ich weiß, was ich verlange und warum ich es verlange; bitte vertrauen Sie mir in diesem Punkt)

Ich weiß, dass es Überwachungsprogramme gibt, die das tun, was ich will (und noch viel mehr, von dem das meiste unnötig ist), also gehe ich davon aus, dass es möglich ist, irgendwo etwas zu programmieren, das die gleiche Aufgabe erfüllt. Ich bräuchte auch (um ehrlich zu sein) einige ziemlich ausführliche Anweisungen, wie/wo ich diesen Code eingeben und ausführen kann. Ich bin bereit, (falls nötig) dafür zu zahlen, jemanden dafür einzustellen, aber ohne genau zu wissen, was ich verlange, habe ich Probleme, eine Stellenanzeige auf einer der Websites zum Anheuern eines freiberuflichen Programmierers zu verfassen.

Ich wäre für jede Hilfe/Anleitung/Unterstützung/Erläuterung usw. dankbar.

Antwort1

Speichern Sie ein Skript wie dieses irgendwo im Standardformat .scptim 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

Das Skript wird nur alle 10 Sekunden ausgeführt, daher werden wahrscheinlich einige Seiten ausgelassen. Sie können die Verzögerung jedoch bei Bedarf verkürzen.

Sie können das Skript bei der Anmeldung starten und es neu starten, wenn es beendet wird, indem Sie eine Eigenschaftenliste wie folgt speichern ~/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>

Laden Sie dann die plist, indem Sie sie ausführen launchctl load ~/Library/LaunchAgents/some_label.plistoder sich ab- und wieder anmelden.

verwandte Informationen