使用 python 获取浏览器收藏夹和历史浏览记录,然后可以...
在电脑上浏览个网页,都要用到浏览器,当你打开网页的那一刻,浏览器就会记录你的浏览信息,这些信息可能就是你的信息泄露的根源。下面看看如何使用 python 获取一下历史浏览记录;
以 chrome 浏览器为例:
找到浏览器数据存放位置
数据存放位置一般都是固定的,基本都在以下位置
C:\Users\Administrator\AppData\Local\Google\Chrome\User Data\Default
如果在这个位置没有找到,可以打开 chrome 浏览器,在地址栏输入
chrome://version
在个人资料路径后面就是数据存放位置;
进入在文件夹,在其中查找文件:
Bookmarks 存放收藏书签 History 存放历史浏览记录
获取书签
Bookmarks 是保存了书签信息,数据以一个 json 文件格式保存,所以获取书签信息直接使用 python 读取文件即可
在书签文件中;
bookmark_bar 书签栏 other 其他书签 .synced 移动设备书签
获取历史浏览记录
Histroy 文件是一个 sqlite3 数据库;获取其中数据需要使用 sqlite3 库;
使用数据库可视化工具打开数据库,在里面找到 urls 表,你所有的历史浏览记录都会保存在这个表中
python 要连接数据库,获取数据,就需要使用 python 中的 sqlite3;sqlite3 是 Python 自带的库,不需要额外安装模块,操作简单。
首先定义数据库路径,将路径传入 sqlite3.connect()方法中,先连接上数据库;然后获取 curosr 游标,通过执行 sql 查询语句,获取表中数据;
具体代码可以参考如下:
需要备注的是:
一:
last_visit_time 表示的 url 的最近访问时间;单位是微妙 换算成秒的时候,要除以 10^6;last_visit_time 的起始值是 1601 年 1 月 1 日 0 时 0 分 0 秒,正常计算机的计算时间 0 秒是待办 1970 年,所以要减去 11644473600,获取可以换成时间的秒数;操作过程中发现,次属性可能为 0.需做条件判断;
二:
当我们浏览器在运行过程中数据库会被加锁无法打开,所以在脚本运行前需要去 kill 掉浏览器的进程,杀 chrome 进程的命令 taskkill /f /t /im chrome.exe
所以再获取历史记录前需要执行杀进程命令:
已有的轮子
python 中有一个优秀的库,可以实现历史记录的获取,
browserhistory
安装 browserhistory
安装方式有很多种,推荐使用 pip;
pip 是 Python 的包安装程序。其实,pip 就是 Python 标准库(The Python Standard Library)中的一个包,只是这个包比较特殊,用它可以来管理 Python 标准库(The Python Standard Library)中其他的包。pip 是一个命令行程序。 安装 pip 后,会向系统添加一个 pip 命令,该命令可以从命令提示符运行。
安装 pip:
安装 python; 这个是必须安装的;
下载 pip:
官网地址:https://pypi.org/project/pip/#downloads; 下载完毕后,解压
打开命令行窗口,进入到 pip 解压后的目录;执行代码
python3 setup.py install
进行安装,安装完成后,将 pip 加入到系统环境变量中
验证打开命令行窗口,输入 pip list 或者 pip3 list
安装 browserhistory:打开命令行窗口,输入执行以下代码,并回车
pip install browserhistory
等待提示安装成功既可;
代码实现:
安装完成 browserhistory 后,只需要导入,然后使用很少的代码就能实现上面的功能;
四行代码就能搞定;
使用 browserhistory 获取记录很简单,而且这个库整个源码只有区区不到 200 行,就可以轻松的获取谷歌,火狐,safari 这三种浏览器的历史浏览记录,而且支持,mac, linux, windows 三种平台。学习一下源码,学会并掌握,对技术是一种很大的能力提升;
查看源码后,你会发现,其库里面不只有获取方法,还提供了保存历史记录到硬盘的功能函数;需要用到 pandas 库,另一个轮子;如有必要,可以了解一下。
版权声明: 本文为 InfoQ 作者【技能实验室】的原创文章。
原文链接:【http://xie.infoq.cn/article/fbdf98f4770eda2fff9b16e66】。文章转载请联系作者。
评论