1

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

Некоторое время назад я использовал Python-скрипт по этим направлениям (это код, который я получил из других источников, но я забыл, где):

pattern = "(((http)|(https))(://)(www.)|().*?)\.[a-z]*/"
SQL_STATEMENT = 'SELECT urls.url, visit_time FROM visits, urls WHERE visits.url=urls.id;'

dumpdir = '...\Chrome History Dump'
storage = open(dumpdir+'/hdump.txt', 'a')

def date_from_webkit(webkit_timestamp):
    epoch_start = datetime.datetime(1601,1,1)
    delta = datetime.timedelta(microseconds=int(webkit_timestamp))
    return epoch_start + delta

paths = ["...\AppData\Local\Google\Chrome\User Data\Default\Archived History", 
         "...\AppData\Local\Google\Chrome\User Data\Default\History"] 

for path in paths:
    c = sqlite3.connect(path) 
    for row in c.execute(SQL_STATEMENT):
        date_time = date_from_webkit(row[1])
        url = re.search(pattern, row[0])
        try: urlc = url.group(0)
        except: urlc = "ERROR"
        storage.write(str(date_time)[0:19] + "\t" + row[0] + "\n")
    c.close()
    os.remove(path)

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

  • Решение должно извлечь историю браузера и (предпочтительно) удалить копию Google.
  • Было бы хорошо, если бы можно было запускать его автоматически, каждый раз при запуске Chrome (как я делал с небольшим сценарием выше) или по регулярному расписанию.
  • Решение должно быть максимально устойчивым к изменениям в том, как Chrome хранит свою историю - либо по дизайну, либо (даже лучше), потому что это постоянно поддерживаемая часть программного обеспечения.
  • Нужно только хранить URL и время посещения, информацию в истории можно отбросить.

Большое спасибо.

0