Как я могу читать файлы Chrome Cache?

Форум, который я часто посещал сегодня, не работал, и после восстановления я обнаружил, что последние два дня сообщений на форуме были полностью откатированы.

Нет нужды говорить, что я хотел бы получить обратно все данные, которые я могу получить от потери форума, и я надеюсь, что у меня есть, по крайней мере, некоторые из них хранятся в кэш-файлах, которые Chrome создал.

Я сталкиваюсь с двумя проблемами - кэш-файлы не имеют файлового типа, и я не знаю, как их разумно прочитать (попытка открыть их в самом Chrome, кажется, "перезагружает" их в формате .gz), и есть тонна кэш-файлов.

Какие-нибудь предложения по чтению и сортировке этих файлов? (Простой поиск по строкам должен соответствовать моим потребностям)

24
задан Raven Dreamer 26 May 2011 в 03:55
поделиться

1 ответ

Joachim Metz обеспечивает некоторая документация формата файла кэша Chrome со ссылками на дополнительную информацию.

Для моего варианта использования, мне только был нужен список кэшируемых URL и их соответствующих меток времени. Я записал сценарий Python для получения их путем парсинга data_* файлов под C:\Users\me\AppData\Local\Google\Chrome\User Data\Default\Cache\:

import datetime
with open('data_1', 'rb') as datafile:
    data = datafile.read()

for ptr in range(len(data)):
    fourBytes = data[ptr : ptr + 4]
    if fourBytes == b'http':

        # Found the string 'http'. Hopefully this is a Cache Entry
        endUrl = data.index(b'\x00', ptr)
        urlBytes = data[ptr : endUrl]
        try:
            url = urlBytes.decode('utf-8')
        except:
            continue

        # Extract the corresponding timestamp
        try:
            timeBytes = data[ptr - 72 : ptr - 64]
            timeInt = int.from_bytes(timeBytes, byteorder='little')
            secondsSince1601 = timeInt / 1000000
            jan1601 = datetime.datetime(1601, 1, 1, 0, 0, 0)
            timeStamp = jan1601 + datetime.timedelta(seconds=secondsSince1601)
        except:
            continue

        print('{} {}'.format(str(timeStamp)[:19], url))
0
ответ дан 28 November 2019 в 22:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: