刺激!一行代码即可导出所有浏览记录
作者:刘早起
来源:早起Python
一行Python代码即可导出多种浏览器的历史记录?就像这样?
现在来说说原理,不管是Windows还是MAC,Chrome等浏览器的历史数据都是存储在本地的SQLite
数据库中,例如Windows用户可以在C:UsersAdministratorAppDataLocalGoogleChromeUser DataDefault
找到,当然在Python中我们可以使用内置OS
模块找到该数据库文件,再使用Python内置的sqlite3
模块可以轻松读取并导出浏览记录数据,而这个过程在GitHub上已经有一位外国小哥帮我们完成了,总共不到200行代码,现在我们只要使用pip install browserhistory
安装,接着进入Python导入
import browserhistory as bh
现在只要一行代码即可查看全部历史浏览记录
bh.get_browserhistory()
JSON格式数据不怎么好看,可以借助Pandas转换为表格,并且可以查看指定浏览器的记录,比如Safari
import pandas as pd
pd.DataFrame.from_dict(bh.get_browserhistory()['safari'])
当然也可以一行代码将历史记录导出为CSV
bh.write_browserhistory_csv()
打开我的Safari记录看看,最早的一条记录居然是去年6月的调试Django项目的记录,看来很久没有清空了
但是在保存数据时有一个小插曲,作者在源码中使用CSV模块来将数据写入CSV表格时使用的编码是UTF-8
,这会导致中文乱码
所以只要进入源码将UTF-8
改为utf-8_sig
就能正常保存中文了,或者直接copy过来源码并修改也是可以的。并且要注意执行程序时要彻底退出浏览器,否则会丢失对应浏览器的记录。
最后,有了几万条浏览记录,就可以进行一些简单分析,比如面向搜索引擎编程的我,最常访问的网站就是百度、Google、GitHub、stack overflow等,当然你也可以写一个简单的脚本并打包,获取某人的浏览记录,看看TA上班是不是爱摸鱼,或者根据妹子的访问记录来找点话题,大家自由发挥。
- 【自然框架】js版的QuickPager分页控件 V2.0
- 你的SQL语句放在了哪里?
- oclhashcat:离线hash密码破解工具官方文档(中文版)
- 如何动态加载js?
- 【自然框架】数据访问之精雕细琢(一)存储过程的参数
- 100w条记录分页,可以有多快?—— DataReader分页与SQL语句分页的对比测试(在线演示)
- Mimikatz小实验:黄金票据+dcsync
- 【自然框架】n级下拉列表框的原理
- 【自然框架】分享 n级联动下拉列表框
- GSM Hacking Part ②:使用SDR捕获GSM网络数据并解密
- 【自然框架】之数据访问 —— 再小的类库也需要设计。
- 【自然框架】之表单控件(一)实体类(Class)VS 字典(Dictionary)
- 跨平台后门Mokes现已加入OS X豪华午餐
- 【问底】严澜:数据挖掘入门——分词
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 你喜欢的女主播颜值多少分,今天带你测试虎牙直播女主播的颜值
- (译)kubectl 的奇技淫巧
- Python实现主播人气排行榜,带你发现人气王
- (译)Kubernetes:移除 CPU 限制,服务运行更快
- python_不误正业之贪吃蛇
- 如何让你在众多二手车中挑中满意的?python帮你实现(附源码)
- python苦短_SVM测试
- 招聘信息太多,哪家职位才是适合你的?Python采集招聘信息
- 福利来啦,送给大家一个小游戏的源码,不要错过哟(复制粘贴运行即可玩)
- 今天抠图,Python实现一键换底片!想换什么换什么(附源码)
- 你想不到的沙雕,8行代码Python实现GIF图倒放,每天的快乐源泉
- python爬虫-首医
- 2万8千张图片如何用python组成一张(简洁明了附源码)
- 10 种常用 Matplotlib 图的 Python 代码
- Python爬取某宝商品数据案例:100页的价格、购买人数等数据