在电脑上浏览个网页,都要用到浏览器,当你打开网页的那一刻,浏览器就会记录你的浏览信息,这些信息可能就是你的信息泄露的根源。下面看看如何使用python获取一下历史浏览记录;
以chrome浏览器为例:
找到浏览器数据存放位置
数据存放位置一般都是固定的,基本都在以下位置
C:\Users\Administrator\AppData\Local\Google\Chrome\User Data\Default
如果在这个位置没有找到,可以打开chrome浏览器,在地址栏输入
chrome://version
在个人资料路径后面就是数据存放位置;
进入在文件夹,在其中查找文件:
Bookmarks 存放收藏书签
History 存放历史浏览记录
获取书签
Bookmarks是保存了书签信息,数据以一个json文件格式保存,所以获取书签信息直接使用python读取文件即可
def getBookmarks():
marks = ''
with open(bookmarks,'r',encoding='utf-8') as f:
marks = json.loads(f.read())
for name, item in marks['roots'].items():
print('收藏夹名称:',name)
child = item['children']
for c in child:
print(c['type']) #folder,url
print(c['name'])
在书签文件中;
bookmark_bar 书签栏
other 其他书签 .
synced 移动设备书签
获取历史浏览记录
Histroy文件是一个sqlite3数据库;获取其中数据需要使用sqlite3库;
使用数据库可视化工具打开数据库,在里面找到urls表,你所有的历史浏览记录都会保存在这个表中
python要连接数据库,获取数据,就需要使用python中的sqlite3;
sqlite3 是 Python 自带的库,不需要额外安装模块,操作简单。
首先定义数据库路径,将路径传入sqlite3.connect()方法中,先连接上数据库;
然后获取curosr游标,通过执行sql查询语句,获取表中数据;
具体代码可以参考如下:
def get_history():
conn = sqlite3.connect(history) #连数据库
cursor = conn.cursor() #获取游标
cursor = conn.execute("SELECT id,url,title,visit_count,last_visit_time from urls order by last_visit_time desc ")
rows = []
for _id, url, title, visit_count, last_visit_time in cursor:
row = {}
row['id'] = _id
row['url'] = url
row['title'] = title
row['visit_count'] = visit_count
row['last_visit_time'] = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(last_visit_time/1000000 -11644473600 )) if last_visit_time > 0 else 0
rows.append(row)
return rows
需要备注的是:
一:
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
所以再获取历史记录前需要执行杀进程命令:
kill_cmd = 'taskkill /f /t /im chrome.exe'
os.system(kill_cmd) #杀进程
result = get_history()
已有的轮子
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后,只需要导入,然后使用很少的代码就能实现上面的功能;
import browserhistory
dc = browserhistory.get_browserhistory()
print(dc.keys()) #浏览器 chrome firefox
print(dc['chrome'][0])
四行代码就能搞定;
使用browserhistory获取记录很简单,而且这个库整个源码只有区区不到200行,就可以轻松的获取谷歌,火狐,safari 这三种浏览器的历史浏览记录,而且支持,mac, linux, windows三种平台。学习一下源码,学会并掌握,对技术是一种很大的能力提升;
查看源码后,你会发现,其库里面不只有获取方法,还提供了保存历史记录到硬盘的功能函数;需要用到pandas库,另一个轮子;如有必要,可以了解一下。