Я заинтересован в личной аналитике и хотел бы найти надежный способ агрегирования и хранения моей истории просмотра веб-страниц в формате, который я могу понять и манипулировать им. Я в основном использую 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 и время посещения, информацию в истории можно отбросить.
Большое спасибо.