Zobacz czas odwiedzin strony w historii Safari

21

Próbuję dowiedzieć się, jak określić czas odwiedzania stron internetowych w historii Safari. (Nie mogę sobie wyobrazić, dlaczego nie jest to łatwe tak jak w każdej innej przeglądarce, z której kiedykolwiek korzystałem).

UWAGA: Używam Safari 9.0.3 i El Capitan 10.11.3.

Przeprowadziłem badania i znalazłem kilka plików ~/Library/Safari. Plik History.dbpliku wygląda prawdopodobnie obiecująco, ale nie byłem jeszcze w stanie dowiedzieć się, jak znaleźć znacznik czasu z tego.

Darren
źródło

Odpowiedzi:

16

Właśnie próbowałem tego w 10.11.4 i działa; możesz zobaczyć historię. Jeśli ktoś wyczyści pamięć podręczną, zniknie.

Przejdź do następującej lokalizacji:

/Users/yourname/Library/Caches/Metadata/Safari/History/

Stąd możesz zmienić widok na Widok listy i sortować według daty modyfikacji.

fsb
źródło
4
nadal byłoby miło, gdyby Apple pracował nad tym - proste rozszerzenie byłoby pomocne w przypadku chrome chrome.google.com/webstore/detail/better-history/…
BG Bruno
22

Więc dzisiaj obudziłem się z aplikacją do śledzenia snu, mówiąc mi, że poszedłem spać godzinę wcześniej, niż myślałem, więc oczywiście założyłem, że ta aplikacja popełniła głupi błąd. Na szczęście surfowałem po Internecie przed pójściem spać, ale najwyraźniej Apple zmieniło wszystko od High Sierra lub Safari 11, więc inne odpowiedzi nie działały dla mnie.

Dowiedziałem się, jak skrócić czas odwiedzin, a ponieważ doszedłem już zbyt daleko, aby dojść do sedna tego bardzo nieistotnego problemu, pomyślałem, że podzielę się swoimi spostrzeżeniami tutaj:

Edytować

Okej, więc trochę mnie poniosło i napisałem bash jeden liniowiec, aby wykonać dla ciebie całą ciężką pracę. Wystarczy otworzyć terminal i wkleić go. Powinien działać bez konieczności instalowania czegokolwiek, chyba że Apple zmieniło coś w międzyczasie.

Możesz zignorować puste linie na wyjściu (są to przekierowania http) i możesz zmienić ostatnią liczbę 30w poleceniu, aby odfiltrować liczbę linii, które chcesz zobaczyć.

sqlite3 ~/Library/Safari/History.db 'select visit_time,title from history_visits order by visit_time desc;' \
 | while read i; do d="${i%%.*}"; echo "$(date -r $((d+978307200))) | ${i#*|}"; done \
 | head -n 30

Oryginalna odpowiedź

Zamiast prostego folderu z całą historią, jak poprzednio, teraz zapisują historię w bazie danych. Oto jak uzyskać informacje, jeśli naprawdę chcesz:

  1. Dane są teraz przechowywane w bazie danych SQLite, więc będziesz potrzebować jakiegoś narzędzia, aby je odczytać. Sugeruję przeglądarkę DB dla SQLite . Wystarczy zainstalować w zwykły sposób.
  2. Teraz otwórz plik bazy danych. Znajduje się tu: /Users/[yourname]/Library/Safari/History.db.
  3. Na karcie Przeglądaj dane kliknij menu Tabela: i wybierz wizyty_widokowe . Zrzut ekranu z History_visits
  4. Teraz posortuj według visit_time i znajdź to, co Cię interesuje.
  5. Te liczby w kolumnie visit_timedatownikiem Core Data, więc aby uzyskać coś czytelnego dla człowieka, potrzebujesz konwertera. Po prostu użyj tego: https://www.epochconverter.com/coredata

Mam nadzieję, że to rozwiąże twoją zagadkę związaną z historią.

leondepeon
źródło
1
Jesteś niesamowitym kumplem !! Działa też jak urok w Mojave !!
Jeeva,
2
Inne rozwiązania nie działały na mojejve, ale działa świetnie !! Dziękuję bardzo kolego :)
Flaming_Dorito
Jeśli się nie powiedzie, po prostu skopiuj plik bazy danych w inne miejsce, a może wystarczy zamknąć safari
Simon
10

Zmodyfikowałem oneliner podany powyżej przez meonlol. W ten sposób jest to po prostu zapytanie SQL.

sqlite3 ~/Library/Safari/History.db \
    'SELECT datetime(visit_time+978307200, "unixepoch", "localtime"), title
     FROM history_visits
     ORDER BY visit_time DESC
     LIMIT 30;'

