.png)
我知道這可能是可能的,而且對於知道自己在做什麼的人來說可能很容易,但我提前為我知之甚少表示歉意。
我本質上是在尋找某種程式碼(腳本?再說一遍,我不知道),它將每個訪問過的網站(即使啟用了隱私瀏覽)的頁面名稱和/或完整 URL 寫入「備份」歷史記錄不會透過標準Safari 工具列刪除或修改的檔案。最好包括時間戳,但這不是必需的。
或者,如果可以/更輕鬆地啟用「隱私瀏覽」按鈕,但使其實際上不執行任何操作,則每隔60 秒左右將更改寫入/備份到Safari 歷史記錄plist 到「安全性」且不可編輯的位置,那也行。
有幾件事我不要:
有關如何啟用家長控製或刪除隱私瀏覽選項的說明
必須下載並安裝到電腦上的網路監控或間諜軟體程式的說明
有關如何在路由器層級登入(目前不可能)或使用開放 DNS(僅顯示網域,而不是細粒度等級的所有網頁)的說明
倫理或道德討論(我知道我在問什麼以及為什麼我要問它;請相信我)
我知道有一些監視程式可以執行我想要的操作(還有更多,其中大部分是不必要的),因此我認為可以在某個地方編寫一些程式碼來完成相同的任務。我還需要(老實說)一些關於如何/在哪裡輸入此程式碼並使其運行的非常詳細的說明。我願意付費(如果有必要)僱用某人來做這件事,但即使不確切知道我想要什麼,我也無法在任何僱用自由編碼員的網站上製定職位發布。
任何幫助/指導/協助/澄清/等。將不勝感激。
答案1
.scpt
在 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
該腳本每 10 秒才運行一次,因此可能會丟失一些頁面。如果您願意,您可以減少延遲。
您可以在登入時啟動腳本,並在腳本退出時重新啟動它,方法是保存屬性列表,如下所示~/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>
launchctl load ~/Library/LaunchAgents/some_label.plist
然後透過執行或登出並重新登入來載入 plist 。