经常清理浏览器的历史记录是个好习惯,但有些记录可能以后会用到,需要先备份后再进行清理,并按清理日期备份历史记录。以下是我的需求

  1. 目标浏览器为 Google 浏览器;

  2. 备份当前时间之前所有的历史记录到 txt 文件,文件命名格式为:history_{clear_date}.txt;

  3. 统计并打印备份记录数,总共耗时等信息。

Windows 上的 Google 浏览器会在

\AppData\Local\Google\Chrome\User Data\Default 路径下的 history目录下存在两个数据表:urls表、visits表。

urls 表的大致字段为:id, url, title,visit_count,typed_count,ast_vist_time,hidden...

visits 表的大致字段为:id, url,visit_time, from_visit, transition, segment_id , visit_duration....

我需要的字段有:urls.id, urls.url, urls.title, visits.visit_time, urls.visit_count

因此,通过 python 实现的代码如下:

import os.path
import sqlite3
import timedef getChromeHistory(history_db):start_time = time.perf_counter()clear_date = time.strftime(time.strftime("%Y-%m-%d", time.localtime()))# 连接历史记录数据库con = sqlite3.connect(history_db)# 查询cursor = con.cursor()sql_statement = "SELECT urls.id, visits.visit_time, urls.title, urls.url, urls.visit_count FROM urls,visits WHERE urls.id=visits.url;"cursor.execute(sql_statement)records = cursor.fetchall()  # 抓取所有# records = cursor.fetchmany(1000)  # 1000条测试# 保存到txt文件print(f"正在备份{len(records)}条历史记录......")for data in records:strings = str(data[0]) + ", " + str(data[1]) + ", " + data[2] + ", " + data[3] + ", " + str(data[4])with open(f"D:\\XXX\\history_{clear_date}.txt", 'a+', encoding='utf-8') as fw:fw.writelines(strings + '\n')print(f"历史记录备份完成!耗时:{time.perf_counter() - start_time}秒!")if __name__ == '__main__':# 历史记录数据库所在位置db_path = os.path.expanduser('~') + r"\AppData\Local\Google\Chrome\User Data\Default"history = os.path.join(db_path, 'history')getChromeHistory(history)

测试效果:

正在备份1000条历史记录......
历史记录备份完成!耗时:0.3269138秒!

测试过程中,遇到的问题:

原因:SQLite 数据库只支持单线程操作,关闭谷歌浏览器等占用该线程的资源即可。

【记录】如何备份Google浏览器的历史记录?相关推荐

  1. centos安装软件【google浏览器,QQ】【拷贝旧的文件源作为备份】【软件源更换为清华源】

    centos7.8(2003)安装google浏览器[2020-8-26] 用linux自带浏览器打开google网站 自动识别当前系统的安装版本 https://www.google.cn/chro ...

  2. pip install安装系列之Pytorch、TorchVision、PyQt、OpenCV、gdcm包安装,Windows远程桌面Ubuntu16.04记录,Linux下安装google浏览器汇总

    目录 1.Anaconda各版本下载地址 2.Torch,Torchvision 3.PyQt4/5,OpenCV的安装 4.win10安装tensorflow 5.Windows7远程桌面Ubunt ...

  3. google浏览器安装vuejs-devtools插件2022年安装记录

    Vue.js devtools 背景简介 我们chrome插件网之前介绍过Vue.js devtools,是基于google chrome浏览器的一款调试vue.js应用的开发者浏览器扩展,可以在浏览 ...

  4. 如何批量删除QQ浏览器指定历史记录和导出指定的历史记录

    QQ浏览器的历史记录只有清空历史记录和删除选中项两个功能.有时我不想删除所有的历史记录,只是想删除指定的历史记录保留对自己有用的历史记录,方便自己以后查找.但是删除选中项功能只能一项一项的选择,才能批 ...

  5. 如何操作2345浏览器的历史记录

    2345浏览器是一款可以随时搜索资讯的浏览服务软件,用户可以在这里更好的管理自己使用时候的历史记录,这样就会更加方便用户使用,不管是今天还是上个月的历史记录都可以快速查看,使用起来超级的方便,可以帮助 ...

  6. google浏览器打开不久自动退出

    一.原因 可能原因: 1.中毒,不断的增加数据导致cpu.内存增长,引起系统强制关闭: 2.长时间使用,数据太多,浏览器打开时,cpu.内存占用太多,被系统强制关闭. 二.建议 对于问题一,建议采用以 ...

  7. Ubuntu卸载firefox浏览器安装google浏览器

    1. 前言 Ubuntu20.4系统,默认用的firefox浏览器,在2022.09.25日之后打开钉钉网页版,突然提示目前该浏览器不支持企业钉钉网页版了,请使用UC浏览器或google浏览器,之前f ...

  8. Ubuntu命令行安装Google浏览器

    下载安装包 平时工作时,经常使用的是Google浏览器:初次使用火狐浏览器还是蛮不习惯的.所以准备把谷歌浏览器的安装的方式记录一下.以便于后期Ubuntu虚拟机重置之后,可以快速的安装起来. wget ...

  9. Chrome (Google) 浏览器的快捷键大全

    我相信喜欢高效工作的人,在使用工具时,一定喜欢用快捷键,这样才可以将效率提高,以下是网上转过来的,Chrome (Google) 浏览器的快捷键大全,希望对有需要有朋友有所帮助 1 Ctrl+N 打开 ...

最新文章

  1. 为什么要引入模式概念来设计软件
  2. 【RecyclerView】 十一、RecyclerView 数据更新 ( 删除单条数据 | 批量删除数据 )
  3. 数据结构第八篇——链栈
  4. 神策数据荣获“2017年度中国双创好项目”奖项
  5. Rust初步(三):使用atom搭配racer进行rust编程
  6. OpenGL多窗口示例
  7. 2019 年 8 月编程语言排行榜,Java涨幅不行!
  8. 基于CDS view生成的OData服务的metadata是如何生成的
  9. 女人的安全感到底是什么?
  10. JS实现表单多文件上传样式美化支持选中文件后删除相关项
  11. Bailian2697 迭代法解方程【二分+迭代】
  12. 设计一个python程序来计算显示通过如图_Python程序设计 17计算机、物联网 合班-中国大学mooc-试题题目及答案...
  13. SVN客户端安装以及操作流程
  14. 360浏览器怎么开java_360安全浏览器怎么打开javascript
  15. 运维工程师与php,php新手入门的基础内容①
  16. 基于OpenCV实现二维码发现与定位
  17. java多线程 注意事项_多线程使用及注意事项
  18. Matlab样条工具箱(Spline ToolBox)与曲线拟合
  19. mysqladmin 管理命令详细应用
  20. mysql .xb文件恢复

热门文章

  1. 旧式台式计算机,浅析老式台式电脑用Win7好还是win10系统好?哪个比较流畅?
  2. Jquery — 数组的遍历
  3. Excel中如何利用函数验证身份证号码是否正确?
  4. OpenCasCade批处理简介
  5. 2020笔记本性价比之王_2020笔记本电脑性价比排行是怎样的?
  6. 2018年第三个工作日,我们如何利用碎片化学习?
  7. hibernate 或jpa 中使用 AliasToBeanResultTransformer 自定义类型转换ResultTransformer 下划线转驼峰...
  8. Python_正则表达式提取字符串
  9. GRE通用路由封装协议
  10. java随机姓名 根据网络爬虫爬取百家姓和名字