W Mojave i prawdopodobnie później dostęp do pliku w terminalu wydaje się ograniczony. Udziel pełnego dostępu do terminala w Preferencjach systemowych lub użyj Findera, aby otworzyć, ~/Library/Safaria następnie skopiować History.dbdo innego miejsca.

priiiiit
źródło
1
+1 po skopiowaniu bazy danych do lokalizacji poza drzewem biblioteki (przynajmniej w Mojave). Wydaje się wymagany krok, aby uzyskać dostęp do bazy danych.
DaveL17,
1
Nadal możesz uzyskać dostęp do pliku w Mojave, jeśli udzielisz terminalowi pełnego dostępu w Preferencjach systemowych.
nohillside
1

Ta ścieżka zmieniła się w Sierra

W 10.12.6 przejdź do

/ Users / yourname / Library / Caches / Metadata / Safari / History

użytkownik258682
źródło
0

W Sierra wystarczy teraz użyć Findera, aby wyszukać folder o nazwie Safari, a następnie przejść do folderu Historia i można zmienić widok, jak wspomniano wcześniej.

Amanda
źródło
0

Chciałem adres URL, a także tytuł okna, a także możliwość wyszukiwania lub wyboru itp., Które można dodać do zapytania (ilustrując wzmiankę o Google w dowolnym miejscu). W tym przypadku usunąłem długi ogon adresu URL po znaku ampersand (&). Tac odkłada go z powrotem w końcowej kolejności. W sesji terminalowej:

sqlite3 ~/Library/Safari/History.db 'SELECT datetime(history_visits.visit_time+978307200, "unixepoch", "localtime"), history_visits.title || " @ " || substr(history_items.URL,1,max(length(history_items.URL)*(instr(history_items.URL,"&")=0),instr(history_items.URL,"&"))) as Info FROM history_visits INNER JOIN history_items ON history_items.id = history_visits.history_item where Info like "%google%" ORDER BY visit_time DESC  LIMIT 30;'|tac

Przeglądanie przeglądania w danym dniu z przeszłości wiąże się ze złożonością czasu i daty, ale może to pomóc, począwszy od określonej daty i godziny, edytować20-01-01 15:30 w zależności od potrzeb ...

sqlite3 ~/Library/Safari/History.db 'SELECT datetime(history_visits.visit_time+978307200, "unixepoch", "localtime"), history_visits.title || " @ " || substr(history_items.URL,1,max(length(history_items.URL)*(instr(history_items.URL,"&")=0),instr(history_items.URL,"&"))) as Info FROM history_visits INNER JOIN history_items ON history_items.id = history_visits.history_item where history_visits.visit_time>(julianday("2020-01-19 15:30")*86400-211845068000)  ORDER BY visit_time ASC LIMIT 30;'

Dając wynik taki jak:

2020-01-20 16:35:15|Amazon.co.uk: carborundum wheel @ https://www.amazon.co.uk/s/ref=nb_sb_noss_1?url=search-alias%3Daps&
2020-01-20 16:35:15|Amazon.co.uk: carborundum wheel @ https://www.amazon.co.uk/s?k=carborundum+wheel&
2020-01-20 16:35:41|Multi-Sharp 1301 Rotary Mower/Garden Tool Sharpener: Amazon.co.uk: Garden & Outdoors @ https://www.amazon.co.uk/Multi-Sharp-Rotary-Mower-Garden-Sharpener/dp/B0001OZH6M/ref=sr_1_11?keywords=carborundum+wheel&
2020-01-20 16:37:14|Amazon.co.uk: grinding wheel @ https://www.amazon.co.uk/s?k=grinding+wheel&
2020-01-20 16:39:26|Amazon.co.uk: grinding wheel @ https://www.amazon.co.uk/s?k=grinding+wheel&
2020-01-20 16:39:26|Amazon.co.uk: grinding wheel @ https://www.amazon.co.uk/s?k=grinding+wheel&
2020-01-20 16:40:15|FERM BGA1057 Grind Stone: Amazon.co.uk: DIY & Tools @ https://www.amazon.co.uk/Ferm-BGA1057-FERM-Grind-Stone/dp/B00AW9GVO8/ref=sr_1_71?keywords=grinding+wheel&

I ostatnia uwaga: jeśli otworzysz sesję sqlite3 w celu wykonania wielu zapytań, zauważyłem, że baza danych nie wydaje się aktualizować, jeśli nadal będziesz używać Safari. Może używana jest kopia migawki? (To na El Capitan. Jeśli musisz zrobić kopię pliku w późniejszych wersjach systemu operacyjnego, oczywiście nie pojawiają się żadne aktualizacje!)

Colin
źródło