방문한 모든 Safari 웹페이지를 파일에 기록하려면 스크립트 또는 코드가 필요합니다(mac)

방문한 모든 Safari 웹페이지를 파일에 기록하려면 스크립트 또는 코드가 필요합니다(mac)

나는 이것이 아마도 가능하고 자신이 하는 일을 아는 사람에게는 쉬울 것이라는 것을 알고 있지만, 내가 아는 것이 거의 없다는 점에 대해 미리 사과드립니다.

나는 본질적으로 방문한 모든 웹 사이트의 페이지 이름 및/또는 전체 URL(비공개 브라우징이 활성화된 경우에도)을 "백업" 기록에 기록하는 일종의 코드(스크립트? 다시 말하지만)를 찾고 있습니다. 표준 Safari 도구 모음을 통해 삭제되거나 수정되지 않는 파일입니다. 타임스탬프를 포함하는 것이 바람직하지만 필수는 아닙니다.

또는 개인 정보 보호 브라우징 버튼을 활성화된 상태로 두는 것이 가능하거나 더 쉬우나 실제로는 아무 작업도 수행하지 않도록 설정한 다음 60초마다 Safari 기록 plist의 변경 사항을 "안전하고" 편집할 수 없는 위치에 기록/백업합니다. , 그것도 효과가 있을 것 같아요.

내가 원하지 않는 몇 가지:

  • 자녀 보호 기능을 활성화하거나 개인 탐색 옵션을 제거하는 방법에 대한 지침

  • 컴퓨터에 다운로드하여 설치해야 하는 웹 모니터링 또는 스파이 소프트웨어 프로그램에 대한 지침

  • 라우터 수준에서 로그인하는 방법(현재는 불가능) 또는 Open DNS(도메인만 표시하고 세부적인 수준의 모든 웹페이지는 표시하지 않음)를 사용하는 방법에 대한 지침

  • 윤리적 또는 도덕적 토론(나는 내가 요구하는 것이 무엇인지, 왜 요구하는지 알고 있습니다. 이에 대해서는 저를 믿으십시오.)

나는 내가 원하는 것을 수행하는 모니터링 프로그램이 있다는 것을 알고 있으므로(그리고 훨씬 더 많은 것, 대부분은 불필요함) 동일한 작업을 수행할 어딘가에 코드를 작성하는 것이 가능하다고 가정합니다. 또한 (솔직히 말해서) 이 코드를 입력하고 실행하는 방법/위치에 대한 매우 철저한 지침이 필요합니다. 이 작업을 수행할 사람을 고용하기 위해 (필요한 경우) 기꺼이 비용을 지불할 의향이 있지만, 제가 요구하는 것이 정확히 무엇인지도 모르면서 프리랜서 코더 고용 사이트에서 채용 게시물을 작성하는 데 어려움을 겪고 있습니다. .

모든 도움/안내/지원/설명/등. 감사하겠습니다.

답변1

.scptAppleScript 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

스크립트는 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를 로드합니다 .

관련 정보