Ver el tiempo de visita del sitio web en el historial de Safari

Estoy tratando de averiguar cómo determinar la hora en que se visitaron los sitios web en el historial de Safari. (No puedo imaginar por qué esto no es fácil de hacer como en todos los demás navegadores que he usado).

NOTA: estoy ejecutando Safari 9.0.3 y El Capitan 10.11.3.

Investigué un poco y encontré algunos archivos en formato ~/Library/Safari. El archivo de History.dbarchivo parece posiblemente prometedor, pero aún no he podido descubrir cómo encontrar la marca de tiempo de esto.

Respuestas (6)

Acabo de probar esto en 10.11.4 y funciona; Puedes ver la historia. Si alguien borra el caché, esto desaparece.

Vaya a la siguiente ubicación:

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

Desde aquí puede cambiar la vista a Vista de lista y ordenar por Fecha de modificación.

Aún así, sería bueno si Apple trabajara un poco en esto: una extensión simple sería útil como esta para Chrome chrome.google.com/webstore/detail/better-history/…
aquí hay un nuevo enlace para la extensión Better History: chrome.google.com/webstore/detail/better-history/…
En la última versión (12.2.1), no se puede encontrar la ubicación. Debe ser revisado a: /Users/yourname/Library/Safari/LocalStorage
Esta carpeta no existe en mi extremo ¿es normal?

Así que me desperté hoy con mi aplicación de seguimiento del sueño diciéndome que me acosté una hora antes de lo que pensaba, así que, naturalmente, asumí que la aplicación fue la que cometió el estúpido error. Afortunadamente había navegado por la web antes de irme a la cama, pero aparentemente Apple cambió las cosas nuevamente a partir de High Sierra o Safari 11, por lo que las otras respuestas no me funcionaron.

Descubrí cómo obtener los tiempos de visita, y dado que ya fui demasiado lejos para llegar al fondo de este problema sin importancia, pensé en compartir mis hallazgos aquí:

Editar

De acuerdo, me dejé llevar un poco más y escribí una sola línea bash para hacer todo el trabajo duro por ti. Simplemente abra el terminal y cópielo. Debería funcionar sin tener que instalar nada, a menos que Apple haya cambiado algo nuevamente mientras tanto.

Puede ignorar las líneas vacías en la salida (son redireccionamientos de http) y puede cambiar el último número 30en el comando para filtrar la cantidad de líneas que desea ver.

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

respuesta original

Entonces, en lugar de tener una carpeta simple con todo el historial como antes, ahora escriben el historial en una base de datos. Así es como obtienes la información si realmente quieres:

  1. Los datos ahora se almacenan en una base de datos SQLite, por lo que necesitará alguna herramienta para leer eso. Sugiero el DB Browser para SQLite . Simplemente instálelo de la manera habitual.
  2. Ahora abra el archivo de la base de datos. Se encuentra aquí: /Users/[yourname]/Library/Safari/History.db.
  3. En la pestaña Examinar datos , haga clic en el menú desplegable Tabla: y seleccione history_visits .Captura de pantalla de History_visits
  4. Ahora, ordene por visit_time y encuentre lo que le interesa.
  5. Esos números debajo de la columna visit_time son una marca de tiempo de datos básicos, por lo que para obtener algo legible por humanos, necesita un convertidor. Simplemente use este: https://www.epochconverter.com/coredata

Espero que esto resuelva tu enigma relacionado con la historia.

Eres genial compañero!! ¡También funciona de maravilla en Mojave!
¡Las otras soluciones no funcionaban en mojave, pero esto funciona muy bien! Muchas gracias compañero :)
Si falla, simplemente copie el archivo de la base de datos en otro lugar, o tal vez cerrar Safari sea suficiente
genial, pero no puedo hacer que se abra manualmente o en la terminal usando el comando. ¿qué ocurre?
Si agrega el texto ` > ~/SafariHist.txt ` al final de este comando, se generará directamente en un archivo en su directorio de inicio. Útil para exportar/ver miles de entradas. ¡Gran consejo, tu trabajo fue muy útil!
La marca de tiempo de Core Data se puede convertir a una forma legible por humanos de la siguiente manera: select datetime(visit_time + 978307200, 'unixepoch', 'localtime') as 'Visit Time',…. La constante 978307200es la diferencia en segundos entre la época de Unix (1970-01-01) y la época de Apple (2001-01-01).
No puedo abrirlo desde DB Browser para SQLite, lo que da Could not open database file. Reason: unable to open database file.

Modifiqué el oneliner que meonlol dio arriba. De esta manera, es solo una consulta SQL pura. Esto también incluye URL y exportaciones a CSV.

sqlite3 ~/Library/Safari/History.db \
    'SELECT
        datetime(V.visit_time+978307200, \"unixepoch\", \"localtime\") AS datetime,
        I.url,
        V.title
 FROM history_visits V
 LEFT JOIN history_items I on V.history_item = I.id
 ORDER BY visit_time DESC
 LIMIT 5000;' -header -csv > safari-history.csv

En Mojave, y posiblemente más adelante, el acceso al archivo en la terminal parece limitado. Otorgue acceso completo a Terminal en Preferencias del sistema o use Finder para abrir ~/Library/Safariy luego copiar History.dba otro lugar.

+1 al copiar la base de datos a una ubicación fuera del árbol de la Biblioteca (al menos en Mojave). Parece un paso necesario para acceder a la base de datos.
Todavía puede acceder al archivo en Mojave si otorga acceso completo a la Terminal en las Preferencias del Sistema.
Agregue -header -csv > safari_history.csval final de esto y guardará el resultado en formato CSV
Perdona el formato. Obtener URL para un día determinado:sqlite3 ~/path/to/History.db 'select url from (select date(V.visit_time+978307200, "unixepoch", "localtime") AS date, I.url as url, V.title from history_visits V left join history_items I on V.history_item = I.id where date = "2021-06-25");' -header -csv > ~/safari-history.csv
Después de editar la lista, puede hacer (en macOS):input=~/path/to/safari-history.csv while read line; do open $line; done < "$input"

Quería la URL, así como el título de la ventana, además de la capacidad de buscar o seleccionar, etc., que se pueden agregar en la consulta (que ilustra la mención de Google en cualquier lugar). En este caso, eliminé cualquier cola larga de URL después del carácter ampersand (&). El tac lo vuelve a poner a la última en el pedido final. En sesión de terminal:

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

Revisar la navegación en una fecha anterior determinada implica complejidades de hora y fecha, pero esto puede ayudar, a partir de una fecha y hora determinadas, edite2020-01-19 15:30 para su necesidad...

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;'

Dando salida como:

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&

Una última nota, si abre una sesión de sqlite3 para hacer muchas consultas, descubrí que la base de datos no parece actualizarse si continúa usando Safari. ¿Quizás se usa una copia instantánea? (Esto en El Capitán. Si tiene que hacer una copia de archivo en versiones posteriores del sistema operativo, ¡obviamente no se muestran actualizaciones!)

Este camino ha cambiado en Sierra

En 10.12.6 ir a

/Usuarios/tunombre/Biblioteca/Cachés/Metadatos/Safari/Historial

En Sierra, ahora solo use Finder para buscar una carpeta llamada Safari, luego vaya a la carpeta Historial y podrá cambiar la vista como se mencionó anteriormente.